]> git.mxchange.org Git - mailer.git/commitdiff
(no commit message)
authorRoland Häder <roland@mxchange.org>
Sun, 3 Feb 2008 13:09:08 +0000 (13:09 +0000)
committerRoland Häder <roland@mxchange.org>
Sun, 3 Feb 2008 13:09:08 +0000 (13:09 +0000)
1219 files changed:
.gitattributes
.gitignore [new file with mode: 0644]
0.2.1/.htaccess [new file with mode: 0644]
0.2.1/DOCS/INSTALL.txt [new file with mode: 0644]
0.2.1/DOCS/LICENSE.txt [new file with mode: 0644]
0.2.1/DOCS/README [new file with mode: 0644]
0.2.1/DOCS/de/AUTHORS.txt [new file with mode: 0644]
0.2.1/DOCS/de/CHANGES.txt [new file with mode: 0644]
0.2.1/DOCS/de/CSS-PATCHES.txt [new file with mode: 0644]
0.2.1/DOCS/de/CSS-PATCHES_05092004.txt [new file with mode: 0644]
0.2.1/DOCS/de/DESIGNING.txt [new file with mode: 0644]
0.2.1/DOCS/de/EXTENSIONS.txt [new file with mode: 0644]
0.2.1/DOCS/de/LICENSE.txt [new file with mode: 0644]
0.2.1/DOCS/de/MENUE_HOVER.txt [new file with mode: 0644]
0.2.1/DOCS/de/PATCHES.txt [new file with mode: 0644]
0.2.1/DOCS/de/PATCH_320.txt [new file with mode: 0644]
0.2.1/DOCS/de/README.txt [new file with mode: 0644]
0.2.1/DOCS/de/SECURITY.txt [new file with mode: 0644]
0.2.1/DOCS/de/TEMPLATES.txt [new file with mode: 0644]
0.2.1/DOCS/de/THANK_YOU.txt [new file with mode: 0644]
0.2.1/DOCS/de/TODO.txt [new file with mode: 0644]
0.2.1/DOCS/de/UPGRADING.txt [new file with mode: 0644]
0.2.1/DOCS/de/cache/README.txt [new file with mode: 0644]
0.2.1/DOCS/de/country/README.txt [new file with mode: 0644]
0.2.1/DOCS/de/country/countries-europe.sql [new file with mode: 0644]
0.2.1/DOCS/de/country/countries-full.sql [new file with mode: 0644]
0.2.1/DOCS/de/country/countries-sorted.sql [new file with mode: 0644]
0.2.1/DOCS/de/doubler/README.txt [new file with mode: 0644]
0.2.1/DOCS/de/engine/README.txt [new file with mode: 0644]
0.2.1/DOCS/de/promoter.txt [new file with mode: 0644]
0.2.1/DOCS/de/rallye/README.txt [new file with mode: 0644]
0.2.1/DOCS/de/rewrite/.htaccess [new file with mode: 0644]
0.2.1/DOCS/de/rewrite/README.txt [new file with mode: 0644]
0.2.1/DOCS/de/rewrite/README_htaccess.de [new file with mode: 0644]
0.2.1/DOCS/de/task/README.txt [new file with mode: 0644]
0.2.1/DOCS/de/themes/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/AUTHORS.txt [new file with mode: 0644]
0.2.1/DOCS/en/CHANGES.txt [new file with mode: 0644]
0.2.1/DOCS/en/CSS-PATCHES.txt [new file with mode: 0644]
0.2.1/DOCS/en/CSS-PATCHES_05092004.txt [new file with mode: 0644]
0.2.1/DOCS/en/DESIGNING.txt [new file with mode: 0644]
0.2.1/DOCS/en/EXTENSIONS.txt [new file with mode: 0644]
0.2.1/DOCS/en/LICENSE.txt [new file with mode: 0644]
0.2.1/DOCS/en/MENUE_HOVER.txt [new file with mode: 0644]
0.2.1/DOCS/en/PATCHES.txt [new file with mode: 0644]
0.2.1/DOCS/en/PATCH_320.txt [new file with mode: 0644]
0.2.1/DOCS/en/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/SECURITY.txt [new file with mode: 0644]
0.2.1/DOCS/en/TEMPLATES.txt [new file with mode: 0644]
0.2.1/DOCS/en/THANK_YOU.txt [new file with mode: 0644]
0.2.1/DOCS/en/TODO.txt [new file with mode: 0644]
0.2.1/DOCS/en/UPGRADING.txt [new file with mode: 0644]
0.2.1/DOCS/en/cache/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/country/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/country/countries-europe.sql [new file with mode: 0644]
0.2.1/DOCS/en/country/countries-full.sql [new file with mode: 0644]
0.2.1/DOCS/en/country/countries-sorted.sql [new file with mode: 0644]
0.2.1/DOCS/en/doubler/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/engine/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/promoter.txt [new file with mode: 0644]
0.2.1/DOCS/en/rallye/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/rewrite/.htaccess [new file with mode: 0644]
0.2.1/DOCS/en/rewrite/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/rewrite/README_htaccess.de [new file with mode: 0644]
0.2.1/DOCS/en/task/README.txt [new file with mode: 0644]
0.2.1/DOCS/en/themes/README.txt [new file with mode: 0644]
0.2.1/admin.php [new file with mode: 0644]
0.2.1/agb.php [new file with mode: 0644]
0.2.1/beg.php [new file with mode: 0644]
0.2.1/birthday_confirm.php [new file with mode: 0644]
0.2.1/click.php [new file with mode: 0644]
0.2.1/confirm.php [new file with mode: 0644]
0.2.1/css.php [new file with mode: 0644]
0.2.1/doubler.php [new file with mode: 0644]
0.2.1/img.php [new file with mode: 0644]
0.2.1/inc/.htaccess [new file with mode: 0644]
0.2.1/inc/.secret/.a37fde8c5ab1752c8dd327eb8b32b7dadd936de52b0e5c2d0 [new file with mode: 0644]
0.2.1/inc/.secret/.deba26cfafe1cb6cc264c05daaee48d821c4c2d5e0d7c6aa8 [new file with mode: 0644]
0.2.1/inc/.secret/.htaccess [new file with mode: 0644]
0.2.1/inc/autopurge.php [new file with mode: 0644]
0.2.1/inc/cache/.htaccess [new file with mode: 0644]
0.2.1/inc/config.php [new file with mode: 0644]
0.2.1/inc/databases.php [new file with mode: 0644]
0.2.1/inc/db/.htaccess [new file with mode: 0644]
0.2.1/inc/db/lib-mysql3.php [new file with mode: 0644]
0.2.1/inc/db/lib.php [new file with mode: 0644]
0.2.1/inc/doubler_send.php [new file with mode: 0644]
0.2.1/inc/extensions.php [new file with mode: 0644]
0.2.1/inc/extensions/.htaccess [new file with mode: 0644]
0.2.1/inc/extensions/ext- [new file with mode: 0644]
0.2.1/inc/extensions/ext-active.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-admins.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-admintheme1.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-admintheme_default.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-autopurge.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-bank.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-beg.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-birthday.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-bonus.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-cache.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-country.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-demo.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-doubler.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-holiday.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-html_mail.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-mailid.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-maintenance.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-mediadata.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-mods.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-mydata.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-newsletter.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-nickname.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-online.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-optimize.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-order.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-other.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-payout.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-profile.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-rallye.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-register.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-repair.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-rewrite.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-sql_patches.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-support.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-task.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-theme.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-top10.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-transfer.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-user.php [new file with mode: 0644]
0.2.1/inc/extensions/ext-wernis.php [new file with mode: 0644]
0.2.1/inc/fatal_errors.php [new file with mode: 0644]
0.2.1/inc/footer.php [new file with mode: 0644]
0.2.1/inc/functions.php [new file with mode: 0644]
0.2.1/inc/gen_mediadata.php [new file with mode: 0644]
0.2.1/inc/gen_sql_patches.php [new file with mode: 0644]
0.2.1/inc/header.php [new file with mode: 0644]
0.2.1/inc/install-inc.php [new file with mode: 0644]
0.2.1/inc/language.php [new file with mode: 0644]
0.2.1/inc/language/.htaccess [new file with mode: 0644]
0.2.1/inc/language/active_de.php [new file with mode: 0644]
0.2.1/inc/language/admins_de.php [new file with mode: 0644]
0.2.1/inc/language/autopurge_de.php [new file with mode: 0644]
0.2.1/inc/language/bank_de.php [new file with mode: 0644]
0.2.1/inc/language/beg_de.php [new file with mode: 0644]
0.2.1/inc/language/birthday_de.php [new file with mode: 0644]
0.2.1/inc/language/bonus_de.php [new file with mode: 0644]
0.2.1/inc/language/cache_de.php [new file with mode: 0644]
0.2.1/inc/language/country_de.php [new file with mode: 0644]
0.2.1/inc/language/de.php [new file with mode: 0644]
0.2.1/inc/language/doubler_de.php [new file with mode: 0644]
0.2.1/inc/language/en.ph [new file with mode: 0644]
0.2.1/inc/language/en.php [new file with mode: 0644]
0.2.1/inc/language/holiday_de.php [new file with mode: 0644]
0.2.1/inc/language/html_mail_de.php [new file with mode: 0644]
0.2.1/inc/language/install_de.php [new file with mode: 0644]
0.2.1/inc/language/mailid_de.php [new file with mode: 0644]
0.2.1/inc/language/maintenance_de.php [new file with mode: 0644]
0.2.1/inc/language/mediadata_de.php [new file with mode: 0644]
0.2.1/inc/language/mods_de.php [new file with mode: 0644]
0.2.1/inc/language/newsletter_de.php [new file with mode: 0644]
0.2.1/inc/language/nickname_de.php [new file with mode: 0644]
0.2.1/inc/language/online_de.php [new file with mode: 0644]
0.2.1/inc/language/optimize_de.php [new file with mode: 0644]
0.2.1/inc/language/order_de.php [new file with mode: 0644]
0.2.1/inc/language/other_de.php [new file with mode: 0644]
0.2.1/inc/language/payout_de.php [new file with mode: 0644]
0.2.1/inc/language/rallye_de.php [new file with mode: 0644]
0.2.1/inc/language/register_de.php [new file with mode: 0644]
0.2.1/inc/language/repair_de.php [new file with mode: 0644]
0.2.1/inc/language/rewrite_de.php [new file with mode: 0644]
0.2.1/inc/language/support_de.php [new file with mode: 0644]
0.2.1/inc/language/task_de.php [new file with mode: 0644]
0.2.1/inc/language/theme_de.php [new file with mode: 0644]
0.2.1/inc/language/top10_de.php [new file with mode: 0644]
0.2.1/inc/language/transfer_de.php [new file with mode: 0644]
0.2.1/inc/language/user_de.php [new file with mode: 0644]
0.2.1/inc/language/wernis_de.php [new file with mode: 0644]
0.2.1/inc/libs/.htaccess [new file with mode: 0644]
0.2.1/inc/libs/admins_functions.php [new file with mode: 0644]
0.2.1/inc/libs/autopurge_functions.php [new file with mode: 0644]
0.2.1/inc/libs/bonus_functions.php [new file with mode: 0644]
0.2.1/inc/libs/cache_functions.php [new file with mode: 0644]
0.2.1/inc/libs/country_functions.php [new file with mode: 0644]
0.2.1/inc/libs/doubler_functions.php [new file with mode: 0644]
0.2.1/inc/libs/holiday_functions.php [new file with mode: 0644]
0.2.1/inc/libs/html_mail_functions.php [new file with mode: 0644]
0.2.1/inc/libs/mediadata_functions.php [new file with mode: 0644]
0.2.1/inc/libs/newsletter_functions.php [new file with mode: 0644]
0.2.1/inc/libs/nickname_functions.php [new file with mode: 0644]
0.2.1/inc/libs/optimize_functions.php [new file with mode: 0644]
0.2.1/inc/libs/order_functions.php [new file with mode: 0644]
0.2.1/inc/libs/output_functions.php [new file with mode: 0644]
0.2.1/inc/libs/payout_functions.php [new file with mode: 0644]
0.2.1/inc/libs/rallye_functions.php [new file with mode: 0644]
0.2.1/inc/libs/register_functions.php [new file with mode: 0644]
0.2.1/inc/libs/rewrite_functions.php [new file with mode: 0644]
0.2.1/inc/libs/security_functions.php [new file with mode: 0644]
0.2.1/inc/libs/task_functions.php [new file with mode: 0644]
0.2.1/inc/libs/transfer_functions.php [new file with mode: 0644]
0.2.1/inc/libs/user_functions.php [new file with mode: 0644]
0.2.1/inc/libs/wernis_functions.php [new file with mode: 0644]
0.2.1/inc/load_cache.php [new file with mode: 0644]
0.2.1/inc/load_extensions.php [new file with mode: 0644]
0.2.1/inc/mails/.htaccess [new file with mode: 0644]
0.2.1/inc/mails/_mails.php [new file with mode: 0644]
0.2.1/inc/mails/beg_mails.php [new file with mode: 0644]
0.2.1/inc/mails/birthday_mails.php [new file with mode: 0644]
0.2.1/inc/mails/bonus_mails.php [new file with mode: 0644]
0.2.1/inc/modules/.htaccess [new file with mode: 0644]
0.2.1/inc/modules/admin.php [new file with mode: 0644]
0.2.1/inc/modules/admin/.htaccess [new file with mode: 0644]
0.2.1/inc/modules/admin/action- [new file with mode: 0644]
0.2.1/inc/modules/admin/action-admins.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-bank.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-country.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-doubler.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-email.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-holiday.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-login.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-logout.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-menu.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-misc.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-mods.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-newsletter.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-payouts.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-rallye.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-repair.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-setup.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-stats.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-task.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-theme.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-transfer.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-user.php [new file with mode: 0644]
0.2.1/inc/modules/admin/action-wernis.php [new file with mode: 0644]
0.2.1/inc/modules/admin/admin-inc.php [new file with mode: 0644]
0.2.1/inc/modules/admin/overview-inc.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what- [new file with mode: 0644]
0.2.1/inc/modules/admin/what-add_bank_package.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-add_guestnl_cat.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-add_points.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-add_rallye.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-admin_add.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-adminedit.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-admins_add.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-admins_contact.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-admins_contct.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-admins_edit.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-admins_mails.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-autopurge.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-bonus.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-cache_stats.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-chk_regs.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_active.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_admin.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_admins.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_autopurge.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_beg.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_birthday.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_bonus.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_cache.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_cats.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_doubler.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_email.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_extensions.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_holiday.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_home.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_mediadata.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_mods.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_newsletter.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_nickname.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_order.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_other.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_payouts.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_points.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_rallye_prices.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_refid.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_reg.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_register.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_register2.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_rewrite.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_secure.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_stats.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_title.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_top10.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_transfer.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_user.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-config_wernis.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-del_email.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-del_holiday.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-del_task.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-del_transfer.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-del_user.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-edit_emails.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-edit_user.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-email_archiv.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-email_details.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-email_stats.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-extensions.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-guest_add.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-guestedit.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-holiday_list.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-holiday_remove.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_autopurge.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_bank_package.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_beg.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_bonus.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_cats.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_country.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_doubler.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_holiday.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_links.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_newsletter.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_norefs.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_payouts.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_rallyes.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_refs.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_task.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_transfer.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_unconfirmed.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_user.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-list_wernis.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-lock_user.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-logs.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-maintenance.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-mem_add.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-memedit.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-newsletter.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-optimize.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-overview.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-payments.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-refbanner.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-repair_amenu.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-repair_amnu.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-repair_cats.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-repair_gmenu.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-repair_gmnu.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-repair_mmenu.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-repair_mmnu.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-send_bonus.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-send_newsletter.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-stats.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-stats_mods.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-sub_points.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-theme_check.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-theme_edit.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-theme_import.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-unlock_emails.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-updates.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-usage.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-user_contct.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-user_online.php [new file with mode: 0644]
0.2.1/inc/modules/admin/what-usr_online.php [new file with mode: 0644]
0.2.1/inc/modules/chk_login.php [new file with mode: 0644]
0.2.1/inc/modules/frameset.php [new file with mode: 0644]
0.2.1/inc/modules/frametester.php [new file with mode: 0644]
0.2.1/inc/modules/guest/.htaccess [new file with mode: 0644]
0.2.1/inc/modules/guest/action- [new file with mode: 0644]
0.2.1/inc/modules/guest/action-admin.php [new file with mode: 0644]
0.2.1/inc/modules/guest/action-main.php [new file with mode: 0644]
0.2.1/inc/modules/guest/action-members.php [new file with mode: 0644]
0.2.1/inc/modules/guest/action-online.php [new file with mode: 0644]
0.2.1/inc/modules/guest/action-themes.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what- [new file with mode: 0644]
0.2.1/inc/modules/guest/what-active.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-admin.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-agb.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-beg.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-confirm.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-doubler.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-impressum.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-infos.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-login.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-mediadata.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-my_weblog.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-rallyes.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-register.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-stats.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-top10.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-welcome.php [new file with mode: 0644]
0.2.1/inc/modules/guest/what-wernis_portal.php [new file with mode: 0644]
0.2.1/inc/modules/index.php [new file with mode: 0644]
0.2.1/inc/modules/loader.php [new file with mode: 0644]
0.2.1/inc/modules/login.php [new file with mode: 0644]
0.2.1/inc/modules/member/.htaccess [new file with mode: 0644]
0.2.1/inc/modules/member/action- [new file with mode: 0644]
0.2.1/inc/modules/member/action-account.php [new file with mode: 0644]
0.2.1/inc/modules/member/action-bank.php [new file with mode: 0644]
0.2.1/inc/modules/member/action-extras.php [new file with mode: 0644]
0.2.1/inc/modules/member/action-logout.php [new file with mode: 0644]
0.2.1/inc/modules/member/action-main.php [new file with mode: 0644]
0.2.1/inc/modules/member/action-order.php [new file with mode: 0644]
0.2.1/inc/modules/member/action-rals.php [new file with mode: 0644]
0.2.1/inc/modules/member/action-stats.php [new file with mode: 0644]
0.2.1/inc/modules/member/action-themes.php [new file with mode: 0644]
0.2.1/inc/modules/member/what- [new file with mode: 0644]
0.2.1/inc/modules/member/what-bank_create.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-bank_deposit.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-bank_infos.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-bank_output.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-bank_withdraw.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-beg.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-beg2.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-bonus.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-categories.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-doubler.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-guest.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-holiday.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-html_mail.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-logout.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-mydata.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-newsletter.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-nickname.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-order.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-payout.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-points.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-rallyes.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-reflinks.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-stats.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-support.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-themes.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-transfer.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-unconfirmed.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-welcome.php [new file with mode: 0644]
0.2.1/inc/modules/member/what-wernis.php [new file with mode: 0644]
0.2.1/inc/modules/order.php [new file with mode: 0644]
0.2.1/inc/modules/welcome.php [new file with mode: 0644]
0.2.1/inc/monthly/.htaccess [new file with mode: 0644]
0.2.1/inc/monthly/monthly_ [new file with mode: 0644]
0.2.1/inc/monthly/monthly_beg.php [new file with mode: 0644]
0.2.1/inc/monthly/monthly_bonus.php [new file with mode: 0644]
0.2.1/inc/monthly/monthly_newsletter.php [new file with mode: 0644]
0.2.1/inc/monthly_newsletter.php [new file with mode: 0644]
0.2.1/inc/mysql-connect.php [new file with mode: 0644]
0.2.1/inc/mysql-manager.php [new file with mode: 0644]
0.2.1/inc/patch-system.php [new file with mode: 0644]
0.2.1/inc/phpmailer/ChangeLog.txt [new file with mode: 0644]
0.2.1/inc/phpmailer/LICENSE [new file with mode: 0644]
0.2.1/inc/phpmailer/README [new file with mode: 0644]
0.2.1/inc/phpmailer/class.phpmailer.php [new file with mode: 0644]
0.2.1/inc/phpmailer/class.pop3.php [new file with mode: 0644]
0.2.1/inc/phpmailer/class.smtp.php [new file with mode: 0644]
0.2.1/inc/phpmailer/codeworxtech.html [new file with mode: 0644]
0.2.1/inc/phpmailer/docs/extending.html [new file with mode: 0644]
0.2.1/inc/phpmailer/docs/faq.html [new file with mode: 0644]
0.2.1/inc/phpmailer/docs/pop3_article.txt [new file with mode: 0644]
0.2.1/inc/phpmailer/docs/use_gmail.txt [new file with mode: 0644]
0.2.1/inc/phpmailer/examples/contents.html [new file with mode: 0644]
0.2.1/inc/phpmailer/examples/images/bkgrnd.gif [new file with mode: 0644]
0.2.1/inc/phpmailer/examples/images/phpmailer.gif [new file with mode: 0644]
0.2.1/inc/phpmailer/examples/images/phpmailer.png [new file with mode: 0644]
0.2.1/inc/phpmailer/examples/images/phpmailer_mini.gif [new file with mode: 0644]
0.2.1/inc/phpmailer/examples/index.html [new file with mode: 0644]
0.2.1/inc/phpmailer/examples/pop3_before_smtp_test.php [new file with mode: 0644]
0.2.1/inc/phpmailer/examples/test1.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-br.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-ca.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-cz.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-de.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-dk.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-en.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-es.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-et.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-fi.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-fo.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-fr.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-hu.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-it.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-ja.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-nl.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-no.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-pl.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-ro.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-ru.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-se.php [new file with mode: 0644]
0.2.1/inc/phpmailer/language/phpmailer.lang-tr.php [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/PHPMailer/PHPMailer.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/PHPMailer/SMTP.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/PHPMailer/_class_phpmailer_php.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/PHPMailer/_class_smtp_php.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/blank.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/classtrees_PHPMailer.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/elementindex.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/elementindex_PHPMailer.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/errors.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/index.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/li_PHPMailer.html [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/media/banner.css [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/media/stylesheet.css [new file with mode: 0644]
0.2.1/inc/phpmailer/phpdoc/packages.html [new file with mode: 0644]
0.2.1/inc/phpmailer/test/phpmailer_test.php [new file with mode: 0644]
0.2.1/inc/phpmailer/test/phpunit.php [new file with mode: 0644]
0.2.1/inc/phpmailer/test/test.png [new file with mode: 0644]
0.2.1/inc/pool-update.php [new file with mode: 0644]
0.2.1/inc/profile-updte.php [new file with mode: 0644]
0.2.1/inc/rdf.class.php [new file with mode: 0644]
0.2.1/inc/reset/.htaccess [new file with mode: 0644]
0.2.1/inc/reset/reset_ [new file with mode: 0644]
0.2.1/inc/reset/reset_beg.php [new file with mode: 0644]
0.2.1/inc/reset/reset_bonus.php [new file with mode: 0644]
0.2.1/inc/reset/reset_daily.php [new file with mode: 0644]
0.2.1/inc/reset/reset_engine.php [new file with mode: 0644]
0.2.1/inc/reset/reset_holiday.php [new file with mode: 0644]
0.2.1/inc/security.php [new file with mode: 0644]
0.2.1/inc/session.php [new file with mode: 0644]
0.2.1/inc/sql_error.php [new file with mode: 0644]
0.2.1/inc/stats_bonus.php [new file with mode: 0644]
0.2.1/inc/stylesheet.php [new file with mode: 0644]
0.2.1/inc/theme-manager.php [new file with mode: 0644]
0.2.1/index.php [new file with mode: 0644]
0.2.1/install.php [new file with mode: 0644]
0.2.1/install/menu-de.sql [new file with mode: 0644]
0.2.1/install/menu-en.sql [new file with mode: 0644]
0.2.1/install/tables.sql [new file with mode: 0644]
0.2.1/lead-confirm.php [new file with mode: 0644]
0.2.1/login.php [new file with mode: 0644]
0.2.1/mailid.php [new file with mode: 0644]
0.2.1/mailid_top.php [new file with mode: 0644]
0.2.1/modules.php [new file with mode: 0644]
0.2.1/ref.php [new file with mode: 0644]
0.2.1/robots.txt [new file with mode: 0644]
0.2.1/show_bonus.php [new file with mode: 0644]
0.2.1/templates/.htaccess [new file with mode: 0644]
0.2.1/templates/de/.htaccess [new file with mode: 0644]
0.2.1/templates/de/emails/add-points.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin-del_links.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_autopurge_del_mails.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_autopurge_delete.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_autopurge_inactive.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_autopurge_points.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_autopurge_tsks.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_autopurge_turbo.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_autopurge_unconfirmed.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_holiday_deactivated.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_holiday_request.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_holiday_unlock.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_mydata_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_new_ext.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_newsletter_request.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_newsletter_reset.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_payout_request.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_payout_request_banner.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_rallye_expired.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_rallye_expired_no.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_rallye_no_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_rallye_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_rallye_purged.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_support-ordr.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_support-reflink.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_support-unconfirmed.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_transfer_ap.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_transfer_points.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admin/admin_wernis_request.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admins/.htaccess [new file with mode: 0644]
0.2.1/templates/de/emails/admins/admins_mail_contct_admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admins/admins_msg_contct_admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admins_mail_contact_admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admins_mail_contct_admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admins_msg_contact_admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/admins_msg_contct_admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/back-admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/back-member.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/beg/.htaccess [new file with mode: 0644]
0.2.1/templates/de/emails/beg/beg_di_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/beg/beg_en_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/beg/beg_en_notify_body.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/bonus-mail.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/bonus/.htaccess [new file with mode: 0644]
0.2.1/templates/de/emails/bonus/bonus_di_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/bonus/bonus_en_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/bonus/bonus_en_notify_body.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/confirm-member.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/confirm-referral.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/del-user.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/done-admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/done-member.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/guest/guest_request_confirm.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/header.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/lock-user.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_autopurge_delete.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_autopurge_inactive.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_autopurge_points.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_autopurge_unconfirmed.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_beg.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_birthday.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_birthday_confirm.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_bonus.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_contct.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_doubler.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_holiday_activated.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_holiday_removed.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_holiday_request.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_holiday_unlock.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_mydata_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_newsletter_done.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_newsletter_request.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_newsletter_reset.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_payout_accepted.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_payout_rejected.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_payout_request.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_payout_request_banner.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_rallye_expired.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_rallye_expired_bronce.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_rallye_expired_gold.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_rallye_expired_silver.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_rallye_notify.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_stats_bonus.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_support-order.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_support-ordr.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_support-reflink.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_support-unconfirmed.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_transfer_recipient.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_transfer_sender.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_wernis_accepted.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_wernis_rejected.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/member/member_wernis_request.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/new-pass.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/newsletter.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/newsletter_html.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/normal-mail.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/order-accept.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/order-admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/order-deleted.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/order-member.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/order-reject.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/profile-updte.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/register-admin.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/register-member.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/sub-points.tpl [new file with mode: 0644]
0.2.1/templates/de/emails/unlock-user.tpl [new file with mode: 0644]
0.2.1/templates/de/html/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/admin/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_bank_package.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_banner.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_cat.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_country.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_max.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_payment.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_points.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_points_all.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_rallye.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_rallye_prices.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_add_reflvl.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admin_add.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_add.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_add_acl.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_contact_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_contct_default.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_contct_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_contct_select.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_mails_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_mails_edit_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_mails_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_mails_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_admins_mails_list_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_amenu_delete.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_amenu_delete_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_amenu_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_amenu_edit_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_amenu_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_cache_stats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_active.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_admin.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_admins.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_admins_del.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_admins_del_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_admins_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_admins_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_admins_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_autopurge.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_beg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_birthday.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_bonus.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_cache.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_cats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_cats_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_doubler.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_email.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_email_del.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_email_del_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_email_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_email_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_email_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_extensions.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_holiday.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_home.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_home_main.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_home_settings.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_home_settings_pro.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_mediadata.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_newsletter.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_nickname.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_order.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_order_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_other.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_payouts.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_payouts_del.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_payouts_del_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_payouts_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_payouts_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_payouts_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_point_settings.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_points.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_rallye_del.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_rallye_del_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_rallye_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_rallye_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_rallye_prices.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_rallye_prices_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_refid.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_reg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_reg_pro.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_register.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_register2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_rewrite.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_rewrite_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_secure.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_stats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_sub_points.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_title.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_top10.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_transfer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_user.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_config_wernis.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_contct_user_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_data_saved.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_admins.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_admins_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_bank_packages.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_bank_packages_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_cats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_cats_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_email_bonus.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_email_normal.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_payments.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_payments_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_transfer_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_del_user.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_admins.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_admins_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_cats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_cats_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_email.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_email_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_email_select.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_payments.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_payments_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_rallyes.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_rallyes_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_edit_user.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_email_archiv.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_email_archiv_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_email_nav_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_ext_reg_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_404.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_delete.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_delete_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_installed.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_extensions_text.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_gmenu_delete.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_gmenu_delete_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_gmenu_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_gmenu_edit_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_gmenu_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_gmenu_status.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_guest_add.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_admins.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_admins_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_autopurge.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_autopurge_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_bank_package.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_bank_package_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_beg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_beg_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_beg_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_bonus.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_bonus_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_bonus_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_cats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_cats_404.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_cats_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_country.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_country_del_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_country_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_country_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_country_no_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_country_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_doubler_already.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_doubler_overview.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_doubler_waiting.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_extensions.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_extensions_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_holiday.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_holiday_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_links.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_links_problem.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_links_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_payments.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_payouts.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_payouts_banner.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_payouts_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_payouts_txt.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_rallye_noselect.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_rallye_prices.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_rallye_prices_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_rallye_usr.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_rallye_usr_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_rallyes.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_rallyes_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_rallyes_row2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_refs.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_refs_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_task_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_transfer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_transfer_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_unconfirmed.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_unconfirmed_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_unconfirmed_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_user.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_user_alpha.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_user_pagenav.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_user_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_user_sort.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_list_user_sort_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_lock_user.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_login_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_login_msg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_logout.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_logout_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_main_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_main_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_maintenance_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_member_add.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_member_selection_box.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_menu_404_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_menu_failed.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_menu_hints.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_menu_hints_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_menu_overview_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_menu_status_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_menu_unknown_okay.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mini_online.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mmenu_delete.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mmenu_delete_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mmenu_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mmenu_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mmenu_overview.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mmenu_status.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_footer_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_footer_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_footer_stats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_footer_stats2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_header_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_header_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_header_stats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_header_stats2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_list_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_stats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_stats2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_stats2_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_mods_stats_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_newsletter.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_newsletter_nohtml.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_newsletter_tsk.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_online_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_online_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_optimize.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_optimize_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_footer_task.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_header_task.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_list_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_task.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_task_extras.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_overview_task_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_patches.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_patches_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_payments_list_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_payout_accept_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_payout_add_new.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_payout_failed_transfer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_payout_overview_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_payout_reject_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_points.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_points_del.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_points_del_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_points_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_points_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_points_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_refbanner.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_refbanner_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_refbanner_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_refbanner_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_reg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_reg_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_reg_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_send_bonus_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_send_bonus_select.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_settings_saved.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_sub_points.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_sub_points_all.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_task_holiday.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_theme_404.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_theme_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_theme_edit_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_theme_import.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_theme_installed.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_theme_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_unlock_emails.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_unlock_emails_redir.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_unlock_emails_redir_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_unlock_emails_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_update_download.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_user_details.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_welcome.tpl [new file with mode: 0644]
0.2.1/templates/de/html/admin/admin_welcome_admins.tpl [new file with mode: 0644]
0.2.1/templates/de/html/agb.tpl [new file with mode: 0644]
0.2.1/templates/de/html/beg/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/beg/beg_banner.tpl [new file with mode: 0644]
0.2.1/templates/de/html/beg/beg_done.tpl [new file with mode: 0644]
0.2.1/templates/de/html/beg/beg_failed.tpl [new file with mode: 0644]
0.2.1/templates/de/html/beg/beg_link.tpl [new file with mode: 0644]
0.2.1/templates/de/html/beg/beg_login.tpl [new file with mode: 0644]
0.2.1/templates/de/html/birthday/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/birthday/birthday_confirm.tpl [new file with mode: 0644]
0.2.1/templates/de/html/birthday/birthday_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/birthday/birthday_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/birthday/birthday_msg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/copyright.tpl [new file with mode: 0644]
0.2.1/templates/de/html/copyright_backlink.tpl [new file with mode: 0644]
0.2.1/templates/de/html/doubler/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/doubler/doubler_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/doubler/doubler_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/doubler/doubler_index.tpl [new file with mode: 0644]
0.2.1/templates/de/html/doubler/doubler_reflink.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_active.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_admins.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_admintheme1.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_admintheme_default.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_autopurge.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_bank.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_beg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_birthday.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_bonus.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_cache.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_country.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_demo.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_doubler.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_holiday.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_html_mail.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_mailid.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_maintenance.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_mediadata.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_mods.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_mydata.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_newsletter.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_nickname.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_online.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_optimize.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_order.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_other.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_payout.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_profile.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_rallye.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_register.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_repair.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_rewrite.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_sql_patches.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_support.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_task.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_theme.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_top10.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_transfer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_user.tpl [new file with mode: 0644]
0.2.1/templates/de/html/ext/ext_wernis.tpl [new file with mode: 0644]
0.2.1/templates/de/html/fatal_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/fatal_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_active_none_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_active_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_active_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_advert.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_advert2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_beg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_cat_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_cat_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_confirm_link.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_confirm_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_content_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_doubler.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_doubler_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_doubler_list_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_frametester.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_goto_top.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_login.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_menu_bottom.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_menu_content.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_menu_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_menu_td.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_menu_title.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_menu_whats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_nickname_login.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_no_rallyes.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_rallye_expired_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_rallye_expired_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_rallye_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_rallye_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_rallye_show.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_receive_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_register.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_register_refid.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_register_refid_hide.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_stats_cats_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_stats_member.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_stats_month_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_top10.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_top10_empty4.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_top10_empty5.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_top10_row_earner.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_top10_row_login.tpl [new file with mode: 0644]
0.2.1/templates/de/html/guest/guest_top10_row_refs.tpl [new file with mode: 0644]
0.2.1/templates/de/html/header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/impressum.tpl [new file with mode: 0644]
0.2.1/templates/de/html/index.tpl [new file with mode: 0644]
0.2.1/templates/de/html/index_forward.tpl [new file with mode: 0644]
0.2.1/templates/de/html/infos.tpl [new file with mode: 0644]
0.2.1/templates/de/html/install/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/install/install_fatal_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/install/install_fatal_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/install/install_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/install/install_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/install/install_page1.tpl [new file with mode: 0644]
0.2.1/templates/de/html/install/install_page2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/install/install_welcome.tpl [new file with mode: 0644]
0.2.1/templates/de/html/lead_code.tpl [new file with mode: 0644]
0.2.1/templates/de/html/loader.tpl [new file with mode: 0644]
0.2.1/templates/de/html/login_failed_js.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_banner.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_confirm_buttom.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_enter_code.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_frames.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_frameset.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_points_done.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_points_done2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_points_failed.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_points_lcoked2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_points_locked.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_points_locked2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mailid/mailid_timer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/main-welcome.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mediadata.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mediadata_extra_hrow.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mediadata_extra_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/mediadata_extra_row2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/.htaccess [new file with mode: 0644]
0.2.1/templates/de/html/member/member_advert.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_beg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_beg_404.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_bonus.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_bonus_404.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_bonus_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_cat_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_cats_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_cats_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_doubler.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_doubler_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_doubler_list_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_goto_top.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_holiday_deactivate.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_holiday_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_html_mail_settings.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_list_beg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_list_beg_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_login_js.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_menu_bottom.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_menu_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_menu_title.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_menu_whats.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_mydata_button.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_mydata_edit.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_mydata_locked.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_mydata_overview.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_newsletter.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_newsletter_note.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_nickname_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order-back.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order-html_ext.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order-html_intro.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order-zip1.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order-zip2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order_back.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order_frametester.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order_page1.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order_page2.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order_points.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_order_send.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_payout.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_payout_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_payout_form_banner.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_payout_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_points.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_points_bonus_disabled.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_points_bonus_rows.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_points_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_points_upgrade.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_receive_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_reflinks_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_reflinks_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_stats_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_stats_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_support_contacted.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_support_contcted.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_support_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_themes.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_transfer_list.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_transfer_new.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_transfer_overview.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_transfer_settings.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_unconfirmed_404.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_unconfirmed_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_unconfirmed_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_welcome.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_welcome_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_welcome_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_wernis.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_wernis_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_wernis_mode_choose.tpl [new file with mode: 0644]
0.2.1/templates/de/html/member/member_wernis_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/message.tpl [new file with mode: 0644]
0.2.1/templates/de/html/metadata.tpl [new file with mode: 0644]
0.2.1/templates/de/html/online_now.tpl [new file with mode: 0644]
0.2.1/templates/de/html/page_body.tpl [new file with mode: 0644]
0.2.1/templates/de/html/page_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/page_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/profile-update.tpl [new file with mode: 0644]
0.2.1/templates/de/html/rallye_test.tpl [new file with mode: 0644]
0.2.1/templates/de/html/register_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/runtime_fatal_row.tpl [new file with mode: 0644]
0.2.1/templates/de/html/runtime_fatal_table.tpl [new file with mode: 0644]
0.2.1/templates/de/html/show_bonus.tpl [new file with mode: 0644]
0.2.1/templates/de/html/show_bonus_footer.tpl [new file with mode: 0644]
0.2.1/templates/de/html/show_bonus_header.tpl [new file with mode: 0644]
0.2.1/templates/de/html/show_bonus_msg.tpl [new file with mode: 0644]
0.2.1/templates/de/html/show_bonus_yr.tpl [new file with mode: 0644]
0.2.1/templates/de/html/theme_one.tpl [new file with mode: 0644]
0.2.1/templates/de/html/theme_select_box.tpl [new file with mode: 0644]
0.2.1/templates/de/html/theme_select_form.tpl [new file with mode: 0644]
0.2.1/templates/de/html/welcome.tpl [new file with mode: 0644]
0.2.1/templates/en/html/admin/admin_welcome.tpl [new file with mode: 0644]
0.2.1/templates/en/html/impressum.tpl [new file with mode: 0644]
0.2.1/templates/en/html/mailid/.htaccess [new file with mode: 0644]
0.2.1/templates/en/html/register_header.tpl [new file with mode: 0644]
0.2.1/templates/en/html/welcome.tpl [new file with mode: 0644]
0.2.1/theme/business/css/active.css [new file with mode: 0644]
0.2.1/theme/business/css/beg.css [new file with mode: 0644]
0.2.1/theme/business/css/bonus.css [new file with mode: 0644]
0.2.1/theme/business/css/doubler.css [new file with mode: 0644]
0.2.1/theme/business/css/general.css [new file with mode: 0644]
0.2.1/theme/business/css/install.css [new file with mode: 0644]
0.2.1/theme/business/css/nickname.css [new file with mode: 0644]
0.2.1/theme/business/css/register.css [new file with mode: 0644]
0.2.1/theme/business/css/task.css [new file with mode: 0644]
0.2.1/theme/business/css/top10.css [new file with mode: 0644]
0.2.1/theme/business/css/transfer.css [new file with mode: 0644]
0.2.1/theme/business/images/code_bg.jpg [new file with mode: 0644]
0.2.1/theme/business/images/code_bg.png [new file with mode: 0644]
0.2.1/theme/business/theme.php [new file with mode: 0644]
0.2.1/theme/default/css/active.css [new file with mode: 0644]
0.2.1/theme/default/css/beg.css [new file with mode: 0644]
0.2.1/theme/default/css/bonus.css [new file with mode: 0644]
0.2.1/theme/default/css/doubler.css [new file with mode: 0644]
0.2.1/theme/default/css/general.css [new file with mode: 0644]
0.2.1/theme/default/css/install.css [new file with mode: 0644]
0.2.1/theme/default/css/nickname.css [new file with mode: 0644]
0.2.1/theme/default/css/register.css [new file with mode: 0644]
0.2.1/theme/default/css/task.css [new file with mode: 0644]
0.2.1/theme/default/css/top10.css [new file with mode: 0644]
0.2.1/theme/default/css/transfer.css [new file with mode: 0644]
0.2.1/theme/default/images/code_bg.jpg [new file with mode: 0644]
0.2.1/theme/default/images/code_bg.png [new file with mode: 0644]
0.2.1/theme/default/theme.php [new file with mode: 0644]
0.2.1/theme/desert/css/active.css [new file with mode: 0644]
0.2.1/theme/desert/css/beg.css [new file with mode: 0644]
0.2.1/theme/desert/css/bonus.css [new file with mode: 0644]
0.2.1/theme/desert/css/doubler.css [new file with mode: 0644]
0.2.1/theme/desert/css/general.css [new file with mode: 0644]
0.2.1/theme/desert/css/help.css [new file with mode: 0644]
0.2.1/theme/desert/css/install.css [new file with mode: 0644]
0.2.1/theme/desert/css/paidlinks.css [new file with mode: 0644]
0.2.1/theme/desert/css/register.css [new file with mode: 0644]
0.2.1/theme/desert/css/sponsor.css [new file with mode: 0644]
0.2.1/theme/desert/css/top10.css [new file with mode: 0644]
0.2.1/theme/desert/css/transfer.css [new file with mode: 0644]
0.2.1/theme/desert/images/code_bg.jpg [new file with mode: 0644]
0.2.1/theme/desert/images/code_bg.png [new file with mode: 0644]
0.2.1/theme/desert/images/help/bullet.png [new file with mode: 0644]
0.2.1/theme/desert/images/help/down.jpg [new file with mode: 0644]
0.2.1/theme/desert/images/help/left.jpg [new file with mode: 0644]
0.2.1/theme/desert/images/help/right.jpg [new file with mode: 0644]
0.2.1/theme/desert/images/help/up.jpg [new file with mode: 0644]
0.2.1/theme/desert/theme.php [new file with mode: 0644]
0.2.1/view.php [new file with mode: 0644]

index 8e948c534a1fd79cf59d786adc75fec0a4d091d7..36c58d9f17aff7c17ee9d183a17de5f76b2546f3 100644 (file)
@@ -1 +1,1218 @@
 * text=auto !eol
+0.2.1/.htaccess -text
+0.2.1/DOCS/INSTALL.txt -text
+0.2.1/DOCS/LICENSE.txt -text
+0.2.1/DOCS/README -text
+0.2.1/DOCS/de/AUTHORS.txt -text
+0.2.1/DOCS/de/CHANGES.txt -text
+0.2.1/DOCS/de/CSS-PATCHES.txt -text
+0.2.1/DOCS/de/CSS-PATCHES_05092004.txt -text
+0.2.1/DOCS/de/DESIGNING.txt -text
+0.2.1/DOCS/de/EXTENSIONS.txt -text
+0.2.1/DOCS/de/LICENSE.txt -text
+0.2.1/DOCS/de/MENUE_HOVER.txt -text
+0.2.1/DOCS/de/PATCHES.txt -text
+0.2.1/DOCS/de/PATCH_320.txt -text
+0.2.1/DOCS/de/README.txt -text
+0.2.1/DOCS/de/SECURITY.txt -text
+0.2.1/DOCS/de/TEMPLATES.txt -text
+0.2.1/DOCS/de/THANK_YOU.txt -text
+0.2.1/DOCS/de/TODO.txt -text
+0.2.1/DOCS/de/UPGRADING.txt -text
+0.2.1/DOCS/de/cache/README.txt -text
+0.2.1/DOCS/de/country/README.txt -text
+0.2.1/DOCS/de/country/countries-europe.sql -text
+0.2.1/DOCS/de/country/countries-full.sql -text
+0.2.1/DOCS/de/country/countries-sorted.sql -text
+0.2.1/DOCS/de/doubler/README.txt -text
+0.2.1/DOCS/de/engine/README.txt -text
+0.2.1/DOCS/de/promoter.txt -text
+0.2.1/DOCS/de/rallye/README.txt -text
+0.2.1/DOCS/de/rewrite/.htaccess -text
+0.2.1/DOCS/de/rewrite/README.txt -text
+0.2.1/DOCS/de/rewrite/README_htaccess.de -text
+0.2.1/DOCS/de/task/README.txt -text
+0.2.1/DOCS/de/themes/README.txt -text
+0.2.1/DOCS/en/AUTHORS.txt -text
+0.2.1/DOCS/en/CHANGES.txt -text
+0.2.1/DOCS/en/CSS-PATCHES.txt -text
+0.2.1/DOCS/en/CSS-PATCHES_05092004.txt -text
+0.2.1/DOCS/en/DESIGNING.txt -text
+0.2.1/DOCS/en/EXTENSIONS.txt -text
+0.2.1/DOCS/en/LICENSE.txt -text
+0.2.1/DOCS/en/MENUE_HOVER.txt -text
+0.2.1/DOCS/en/PATCHES.txt -text
+0.2.1/DOCS/en/PATCH_320.txt -text
+0.2.1/DOCS/en/README.txt -text
+0.2.1/DOCS/en/SECURITY.txt -text
+0.2.1/DOCS/en/TEMPLATES.txt -text
+0.2.1/DOCS/en/THANK_YOU.txt -text
+0.2.1/DOCS/en/TODO.txt -text
+0.2.1/DOCS/en/UPGRADING.txt -text
+0.2.1/DOCS/en/cache/README.txt -text
+0.2.1/DOCS/en/country/README.txt -text
+0.2.1/DOCS/en/country/countries-europe.sql -text
+0.2.1/DOCS/en/country/countries-full.sql -text
+0.2.1/DOCS/en/country/countries-sorted.sql -text
+0.2.1/DOCS/en/doubler/README.txt -text
+0.2.1/DOCS/en/engine/README.txt -text
+0.2.1/DOCS/en/promoter.txt -text
+0.2.1/DOCS/en/rallye/README.txt -text
+0.2.1/DOCS/en/rewrite/.htaccess -text
+0.2.1/DOCS/en/rewrite/README.txt -text
+0.2.1/DOCS/en/rewrite/README_htaccess.de -text
+0.2.1/DOCS/en/task/README.txt -text
+0.2.1/DOCS/en/themes/README.txt -text
+0.2.1/admin.php -text
+0.2.1/agb.php -text
+0.2.1/beg.php -text
+0.2.1/birthday_confirm.php -text
+0.2.1/click.php -text
+0.2.1/confirm.php -text
+0.2.1/css.php -text
+0.2.1/doubler.php -text
+0.2.1/img.php -text
+0.2.1/inc/.htaccess -text
+0.2.1/inc/.secret/.a37fde8c5ab1752c8dd327eb8b32b7dadd936de52b0e5c2d0 -text
+0.2.1/inc/.secret/.deba26cfafe1cb6cc264c05daaee48d821c4c2d5e0d7c6aa8 -text
+0.2.1/inc/.secret/.htaccess -text
+0.2.1/inc/autopurge.php -text
+0.2.1/inc/cache/.htaccess -text
+0.2.1/inc/config.php -text
+0.2.1/inc/databases.php -text
+0.2.1/inc/db/.htaccess -text
+0.2.1/inc/db/lib-mysql3.php -text
+0.2.1/inc/db/lib.php -text
+0.2.1/inc/doubler_send.php -text
+0.2.1/inc/extensions.php -text
+0.2.1/inc/extensions/.htaccess -text
+0.2.1/inc/extensions/ext- -text
+0.2.1/inc/extensions/ext-active.php -text
+0.2.1/inc/extensions/ext-admins.php -text
+0.2.1/inc/extensions/ext-admintheme1.php -text
+0.2.1/inc/extensions/ext-admintheme_default.php -text
+0.2.1/inc/extensions/ext-autopurge.php -text
+0.2.1/inc/extensions/ext-bank.php -text
+0.2.1/inc/extensions/ext-beg.php -text
+0.2.1/inc/extensions/ext-birthday.php -text
+0.2.1/inc/extensions/ext-bonus.php -text
+0.2.1/inc/extensions/ext-cache.php -text
+0.2.1/inc/extensions/ext-country.php -text
+0.2.1/inc/extensions/ext-demo.php -text
+0.2.1/inc/extensions/ext-doubler.php -text
+0.2.1/inc/extensions/ext-holiday.php -text
+0.2.1/inc/extensions/ext-html_mail.php -text
+0.2.1/inc/extensions/ext-mailid.php -text
+0.2.1/inc/extensions/ext-maintenance.php -text
+0.2.1/inc/extensions/ext-mediadata.php -text
+0.2.1/inc/extensions/ext-mods.php -text
+0.2.1/inc/extensions/ext-mydata.php -text
+0.2.1/inc/extensions/ext-newsletter.php -text
+0.2.1/inc/extensions/ext-nickname.php -text
+0.2.1/inc/extensions/ext-online.php -text
+0.2.1/inc/extensions/ext-optimize.php -text
+0.2.1/inc/extensions/ext-order.php -text
+0.2.1/inc/extensions/ext-other.php -text
+0.2.1/inc/extensions/ext-payout.php -text
+0.2.1/inc/extensions/ext-profile.php -text
+0.2.1/inc/extensions/ext-rallye.php -text
+0.2.1/inc/extensions/ext-register.php -text
+0.2.1/inc/extensions/ext-repair.php -text
+0.2.1/inc/extensions/ext-rewrite.php -text
+0.2.1/inc/extensions/ext-sql_patches.php -text
+0.2.1/inc/extensions/ext-support.php -text
+0.2.1/inc/extensions/ext-task.php -text
+0.2.1/inc/extensions/ext-theme.php -text
+0.2.1/inc/extensions/ext-top10.php -text
+0.2.1/inc/extensions/ext-transfer.php -text
+0.2.1/inc/extensions/ext-user.php -text
+0.2.1/inc/extensions/ext-wernis.php -text
+0.2.1/inc/fatal_errors.php -text
+0.2.1/inc/footer.php -text
+0.2.1/inc/functions.php -text
+0.2.1/inc/gen_mediadata.php -text
+0.2.1/inc/gen_sql_patches.php -text
+0.2.1/inc/header.php -text
+0.2.1/inc/install-inc.php -text
+0.2.1/inc/language.php -text
+0.2.1/inc/language/.htaccess -text
+0.2.1/inc/language/active_de.php -text
+0.2.1/inc/language/admins_de.php -text
+0.2.1/inc/language/autopurge_de.php -text
+0.2.1/inc/language/bank_de.php -text
+0.2.1/inc/language/beg_de.php -text
+0.2.1/inc/language/birthday_de.php -text
+0.2.1/inc/language/bonus_de.php -text
+0.2.1/inc/language/cache_de.php -text
+0.2.1/inc/language/country_de.php -text
+0.2.1/inc/language/de.php -text
+0.2.1/inc/language/doubler_de.php -text
+0.2.1/inc/language/en.ph -text
+0.2.1/inc/language/en.php -text
+0.2.1/inc/language/holiday_de.php -text
+0.2.1/inc/language/html_mail_de.php -text
+0.2.1/inc/language/install_de.php -text
+0.2.1/inc/language/mailid_de.php -text
+0.2.1/inc/language/maintenance_de.php -text
+0.2.1/inc/language/mediadata_de.php -text
+0.2.1/inc/language/mods_de.php -text
+0.2.1/inc/language/newsletter_de.php -text
+0.2.1/inc/language/nickname_de.php -text
+0.2.1/inc/language/online_de.php -text
+0.2.1/inc/language/optimize_de.php -text
+0.2.1/inc/language/order_de.php -text
+0.2.1/inc/language/other_de.php -text
+0.2.1/inc/language/payout_de.php -text
+0.2.1/inc/language/rallye_de.php -text
+0.2.1/inc/language/register_de.php -text
+0.2.1/inc/language/repair_de.php -text
+0.2.1/inc/language/rewrite_de.php -text
+0.2.1/inc/language/support_de.php -text
+0.2.1/inc/language/task_de.php -text
+0.2.1/inc/language/theme_de.php -text
+0.2.1/inc/language/top10_de.php -text
+0.2.1/inc/language/transfer_de.php -text
+0.2.1/inc/language/user_de.php -text
+0.2.1/inc/language/wernis_de.php -text
+0.2.1/inc/libs/.htaccess -text
+0.2.1/inc/libs/admins_functions.php -text
+0.2.1/inc/libs/autopurge_functions.php -text
+0.2.1/inc/libs/bonus_functions.php -text
+0.2.1/inc/libs/cache_functions.php -text
+0.2.1/inc/libs/country_functions.php -text
+0.2.1/inc/libs/doubler_functions.php -text
+0.2.1/inc/libs/holiday_functions.php -text
+0.2.1/inc/libs/html_mail_functions.php -text
+0.2.1/inc/libs/mediadata_functions.php -text
+0.2.1/inc/libs/newsletter_functions.php -text
+0.2.1/inc/libs/nickname_functions.php -text
+0.2.1/inc/libs/optimize_functions.php -text
+0.2.1/inc/libs/order_functions.php -text
+0.2.1/inc/libs/output_functions.php -text
+0.2.1/inc/libs/payout_functions.php -text
+0.2.1/inc/libs/rallye_functions.php -text
+0.2.1/inc/libs/register_functions.php -text
+0.2.1/inc/libs/rewrite_functions.php -text
+0.2.1/inc/libs/security_functions.php -text
+0.2.1/inc/libs/task_functions.php -text
+0.2.1/inc/libs/transfer_functions.php -text
+0.2.1/inc/libs/user_functions.php -text
+0.2.1/inc/libs/wernis_functions.php -text
+0.2.1/inc/load_cache.php -text
+0.2.1/inc/load_extensions.php -text
+0.2.1/inc/mails/.htaccess -text
+0.2.1/inc/mails/_mails.php -text
+0.2.1/inc/mails/beg_mails.php -text
+0.2.1/inc/mails/birthday_mails.php -text
+0.2.1/inc/mails/bonus_mails.php -text
+0.2.1/inc/modules/.htaccess -text
+0.2.1/inc/modules/admin.php -text
+0.2.1/inc/modules/admin/.htaccess -text
+0.2.1/inc/modules/admin/action- -text
+0.2.1/inc/modules/admin/action-admins.php -text
+0.2.1/inc/modules/admin/action-bank.php -text
+0.2.1/inc/modules/admin/action-country.php -text
+0.2.1/inc/modules/admin/action-doubler.php -text
+0.2.1/inc/modules/admin/action-email.php -text
+0.2.1/inc/modules/admin/action-holiday.php -text
+0.2.1/inc/modules/admin/action-login.php -text
+0.2.1/inc/modules/admin/action-logout.php -text
+0.2.1/inc/modules/admin/action-menu.php -text
+0.2.1/inc/modules/admin/action-misc.php -text
+0.2.1/inc/modules/admin/action-mods.php -text
+0.2.1/inc/modules/admin/action-newsletter.php -text
+0.2.1/inc/modules/admin/action-payouts.php -text
+0.2.1/inc/modules/admin/action-rallye.php -text
+0.2.1/inc/modules/admin/action-repair.php -text
+0.2.1/inc/modules/admin/action-setup.php -text
+0.2.1/inc/modules/admin/action-stats.php -text
+0.2.1/inc/modules/admin/action-task.php -text
+0.2.1/inc/modules/admin/action-theme.php -text
+0.2.1/inc/modules/admin/action-transfer.php -text
+0.2.1/inc/modules/admin/action-user.php -text
+0.2.1/inc/modules/admin/action-wernis.php -text
+0.2.1/inc/modules/admin/admin-inc.php -text
+0.2.1/inc/modules/admin/overview-inc.php -text
+0.2.1/inc/modules/admin/what- -text
+0.2.1/inc/modules/admin/what-add_bank_package.php -text
+0.2.1/inc/modules/admin/what-add_guestnl_cat.php -text
+0.2.1/inc/modules/admin/what-add_points.php -text
+0.2.1/inc/modules/admin/what-add_rallye.php -text
+0.2.1/inc/modules/admin/what-admin_add.php -text
+0.2.1/inc/modules/admin/what-adminedit.php -text
+0.2.1/inc/modules/admin/what-admins_add.php -text
+0.2.1/inc/modules/admin/what-admins_contact.php -text
+0.2.1/inc/modules/admin/what-admins_contct.php -text
+0.2.1/inc/modules/admin/what-admins_edit.php -text
+0.2.1/inc/modules/admin/what-admins_mails.php -text
+0.2.1/inc/modules/admin/what-autopurge.php -text
+0.2.1/inc/modules/admin/what-bonus.php -text
+0.2.1/inc/modules/admin/what-cache_stats.php -text
+0.2.1/inc/modules/admin/what-chk_regs.php -text
+0.2.1/inc/modules/admin/what-config_active.php -text
+0.2.1/inc/modules/admin/what-config_admin.php -text
+0.2.1/inc/modules/admin/what-config_admins.php -text
+0.2.1/inc/modules/admin/what-config_autopurge.php -text
+0.2.1/inc/modules/admin/what-config_beg.php -text
+0.2.1/inc/modules/admin/what-config_birthday.php -text
+0.2.1/inc/modules/admin/what-config_bonus.php -text
+0.2.1/inc/modules/admin/what-config_cache.php -text
+0.2.1/inc/modules/admin/what-config_cats.php -text
+0.2.1/inc/modules/admin/what-config_doubler.php -text
+0.2.1/inc/modules/admin/what-config_email.php -text
+0.2.1/inc/modules/admin/what-config_extensions.php -text
+0.2.1/inc/modules/admin/what-config_holiday.php -text
+0.2.1/inc/modules/admin/what-config_home.php -text
+0.2.1/inc/modules/admin/what-config_mediadata.php -text
+0.2.1/inc/modules/admin/what-config_mods.php -text
+0.2.1/inc/modules/admin/what-config_newsletter.php -text
+0.2.1/inc/modules/admin/what-config_nickname.php -text
+0.2.1/inc/modules/admin/what-config_order.php -text
+0.2.1/inc/modules/admin/what-config_other.php -text
+0.2.1/inc/modules/admin/what-config_payouts.php -text
+0.2.1/inc/modules/admin/what-config_points.php -text
+0.2.1/inc/modules/admin/what-config_rallye_prices.php -text
+0.2.1/inc/modules/admin/what-config_refid.php -text
+0.2.1/inc/modules/admin/what-config_reg.php -text
+0.2.1/inc/modules/admin/what-config_register.php -text
+0.2.1/inc/modules/admin/what-config_register2.php -text
+0.2.1/inc/modules/admin/what-config_rewrite.php -text
+0.2.1/inc/modules/admin/what-config_secure.php -text
+0.2.1/inc/modules/admin/what-config_stats.php -text
+0.2.1/inc/modules/admin/what-config_title.php -text
+0.2.1/inc/modules/admin/what-config_top10.php -text
+0.2.1/inc/modules/admin/what-config_transfer.php -text
+0.2.1/inc/modules/admin/what-config_user.php -text
+0.2.1/inc/modules/admin/what-config_wernis.php -text
+0.2.1/inc/modules/admin/what-del_email.php -text
+0.2.1/inc/modules/admin/what-del_holiday.php -text
+0.2.1/inc/modules/admin/what-del_task.php -text
+0.2.1/inc/modules/admin/what-del_transfer.php -text
+0.2.1/inc/modules/admin/what-del_user.php -text
+0.2.1/inc/modules/admin/what-edit_emails.php -text
+0.2.1/inc/modules/admin/what-edit_user.php -text
+0.2.1/inc/modules/admin/what-email_archiv.php -text
+0.2.1/inc/modules/admin/what-email_details.php -text
+0.2.1/inc/modules/admin/what-email_stats.php -text
+0.2.1/inc/modules/admin/what-extensions.php -text
+0.2.1/inc/modules/admin/what-guest_add.php -text
+0.2.1/inc/modules/admin/what-guestedit.php -text
+0.2.1/inc/modules/admin/what-holiday_list.php -text
+0.2.1/inc/modules/admin/what-holiday_remove.php -text
+0.2.1/inc/modules/admin/what-list_autopurge.php -text
+0.2.1/inc/modules/admin/what-list_bank_package.php -text
+0.2.1/inc/modules/admin/what-list_beg.php -text
+0.2.1/inc/modules/admin/what-list_bonus.php -text
+0.2.1/inc/modules/admin/what-list_cats.php -text
+0.2.1/inc/modules/admin/what-list_country.php -text
+0.2.1/inc/modules/admin/what-list_doubler.php -text
+0.2.1/inc/modules/admin/what-list_holiday.php -text
+0.2.1/inc/modules/admin/what-list_links.php -text
+0.2.1/inc/modules/admin/what-list_newsletter.php -text
+0.2.1/inc/modules/admin/what-list_norefs.php -text
+0.2.1/inc/modules/admin/what-list_payouts.php -text
+0.2.1/inc/modules/admin/what-list_rallyes.php -text
+0.2.1/inc/modules/admin/what-list_refs.php -text
+0.2.1/inc/modules/admin/what-list_task.php -text
+0.2.1/inc/modules/admin/what-list_transfer.php -text
+0.2.1/inc/modules/admin/what-list_unconfirmed.php -text
+0.2.1/inc/modules/admin/what-list_user.php -text
+0.2.1/inc/modules/admin/what-list_wernis.php -text
+0.2.1/inc/modules/admin/what-lock_user.php -text
+0.2.1/inc/modules/admin/what-logs.php -text
+0.2.1/inc/modules/admin/what-maintenance.php -text
+0.2.1/inc/modules/admin/what-mem_add.php -text
+0.2.1/inc/modules/admin/what-memedit.php -text
+0.2.1/inc/modules/admin/what-newsletter.php -text
+0.2.1/inc/modules/admin/what-optimize.php -text
+0.2.1/inc/modules/admin/what-overview.php -text
+0.2.1/inc/modules/admin/what-payments.php -text
+0.2.1/inc/modules/admin/what-refbanner.php -text
+0.2.1/inc/modules/admin/what-repair_amenu.php -text
+0.2.1/inc/modules/admin/what-repair_amnu.php -text
+0.2.1/inc/modules/admin/what-repair_cats.php -text
+0.2.1/inc/modules/admin/what-repair_gmenu.php -text
+0.2.1/inc/modules/admin/what-repair_gmnu.php -text
+0.2.1/inc/modules/admin/what-repair_mmenu.php -text
+0.2.1/inc/modules/admin/what-repair_mmnu.php -text
+0.2.1/inc/modules/admin/what-send_bonus.php -text
+0.2.1/inc/modules/admin/what-send_newsletter.php -text
+0.2.1/inc/modules/admin/what-stats.php -text
+0.2.1/inc/modules/admin/what-stats_mods.php -text
+0.2.1/inc/modules/admin/what-sub_points.php -text
+0.2.1/inc/modules/admin/what-theme_check.php -text
+0.2.1/inc/modules/admin/what-theme_edit.php -text
+0.2.1/inc/modules/admin/what-theme_import.php -text
+0.2.1/inc/modules/admin/what-unlock_emails.php -text
+0.2.1/inc/modules/admin/what-updates.php -text
+0.2.1/inc/modules/admin/what-usage.php -text
+0.2.1/inc/modules/admin/what-user_contct.php -text
+0.2.1/inc/modules/admin/what-user_online.php -text
+0.2.1/inc/modules/admin/what-usr_online.php -text
+0.2.1/inc/modules/chk_login.php -text
+0.2.1/inc/modules/frameset.php -text
+0.2.1/inc/modules/frametester.php -text
+0.2.1/inc/modules/guest/.htaccess -text
+0.2.1/inc/modules/guest/action- -text
+0.2.1/inc/modules/guest/action-admin.php -text
+0.2.1/inc/modules/guest/action-main.php -text
+0.2.1/inc/modules/guest/action-members.php -text
+0.2.1/inc/modules/guest/action-online.php -text
+0.2.1/inc/modules/guest/action-themes.php -text
+0.2.1/inc/modules/guest/what- -text
+0.2.1/inc/modules/guest/what-active.php -text
+0.2.1/inc/modules/guest/what-admin.php -text
+0.2.1/inc/modules/guest/what-agb.php -text
+0.2.1/inc/modules/guest/what-beg.php -text
+0.2.1/inc/modules/guest/what-confirm.php -text
+0.2.1/inc/modules/guest/what-doubler.php -text
+0.2.1/inc/modules/guest/what-impressum.php -text
+0.2.1/inc/modules/guest/what-infos.php -text
+0.2.1/inc/modules/guest/what-login.php -text
+0.2.1/inc/modules/guest/what-mediadata.php -text
+0.2.1/inc/modules/guest/what-my_weblog.php -text
+0.2.1/inc/modules/guest/what-rallyes.php -text
+0.2.1/inc/modules/guest/what-register.php -text
+0.2.1/inc/modules/guest/what-stats.php -text
+0.2.1/inc/modules/guest/what-top10.php -text
+0.2.1/inc/modules/guest/what-welcome.php -text
+0.2.1/inc/modules/guest/what-wernis_portal.php -text
+0.2.1/inc/modules/index.php -text
+0.2.1/inc/modules/loader.php -text
+0.2.1/inc/modules/login.php -text
+0.2.1/inc/modules/member/.htaccess -text
+0.2.1/inc/modules/member/action- -text
+0.2.1/inc/modules/member/action-account.php -text
+0.2.1/inc/modules/member/action-bank.php -text
+0.2.1/inc/modules/member/action-extras.php -text
+0.2.1/inc/modules/member/action-logout.php -text
+0.2.1/inc/modules/member/action-main.php -text
+0.2.1/inc/modules/member/action-order.php -text
+0.2.1/inc/modules/member/action-rals.php -text
+0.2.1/inc/modules/member/action-stats.php -text
+0.2.1/inc/modules/member/action-themes.php -text
+0.2.1/inc/modules/member/what- -text
+0.2.1/inc/modules/member/what-bank_create.php -text
+0.2.1/inc/modules/member/what-bank_deposit.php -text
+0.2.1/inc/modules/member/what-bank_infos.php -text
+0.2.1/inc/modules/member/what-bank_output.php -text
+0.2.1/inc/modules/member/what-bank_withdraw.php -text
+0.2.1/inc/modules/member/what-beg.php -text
+0.2.1/inc/modules/member/what-beg2.php -text
+0.2.1/inc/modules/member/what-bonus.php -text
+0.2.1/inc/modules/member/what-categories.php -text
+0.2.1/inc/modules/member/what-doubler.php -text
+0.2.1/inc/modules/member/what-guest.php -text
+0.2.1/inc/modules/member/what-holiday.php -text
+0.2.1/inc/modules/member/what-html_mail.php -text
+0.2.1/inc/modules/member/what-logout.php -text
+0.2.1/inc/modules/member/what-mydata.php -text
+0.2.1/inc/modules/member/what-newsletter.php -text
+0.2.1/inc/modules/member/what-nickname.php -text
+0.2.1/inc/modules/member/what-order.php -text
+0.2.1/inc/modules/member/what-payout.php -text
+0.2.1/inc/modules/member/what-points.php -text
+0.2.1/inc/modules/member/what-rallyes.php -text
+0.2.1/inc/modules/member/what-reflinks.php -text
+0.2.1/inc/modules/member/what-stats.php -text
+0.2.1/inc/modules/member/what-support.php -text
+0.2.1/inc/modules/member/what-themes.php -text
+0.2.1/inc/modules/member/what-transfer.php -text
+0.2.1/inc/modules/member/what-unconfirmed.php -text
+0.2.1/inc/modules/member/what-welcome.php -text
+0.2.1/inc/modules/member/what-wernis.php -text
+0.2.1/inc/modules/order.php -text
+0.2.1/inc/modules/welcome.php -text
+0.2.1/inc/monthly/.htaccess -text
+0.2.1/inc/monthly/monthly_ -text
+0.2.1/inc/monthly/monthly_beg.php -text
+0.2.1/inc/monthly/monthly_bonus.php -text
+0.2.1/inc/monthly/monthly_newsletter.php -text
+0.2.1/inc/monthly_newsletter.php -text
+0.2.1/inc/mysql-connect.php -text
+0.2.1/inc/mysql-manager.php -text
+0.2.1/inc/patch-system.php -text
+0.2.1/inc/phpmailer/ChangeLog.txt -text
+0.2.1/inc/phpmailer/LICENSE -text
+0.2.1/inc/phpmailer/README -text
+0.2.1/inc/phpmailer/class.phpmailer.php -text
+0.2.1/inc/phpmailer/class.pop3.php -text
+0.2.1/inc/phpmailer/class.smtp.php -text
+0.2.1/inc/phpmailer/codeworxtech.html -text
+0.2.1/inc/phpmailer/docs/extending.html -text
+0.2.1/inc/phpmailer/docs/faq.html -text
+0.2.1/inc/phpmailer/docs/pop3_article.txt -text
+0.2.1/inc/phpmailer/docs/use_gmail.txt -text
+0.2.1/inc/phpmailer/examples/contents.html -text
+0.2.1/inc/phpmailer/examples/images/bkgrnd.gif -text
+0.2.1/inc/phpmailer/examples/images/phpmailer.gif -text
+0.2.1/inc/phpmailer/examples/images/phpmailer.png -text
+0.2.1/inc/phpmailer/examples/images/phpmailer_mini.gif -text
+0.2.1/inc/phpmailer/examples/index.html -text
+0.2.1/inc/phpmailer/examples/pop3_before_smtp_test.php -text
+0.2.1/inc/phpmailer/examples/test1.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-br.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-ca.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-cz.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-de.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-dk.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-en.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-es.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-et.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-fi.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-fo.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-fr.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-hu.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-it.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-ja.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-nl.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-no.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-pl.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-ro.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-ru.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-se.php -text
+0.2.1/inc/phpmailer/language/phpmailer.lang-tr.php -text
+0.2.1/inc/phpmailer/phpdoc/PHPMailer/PHPMailer.html -text
+0.2.1/inc/phpmailer/phpdoc/PHPMailer/SMTP.html -text
+0.2.1/inc/phpmailer/phpdoc/PHPMailer/_class_phpmailer_php.html -text
+0.2.1/inc/phpmailer/phpdoc/PHPMailer/_class_smtp_php.html -text
+0.2.1/inc/phpmailer/phpdoc/blank.html -text
+0.2.1/inc/phpmailer/phpdoc/classtrees_PHPMailer.html -text
+0.2.1/inc/phpmailer/phpdoc/elementindex.html -text
+0.2.1/inc/phpmailer/phpdoc/elementindex_PHPMailer.html -text
+0.2.1/inc/phpmailer/phpdoc/errors.html -text
+0.2.1/inc/phpmailer/phpdoc/index.html -text
+0.2.1/inc/phpmailer/phpdoc/li_PHPMailer.html -text
+0.2.1/inc/phpmailer/phpdoc/media/banner.css -text
+0.2.1/inc/phpmailer/phpdoc/media/stylesheet.css -text
+0.2.1/inc/phpmailer/phpdoc/packages.html -text
+0.2.1/inc/phpmailer/test/phpmailer_test.php -text
+0.2.1/inc/phpmailer/test/phpunit.php -text
+0.2.1/inc/phpmailer/test/test.png -text
+0.2.1/inc/pool-update.php -text
+0.2.1/inc/profile-updte.php -text
+0.2.1/inc/rdf.class.php -text
+0.2.1/inc/reset/.htaccess -text
+0.2.1/inc/reset/reset_ -text
+0.2.1/inc/reset/reset_beg.php -text
+0.2.1/inc/reset/reset_bonus.php -text
+0.2.1/inc/reset/reset_daily.php -text
+0.2.1/inc/reset/reset_engine.php -text
+0.2.1/inc/reset/reset_holiday.php -text
+0.2.1/inc/security.php -text
+0.2.1/inc/session.php -text
+0.2.1/inc/sql_error.php -text
+0.2.1/inc/stats_bonus.php -text
+0.2.1/inc/stylesheet.php -text
+0.2.1/inc/theme-manager.php -text
+0.2.1/index.php -text
+0.2.1/install.php -text
+0.2.1/install/menu-de.sql -text
+0.2.1/install/menu-en.sql -text
+0.2.1/install/tables.sql -text
+0.2.1/lead-confirm.php -text
+0.2.1/login.php -text
+0.2.1/mailid.php -text
+0.2.1/mailid_top.php -text
+0.2.1/modules.php -text
+0.2.1/ref.php -text
+0.2.1/robots.txt -text
+0.2.1/show_bonus.php -text
+0.2.1/templates/.htaccess -text
+0.2.1/templates/de/.htaccess -text
+0.2.1/templates/de/emails/add-points.tpl -text
+0.2.1/templates/de/emails/admin-del_links.tpl -text
+0.2.1/templates/de/emails/admin/admin_autopurge_del_mails.tpl -text
+0.2.1/templates/de/emails/admin/admin_autopurge_delete.tpl -text
+0.2.1/templates/de/emails/admin/admin_autopurge_inactive.tpl -text
+0.2.1/templates/de/emails/admin/admin_autopurge_points.tpl -text
+0.2.1/templates/de/emails/admin/admin_autopurge_tsks.tpl -text
+0.2.1/templates/de/emails/admin/admin_autopurge_turbo.tpl -text
+0.2.1/templates/de/emails/admin/admin_autopurge_unconfirmed.tpl -text
+0.2.1/templates/de/emails/admin/admin_holiday_deactivated.tpl -text
+0.2.1/templates/de/emails/admin/admin_holiday_request.tpl -text
+0.2.1/templates/de/emails/admin/admin_holiday_unlock.tpl -text
+0.2.1/templates/de/emails/admin/admin_mydata_notify.tpl -text
+0.2.1/templates/de/emails/admin/admin_new_ext.tpl -text
+0.2.1/templates/de/emails/admin/admin_newsletter_request.tpl -text
+0.2.1/templates/de/emails/admin/admin_newsletter_reset.tpl -text
+0.2.1/templates/de/emails/admin/admin_payout_request.tpl -text
+0.2.1/templates/de/emails/admin/admin_payout_request_banner.tpl -text
+0.2.1/templates/de/emails/admin/admin_rallye_expired.tpl -text
+0.2.1/templates/de/emails/admin/admin_rallye_expired_no.tpl -text
+0.2.1/templates/de/emails/admin/admin_rallye_no_notify.tpl -text
+0.2.1/templates/de/emails/admin/admin_rallye_notify.tpl -text
+0.2.1/templates/de/emails/admin/admin_rallye_purged.tpl -text
+0.2.1/templates/de/emails/admin/admin_support-ordr.tpl -text
+0.2.1/templates/de/emails/admin/admin_support-reflink.tpl -text
+0.2.1/templates/de/emails/admin/admin_support-unconfirmed.tpl -text
+0.2.1/templates/de/emails/admin/admin_transfer_ap.tpl -text
+0.2.1/templates/de/emails/admin/admin_transfer_points.tpl -text
+0.2.1/templates/de/emails/admin/admin_wernis_request.tpl -text
+0.2.1/templates/de/emails/admins/.htaccess -text
+0.2.1/templates/de/emails/admins/admins_mail_contct_admin.tpl -text
+0.2.1/templates/de/emails/admins/admins_msg_contct_admin.tpl -text
+0.2.1/templates/de/emails/admins_mail_contact_admin.tpl -text
+0.2.1/templates/de/emails/admins_mail_contct_admin.tpl -text
+0.2.1/templates/de/emails/admins_msg_contact_admin.tpl -text
+0.2.1/templates/de/emails/admins_msg_contct_admin.tpl -text
+0.2.1/templates/de/emails/back-admin.tpl -text
+0.2.1/templates/de/emails/back-member.tpl -text
+0.2.1/templates/de/emails/beg/.htaccess -text
+0.2.1/templates/de/emails/beg/beg_di_notify.tpl -text
+0.2.1/templates/de/emails/beg/beg_en_notify.tpl -text
+0.2.1/templates/de/emails/beg/beg_en_notify_body.tpl -text
+0.2.1/templates/de/emails/bonus-mail.tpl -text
+0.2.1/templates/de/emails/bonus/.htaccess -text
+0.2.1/templates/de/emails/bonus/bonus_di_notify.tpl -text
+0.2.1/templates/de/emails/bonus/bonus_en_notify.tpl -text
+0.2.1/templates/de/emails/bonus/bonus_en_notify_body.tpl -text
+0.2.1/templates/de/emails/confirm-member.tpl -text
+0.2.1/templates/de/emails/confirm-referral.tpl -text
+0.2.1/templates/de/emails/del-user.tpl -text
+0.2.1/templates/de/emails/done-admin.tpl -text
+0.2.1/templates/de/emails/done-member.tpl -text
+0.2.1/templates/de/emails/guest/guest_request_confirm.tpl -text
+0.2.1/templates/de/emails/header.tpl -text
+0.2.1/templates/de/emails/lock-user.tpl -text
+0.2.1/templates/de/emails/member/member_autopurge_delete.tpl -text
+0.2.1/templates/de/emails/member/member_autopurge_inactive.tpl -text
+0.2.1/templates/de/emails/member/member_autopurge_points.tpl -text
+0.2.1/templates/de/emails/member/member_autopurge_unconfirmed.tpl -text
+0.2.1/templates/de/emails/member/member_beg.tpl -text
+0.2.1/templates/de/emails/member/member_birthday.tpl -text
+0.2.1/templates/de/emails/member/member_birthday_confirm.tpl -text
+0.2.1/templates/de/emails/member/member_bonus.tpl -text
+0.2.1/templates/de/emails/member/member_contct.tpl -text
+0.2.1/templates/de/emails/member/member_doubler.tpl -text
+0.2.1/templates/de/emails/member/member_holiday_activated.tpl -text
+0.2.1/templates/de/emails/member/member_holiday_removed.tpl -text
+0.2.1/templates/de/emails/member/member_holiday_request.tpl -text
+0.2.1/templates/de/emails/member/member_holiday_unlock.tpl -text
+0.2.1/templates/de/emails/member/member_mydata_notify.tpl -text
+0.2.1/templates/de/emails/member/member_newsletter_done.tpl -text
+0.2.1/templates/de/emails/member/member_newsletter_request.tpl -text
+0.2.1/templates/de/emails/member/member_newsletter_reset.tpl -text
+0.2.1/templates/de/emails/member/member_payout_accepted.tpl -text
+0.2.1/templates/de/emails/member/member_payout_rejected.tpl -text
+0.2.1/templates/de/emails/member/member_payout_request.tpl -text
+0.2.1/templates/de/emails/member/member_payout_request_banner.tpl -text
+0.2.1/templates/de/emails/member/member_rallye_expired.tpl -text
+0.2.1/templates/de/emails/member/member_rallye_expired_bronce.tpl -text
+0.2.1/templates/de/emails/member/member_rallye_expired_gold.tpl -text
+0.2.1/templates/de/emails/member/member_rallye_expired_silver.tpl -text
+0.2.1/templates/de/emails/member/member_rallye_notify.tpl -text
+0.2.1/templates/de/emails/member/member_stats_bonus.tpl -text
+0.2.1/templates/de/emails/member/member_support-order.tpl -text
+0.2.1/templates/de/emails/member/member_support-ordr.tpl -text
+0.2.1/templates/de/emails/member/member_support-reflink.tpl -text
+0.2.1/templates/de/emails/member/member_support-unconfirmed.tpl -text
+0.2.1/templates/de/emails/member/member_transfer_recipient.tpl -text
+0.2.1/templates/de/emails/member/member_transfer_sender.tpl -text
+0.2.1/templates/de/emails/member/member_wernis_accepted.tpl -text
+0.2.1/templates/de/emails/member/member_wernis_rejected.tpl -text
+0.2.1/templates/de/emails/member/member_wernis_request.tpl -text
+0.2.1/templates/de/emails/new-pass.tpl -text
+0.2.1/templates/de/emails/newsletter.tpl -text
+0.2.1/templates/de/emails/newsletter_html.tpl -text
+0.2.1/templates/de/emails/normal-mail.tpl -text
+0.2.1/templates/de/emails/order-accept.tpl -text
+0.2.1/templates/de/emails/order-admin.tpl -text
+0.2.1/templates/de/emails/order-deleted.tpl -text
+0.2.1/templates/de/emails/order-member.tpl -text
+0.2.1/templates/de/emails/order-reject.tpl -text
+0.2.1/templates/de/emails/profile-updte.tpl -text
+0.2.1/templates/de/emails/register-admin.tpl -text
+0.2.1/templates/de/emails/register-member.tpl -text
+0.2.1/templates/de/emails/sub-points.tpl -text
+0.2.1/templates/de/emails/unlock-user.tpl -text
+0.2.1/templates/de/html/.htaccess -text
+0.2.1/templates/de/html/admin/.htaccess -text
+0.2.1/templates/de/html/admin/admin_add_bank_package.tpl -text
+0.2.1/templates/de/html/admin/admin_add_banner.tpl -text
+0.2.1/templates/de/html/admin/admin_add_cat.tpl -text
+0.2.1/templates/de/html/admin/admin_add_country.tpl -text
+0.2.1/templates/de/html/admin/admin_add_max.tpl -text
+0.2.1/templates/de/html/admin/admin_add_payment.tpl -text
+0.2.1/templates/de/html/admin/admin_add_points.tpl -text
+0.2.1/templates/de/html/admin/admin_add_points_all.tpl -text
+0.2.1/templates/de/html/admin/admin_add_rallye.tpl -text
+0.2.1/templates/de/html/admin/admin_add_rallye_prices.tpl -text
+0.2.1/templates/de/html/admin/admin_add_reflvl.tpl -text
+0.2.1/templates/de/html/admin/admin_admin_add.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_add.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_add_acl.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_contact_form.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_contct_default.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_contct_form.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_contct_select.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_mails_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_mails_edit_form.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_mails_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_mails_list.tpl -text
+0.2.1/templates/de/html/admin/admin_admins_mails_list_row.tpl -text
+0.2.1/templates/de/html/admin/admin_amenu_delete.tpl -text
+0.2.1/templates/de/html/admin/admin_amenu_delete_row.tpl -text
+0.2.1/templates/de/html/admin/admin_amenu_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_amenu_edit_form.tpl -text
+0.2.1/templates/de/html/admin/admin_amenu_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_cache_stats.tpl -text
+0.2.1/templates/de/html/admin/admin_config_active.tpl -text
+0.2.1/templates/de/html/admin/admin_config_admin.tpl -text
+0.2.1/templates/de/html/admin/admin_config_admins.tpl -text
+0.2.1/templates/de/html/admin/admin_config_admins_del.tpl -text
+0.2.1/templates/de/html/admin/admin_config_admins_del_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_admins_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_config_admins_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_admins_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_autopurge.tpl -text
+0.2.1/templates/de/html/admin/admin_config_beg.tpl -text
+0.2.1/templates/de/html/admin/admin_config_birthday.tpl -text
+0.2.1/templates/de/html/admin/admin_config_bonus.tpl -text
+0.2.1/templates/de/html/admin/admin_config_cache.tpl -text
+0.2.1/templates/de/html/admin/admin_config_cats.tpl -text
+0.2.1/templates/de/html/admin/admin_config_cats_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_doubler.tpl -text
+0.2.1/templates/de/html/admin/admin_config_email.tpl -text
+0.2.1/templates/de/html/admin/admin_config_email_del.tpl -text
+0.2.1/templates/de/html/admin/admin_config_email_del_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_email_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_config_email_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_email_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_extensions.tpl -text
+0.2.1/templates/de/html/admin/admin_config_holiday.tpl -text
+0.2.1/templates/de/html/admin/admin_config_home.tpl -text
+0.2.1/templates/de/html/admin/admin_config_home_main.tpl -text
+0.2.1/templates/de/html/admin/admin_config_home_settings.tpl -text
+0.2.1/templates/de/html/admin/admin_config_home_settings_pro.tpl -text
+0.2.1/templates/de/html/admin/admin_config_mediadata.tpl -text
+0.2.1/templates/de/html/admin/admin_config_newsletter.tpl -text
+0.2.1/templates/de/html/admin/admin_config_nickname.tpl -text
+0.2.1/templates/de/html/admin/admin_config_order.tpl -text
+0.2.1/templates/de/html/admin/admin_config_order_form.tpl -text
+0.2.1/templates/de/html/admin/admin_config_other.tpl -text
+0.2.1/templates/de/html/admin/admin_config_payouts.tpl -text
+0.2.1/templates/de/html/admin/admin_config_payouts_del.tpl -text
+0.2.1/templates/de/html/admin/admin_config_payouts_del_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_payouts_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_config_payouts_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_payouts_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_point_settings.tpl -text
+0.2.1/templates/de/html/admin/admin_config_points.tpl -text
+0.2.1/templates/de/html/admin/admin_config_rallye_del.tpl -text
+0.2.1/templates/de/html/admin/admin_config_rallye_del_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_rallye_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_config_rallye_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_rallye_prices.tpl -text
+0.2.1/templates/de/html/admin/admin_config_rallye_prices_row.tpl -text
+0.2.1/templates/de/html/admin/admin_config_refid.tpl -text
+0.2.1/templates/de/html/admin/admin_config_reg.tpl -text
+0.2.1/templates/de/html/admin/admin_config_reg_pro.tpl -text
+0.2.1/templates/de/html/admin/admin_config_register.tpl -text
+0.2.1/templates/de/html/admin/admin_config_register2.tpl -text
+0.2.1/templates/de/html/admin/admin_config_rewrite.tpl -text
+0.2.1/templates/de/html/admin/admin_config_rewrite_rows.tpl -text
+0.2.1/templates/de/html/admin/admin_config_secure.tpl -text
+0.2.1/templates/de/html/admin/admin_config_stats.tpl -text
+0.2.1/templates/de/html/admin/admin_config_sub_points.tpl -text
+0.2.1/templates/de/html/admin/admin_config_title.tpl -text
+0.2.1/templates/de/html/admin/admin_config_top10.tpl -text
+0.2.1/templates/de/html/admin/admin_config_transfer.tpl -text
+0.2.1/templates/de/html/admin/admin_config_user.tpl -text
+0.2.1/templates/de/html/admin/admin_config_wernis.tpl -text
+0.2.1/templates/de/html/admin/admin_contct_user_form.tpl -text
+0.2.1/templates/de/html/admin/admin_data_saved.tpl -text
+0.2.1/templates/de/html/admin/admin_del_admins.tpl -text
+0.2.1/templates/de/html/admin/admin_del_admins_row.tpl -text
+0.2.1/templates/de/html/admin/admin_del_bank_packages.tpl -text
+0.2.1/templates/de/html/admin/admin_del_bank_packages_row.tpl -text
+0.2.1/templates/de/html/admin/admin_del_cats.tpl -text
+0.2.1/templates/de/html/admin/admin_del_cats_row.tpl -text
+0.2.1/templates/de/html/admin/admin_del_email_bonus.tpl -text
+0.2.1/templates/de/html/admin/admin_del_email_normal.tpl -text
+0.2.1/templates/de/html/admin/admin_del_payments.tpl -text
+0.2.1/templates/de/html/admin/admin_del_payments_row.tpl -text
+0.2.1/templates/de/html/admin/admin_del_transfer_row.tpl -text
+0.2.1/templates/de/html/admin/admin_del_user.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_admins.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_admins_row.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_cats.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_cats_row.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_email.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_email_row.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_email_select.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_payments.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_payments_row.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_rallyes.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_rallyes_row.tpl -text
+0.2.1/templates/de/html/admin/admin_edit_user.tpl -text
+0.2.1/templates/de/html/admin/admin_email_archiv.tpl -text
+0.2.1/templates/de/html/admin/admin_email_archiv_row.tpl -text
+0.2.1/templates/de/html/admin/admin_email_nav_row.tpl -text
+0.2.1/templates/de/html/admin/admin_ext_reg_form.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_404.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_delete.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_delete_row.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_installed.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_list.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_row.tpl -text
+0.2.1/templates/de/html/admin/admin_extensions_text.tpl -text
+0.2.1/templates/de/html/admin/admin_footer.tpl -text
+0.2.1/templates/de/html/admin/admin_gmenu_delete.tpl -text
+0.2.1/templates/de/html/admin/admin_gmenu_delete_row.tpl -text
+0.2.1/templates/de/html/admin/admin_gmenu_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_gmenu_edit_form.tpl -text
+0.2.1/templates/de/html/admin/admin_gmenu_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_gmenu_status.tpl -text
+0.2.1/templates/de/html/admin/admin_guest_add.tpl -text
+0.2.1/templates/de/html/admin/admin_list_admins.tpl -text
+0.2.1/templates/de/html/admin/admin_list_admins_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_autopurge.tpl -text
+0.2.1/templates/de/html/admin/admin_list_autopurge_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_bank_package.tpl -text
+0.2.1/templates/de/html/admin/admin_list_bank_package_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_beg.tpl -text
+0.2.1/templates/de/html/admin/admin_list_beg_form.tpl -text
+0.2.1/templates/de/html/admin/admin_list_beg_rows.tpl -text
+0.2.1/templates/de/html/admin/admin_list_bonus.tpl -text
+0.2.1/templates/de/html/admin/admin_list_bonus_form.tpl -text
+0.2.1/templates/de/html/admin/admin_list_bonus_rows.tpl -text
+0.2.1/templates/de/html/admin/admin_list_cats.tpl -text
+0.2.1/templates/de/html/admin/admin_list_cats_404.tpl -text
+0.2.1/templates/de/html/admin/admin_list_cats_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_country.tpl -text
+0.2.1/templates/de/html/admin/admin_list_country_del_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_country_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_country_form.tpl -text
+0.2.1/templates/de/html/admin/admin_list_country_no_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_country_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_doubler_already.tpl -text
+0.2.1/templates/de/html/admin/admin_list_doubler_overview.tpl -text
+0.2.1/templates/de/html/admin/admin_list_doubler_waiting.tpl -text
+0.2.1/templates/de/html/admin/admin_list_extensions.tpl -text
+0.2.1/templates/de/html/admin/admin_list_extensions_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_holiday.tpl -text
+0.2.1/templates/de/html/admin/admin_list_holiday_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_links.tpl -text
+0.2.1/templates/de/html/admin/admin_list_links_problem.tpl -text
+0.2.1/templates/de/html/admin/admin_list_links_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_payments.tpl -text
+0.2.1/templates/de/html/admin/admin_list_payouts.tpl -text
+0.2.1/templates/de/html/admin/admin_list_payouts_banner.tpl -text
+0.2.1/templates/de/html/admin/admin_list_payouts_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_payouts_txt.tpl -text
+0.2.1/templates/de/html/admin/admin_list_rallye_noselect.tpl -text
+0.2.1/templates/de/html/admin/admin_list_rallye_prices.tpl -text
+0.2.1/templates/de/html/admin/admin_list_rallye_prices_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_rallye_usr.tpl -text
+0.2.1/templates/de/html/admin/admin_list_rallye_usr_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_rallyes.tpl -text
+0.2.1/templates/de/html/admin/admin_list_rallyes_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_rallyes_row2.tpl -text
+0.2.1/templates/de/html/admin/admin_list_refs.tpl -text
+0.2.1/templates/de/html/admin/admin_list_refs_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_task_rows.tpl -text
+0.2.1/templates/de/html/admin/admin_list_transfer.tpl -text
+0.2.1/templates/de/html/admin/admin_list_transfer_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_unconfirmed.tpl -text
+0.2.1/templates/de/html/admin/admin_list_unconfirmed_header.tpl -text
+0.2.1/templates/de/html/admin/admin_list_unconfirmed_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_user.tpl -text
+0.2.1/templates/de/html/admin/admin_list_user_alpha.tpl -text
+0.2.1/templates/de/html/admin/admin_list_user_pagenav.tpl -text
+0.2.1/templates/de/html/admin/admin_list_user_row.tpl -text
+0.2.1/templates/de/html/admin/admin_list_user_sort.tpl -text
+0.2.1/templates/de/html/admin/admin_list_user_sort_form.tpl -text
+0.2.1/templates/de/html/admin/admin_lock_user.tpl -text
+0.2.1/templates/de/html/admin/admin_login_form.tpl -text
+0.2.1/templates/de/html/admin/admin_login_msg.tpl -text
+0.2.1/templates/de/html/admin/admin_logout.tpl -text
+0.2.1/templates/de/html/admin/admin_logout_form.tpl -text
+0.2.1/templates/de/html/admin/admin_main_footer.tpl -text
+0.2.1/templates/de/html/admin/admin_main_header.tpl -text
+0.2.1/templates/de/html/admin/admin_maintenance_form.tpl -text
+0.2.1/templates/de/html/admin/admin_member_add.tpl -text
+0.2.1/templates/de/html/admin/admin_member_selection_box.tpl -text
+0.2.1/templates/de/html/admin/admin_menu_404_row.tpl -text
+0.2.1/templates/de/html/admin/admin_menu_failed.tpl -text
+0.2.1/templates/de/html/admin/admin_menu_hints.tpl -text
+0.2.1/templates/de/html/admin/admin_menu_hints_row.tpl -text
+0.2.1/templates/de/html/admin/admin_menu_overview_row.tpl -text
+0.2.1/templates/de/html/admin/admin_menu_status_row.tpl -text
+0.2.1/templates/de/html/admin/admin_menu_unknown_okay.tpl -text
+0.2.1/templates/de/html/admin/admin_mini_online.tpl -text
+0.2.1/templates/de/html/admin/admin_mmenu_delete.tpl -text
+0.2.1/templates/de/html/admin/admin_mmenu_delete_row.tpl -text
+0.2.1/templates/de/html/admin/admin_mmenu_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_mmenu_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_mmenu_overview.tpl -text
+0.2.1/templates/de/html/admin/admin_mmenu_status.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_footer_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_footer_list.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_footer_stats.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_footer_stats2.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_header_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_header_list.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_header_stats.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_header_stats2.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_list.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_list_row.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_stats.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_stats2.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_stats2_row.tpl -text
+0.2.1/templates/de/html/admin/admin_mods_stats_row.tpl -text
+0.2.1/templates/de/html/admin/admin_newsletter.tpl -text
+0.2.1/templates/de/html/admin/admin_newsletter_nohtml.tpl -text
+0.2.1/templates/de/html/admin/admin_newsletter_tsk.tpl -text
+0.2.1/templates/de/html/admin/admin_online_footer.tpl -text
+0.2.1/templates/de/html/admin/admin_online_header.tpl -text
+0.2.1/templates/de/html/admin/admin_optimize.tpl -text
+0.2.1/templates/de/html/admin/admin_optimize_row.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_footer.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_footer_task.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_header.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_header_task.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_list.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_list_rows.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_row.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_task.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_task_extras.tpl -text
+0.2.1/templates/de/html/admin/admin_overview_task_rows.tpl -text
+0.2.1/templates/de/html/admin/admin_patches.tpl -text
+0.2.1/templates/de/html/admin/admin_patches_row.tpl -text
+0.2.1/templates/de/html/admin/admin_payments_list_row.tpl -text
+0.2.1/templates/de/html/admin/admin_payout_accept_form.tpl -text
+0.2.1/templates/de/html/admin/admin_payout_add_new.tpl -text
+0.2.1/templates/de/html/admin/admin_payout_failed_transfer.tpl -text
+0.2.1/templates/de/html/admin/admin_payout_overview_form.tpl -text
+0.2.1/templates/de/html/admin/admin_payout_reject_form.tpl -text
+0.2.1/templates/de/html/admin/admin_points.tpl -text
+0.2.1/templates/de/html/admin/admin_points_del.tpl -text
+0.2.1/templates/de/html/admin/admin_points_del_row.tpl -text
+0.2.1/templates/de/html/admin/admin_points_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_points_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_points_row.tpl -text
+0.2.1/templates/de/html/admin/admin_refbanner.tpl -text
+0.2.1/templates/de/html/admin/admin_refbanner_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_refbanner_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_refbanner_row.tpl -text
+0.2.1/templates/de/html/admin/admin_reg.tpl -text
+0.2.1/templates/de/html/admin/admin_reg_form.tpl -text
+0.2.1/templates/de/html/admin/admin_reg_row.tpl -text
+0.2.1/templates/de/html/admin/admin_send_bonus_form.tpl -text
+0.2.1/templates/de/html/admin/admin_send_bonus_select.tpl -text
+0.2.1/templates/de/html/admin/admin_settings_saved.tpl -text
+0.2.1/templates/de/html/admin/admin_sub_points.tpl -text
+0.2.1/templates/de/html/admin/admin_sub_points_all.tpl -text
+0.2.1/templates/de/html/admin/admin_task_holiday.tpl -text
+0.2.1/templates/de/html/admin/admin_theme_404.tpl -text
+0.2.1/templates/de/html/admin/admin_theme_edit.tpl -text
+0.2.1/templates/de/html/admin/admin_theme_edit_row.tpl -text
+0.2.1/templates/de/html/admin/admin_theme_import.tpl -text
+0.2.1/templates/de/html/admin/admin_theme_installed.tpl -text
+0.2.1/templates/de/html/admin/admin_theme_list.tpl -text
+0.2.1/templates/de/html/admin/admin_unlock_emails.tpl -text
+0.2.1/templates/de/html/admin/admin_unlock_emails_redir.tpl -text
+0.2.1/templates/de/html/admin/admin_unlock_emails_redir_row.tpl -text
+0.2.1/templates/de/html/admin/admin_unlock_emails_row.tpl -text
+0.2.1/templates/de/html/admin/admin_update_download.tpl -text
+0.2.1/templates/de/html/admin/admin_user_details.tpl -text
+0.2.1/templates/de/html/admin/admin_welcome.tpl -text
+0.2.1/templates/de/html/admin/admin_welcome_admins.tpl -text
+0.2.1/templates/de/html/agb.tpl -text
+0.2.1/templates/de/html/beg/.htaccess -text
+0.2.1/templates/de/html/beg/beg_banner.tpl -text
+0.2.1/templates/de/html/beg/beg_done.tpl -text
+0.2.1/templates/de/html/beg/beg_failed.tpl -text
+0.2.1/templates/de/html/beg/beg_link.tpl -text
+0.2.1/templates/de/html/beg/beg_login.tpl -text
+0.2.1/templates/de/html/birthday/.htaccess -text
+0.2.1/templates/de/html/birthday/birthday_confirm.tpl -text
+0.2.1/templates/de/html/birthday/birthday_footer.tpl -text
+0.2.1/templates/de/html/birthday/birthday_header.tpl -text
+0.2.1/templates/de/html/birthday/birthday_msg.tpl -text
+0.2.1/templates/de/html/copyright.tpl -text
+0.2.1/templates/de/html/copyright_backlink.tpl -text
+0.2.1/templates/de/html/doubler/.htaccess -text
+0.2.1/templates/de/html/doubler/doubler_footer.tpl -text
+0.2.1/templates/de/html/doubler/doubler_header.tpl -text
+0.2.1/templates/de/html/doubler/doubler_index.tpl -text
+0.2.1/templates/de/html/doubler/doubler_reflink.tpl -text
+0.2.1/templates/de/html/ext/.htaccess -text
+0.2.1/templates/de/html/ext/ext_active.tpl -text
+0.2.1/templates/de/html/ext/ext_admins.tpl -text
+0.2.1/templates/de/html/ext/ext_admintheme1.tpl -text
+0.2.1/templates/de/html/ext/ext_admintheme_default.tpl -text
+0.2.1/templates/de/html/ext/ext_autopurge.tpl -text
+0.2.1/templates/de/html/ext/ext_bank.tpl -text
+0.2.1/templates/de/html/ext/ext_beg.tpl -text
+0.2.1/templates/de/html/ext/ext_birthday.tpl -text
+0.2.1/templates/de/html/ext/ext_bonus.tpl -text
+0.2.1/templates/de/html/ext/ext_cache.tpl -text
+0.2.1/templates/de/html/ext/ext_country.tpl -text
+0.2.1/templates/de/html/ext/ext_demo.tpl -text
+0.2.1/templates/de/html/ext/ext_doubler.tpl -text
+0.2.1/templates/de/html/ext/ext_holiday.tpl -text
+0.2.1/templates/de/html/ext/ext_html_mail.tpl -text
+0.2.1/templates/de/html/ext/ext_mailid.tpl -text
+0.2.1/templates/de/html/ext/ext_maintenance.tpl -text
+0.2.1/templates/de/html/ext/ext_mediadata.tpl -text
+0.2.1/templates/de/html/ext/ext_mods.tpl -text
+0.2.1/templates/de/html/ext/ext_mydata.tpl -text
+0.2.1/templates/de/html/ext/ext_newsletter.tpl -text
+0.2.1/templates/de/html/ext/ext_nickname.tpl -text
+0.2.1/templates/de/html/ext/ext_online.tpl -text
+0.2.1/templates/de/html/ext/ext_optimize.tpl -text
+0.2.1/templates/de/html/ext/ext_order.tpl -text
+0.2.1/templates/de/html/ext/ext_other.tpl -text
+0.2.1/templates/de/html/ext/ext_payout.tpl -text
+0.2.1/templates/de/html/ext/ext_profile.tpl -text
+0.2.1/templates/de/html/ext/ext_rallye.tpl -text
+0.2.1/templates/de/html/ext/ext_register.tpl -text
+0.2.1/templates/de/html/ext/ext_repair.tpl -text
+0.2.1/templates/de/html/ext/ext_rewrite.tpl -text
+0.2.1/templates/de/html/ext/ext_sql_patches.tpl -text
+0.2.1/templates/de/html/ext/ext_support.tpl -text
+0.2.1/templates/de/html/ext/ext_task.tpl -text
+0.2.1/templates/de/html/ext/ext_theme.tpl -text
+0.2.1/templates/de/html/ext/ext_top10.tpl -text
+0.2.1/templates/de/html/ext/ext_transfer.tpl -text
+0.2.1/templates/de/html/ext/ext_user.tpl -text
+0.2.1/templates/de/html/ext/ext_wernis.tpl -text
+0.2.1/templates/de/html/fatal_footer.tpl -text
+0.2.1/templates/de/html/fatal_header.tpl -text
+0.2.1/templates/de/html/guest/.htaccess -text
+0.2.1/templates/de/html/guest/guest_active_none_row.tpl -text
+0.2.1/templates/de/html/guest/guest_active_row.tpl -text
+0.2.1/templates/de/html/guest/guest_active_table.tpl -text
+0.2.1/templates/de/html/guest/guest_advert.tpl -text
+0.2.1/templates/de/html/guest/guest_advert2.tpl -text
+0.2.1/templates/de/html/guest/guest_beg.tpl -text
+0.2.1/templates/de/html/guest/guest_cat_row.tpl -text
+0.2.1/templates/de/html/guest/guest_cat_table.tpl -text
+0.2.1/templates/de/html/guest/guest_confirm_link.tpl -text
+0.2.1/templates/de/html/guest/guest_confirm_table.tpl -text
+0.2.1/templates/de/html/guest/guest_content_footer.tpl -text
+0.2.1/templates/de/html/guest/guest_doubler.tpl -text
+0.2.1/templates/de/html/guest/guest_doubler_list.tpl -text
+0.2.1/templates/de/html/guest/guest_doubler_list_rows.tpl -text
+0.2.1/templates/de/html/guest/guest_footer.tpl -text
+0.2.1/templates/de/html/guest/guest_frametester.tpl -text
+0.2.1/templates/de/html/guest/guest_goto_top.tpl -text
+0.2.1/templates/de/html/guest/guest_header.tpl -text
+0.2.1/templates/de/html/guest/guest_login.tpl -text
+0.2.1/templates/de/html/guest/guest_menu_bottom.tpl -text
+0.2.1/templates/de/html/guest/guest_menu_content.tpl -text
+0.2.1/templates/de/html/guest/guest_menu_row.tpl -text
+0.2.1/templates/de/html/guest/guest_menu_td.tpl -text
+0.2.1/templates/de/html/guest/guest_menu_title.tpl -text
+0.2.1/templates/de/html/guest/guest_menu_whats.tpl -text
+0.2.1/templates/de/html/guest/guest_nickname_login.tpl -text
+0.2.1/templates/de/html/guest/guest_no_rallyes.tpl -text
+0.2.1/templates/de/html/guest/guest_rallye_expired_footer.tpl -text
+0.2.1/templates/de/html/guest/guest_rallye_expired_header.tpl -text
+0.2.1/templates/de/html/guest/guest_rallye_footer.tpl -text
+0.2.1/templates/de/html/guest/guest_rallye_header.tpl -text
+0.2.1/templates/de/html/guest/guest_rallye_show.tpl -text
+0.2.1/templates/de/html/guest/guest_receive_table.tpl -text
+0.2.1/templates/de/html/guest/guest_register.tpl -text
+0.2.1/templates/de/html/guest/guest_register_refid.tpl -text
+0.2.1/templates/de/html/guest/guest_register_refid_hide.tpl -text
+0.2.1/templates/de/html/guest/guest_stats_cats_row.tpl -text
+0.2.1/templates/de/html/guest/guest_stats_member.tpl -text
+0.2.1/templates/de/html/guest/guest_stats_month_row.tpl -text
+0.2.1/templates/de/html/guest/guest_top10.tpl -text
+0.2.1/templates/de/html/guest/guest_top10_empty4.tpl -text
+0.2.1/templates/de/html/guest/guest_top10_empty5.tpl -text
+0.2.1/templates/de/html/guest/guest_top10_row_earner.tpl -text
+0.2.1/templates/de/html/guest/guest_top10_row_login.tpl -text
+0.2.1/templates/de/html/guest/guest_top10_row_refs.tpl -text
+0.2.1/templates/de/html/header.tpl -text
+0.2.1/templates/de/html/impressum.tpl -text
+0.2.1/templates/de/html/index.tpl -text
+0.2.1/templates/de/html/index_forward.tpl -text
+0.2.1/templates/de/html/infos.tpl -text
+0.2.1/templates/de/html/install/.htaccess -text
+0.2.1/templates/de/html/install/install_fatal_row.tpl -text
+0.2.1/templates/de/html/install/install_fatal_table.tpl -text
+0.2.1/templates/de/html/install/install_footer.tpl -text
+0.2.1/templates/de/html/install/install_header.tpl -text
+0.2.1/templates/de/html/install/install_page1.tpl -text
+0.2.1/templates/de/html/install/install_page2.tpl -text
+0.2.1/templates/de/html/install/install_welcome.tpl -text
+0.2.1/templates/de/html/lead_code.tpl -text
+0.2.1/templates/de/html/loader.tpl -text
+0.2.1/templates/de/html/login_failed_js.tpl -text
+0.2.1/templates/de/html/mailid/.htaccess -text
+0.2.1/templates/de/html/mailid/mailid_banner.tpl -text
+0.2.1/templates/de/html/mailid/mailid_confirm_buttom.tpl -text
+0.2.1/templates/de/html/mailid/mailid_enter_code.tpl -text
+0.2.1/templates/de/html/mailid/mailid_frames.tpl -text
+0.2.1/templates/de/html/mailid/mailid_frameset.tpl -text
+0.2.1/templates/de/html/mailid/mailid_points_done.tpl -text
+0.2.1/templates/de/html/mailid/mailid_points_done2.tpl -text
+0.2.1/templates/de/html/mailid/mailid_points_failed.tpl -text
+0.2.1/templates/de/html/mailid/mailid_points_lcoked2.tpl -text
+0.2.1/templates/de/html/mailid/mailid_points_locked.tpl -text
+0.2.1/templates/de/html/mailid/mailid_points_locked2.tpl -text
+0.2.1/templates/de/html/mailid/mailid_timer.tpl -text
+0.2.1/templates/de/html/main-welcome.tpl -text
+0.2.1/templates/de/html/mediadata.tpl -text
+0.2.1/templates/de/html/mediadata_extra_hrow.tpl -text
+0.2.1/templates/de/html/mediadata_extra_row.tpl -text
+0.2.1/templates/de/html/mediadata_extra_row2.tpl -text
+0.2.1/templates/de/html/member/.htaccess -text
+0.2.1/templates/de/html/member/member_advert.tpl -text
+0.2.1/templates/de/html/member/member_beg.tpl -text
+0.2.1/templates/de/html/member/member_beg_404.tpl -text
+0.2.1/templates/de/html/member/member_bonus.tpl -text
+0.2.1/templates/de/html/member/member_bonus_404.tpl -text
+0.2.1/templates/de/html/member/member_bonus_row.tpl -text
+0.2.1/templates/de/html/member/member_cat_row.tpl -text
+0.2.1/templates/de/html/member/member_cats_footer.tpl -text
+0.2.1/templates/de/html/member/member_cats_header.tpl -text
+0.2.1/templates/de/html/member/member_doubler.tpl -text
+0.2.1/templates/de/html/member/member_doubler_list.tpl -text
+0.2.1/templates/de/html/member/member_doubler_list_rows.tpl -text
+0.2.1/templates/de/html/member/member_footer.tpl -text
+0.2.1/templates/de/html/member/member_goto_top.tpl -text
+0.2.1/templates/de/html/member/member_header.tpl -text
+0.2.1/templates/de/html/member/member_holiday_deactivate.tpl -text
+0.2.1/templates/de/html/member/member_holiday_form.tpl -text
+0.2.1/templates/de/html/member/member_html_mail_settings.tpl -text
+0.2.1/templates/de/html/member/member_list_beg.tpl -text
+0.2.1/templates/de/html/member/member_list_beg_row.tpl -text
+0.2.1/templates/de/html/member/member_login_js.tpl -text
+0.2.1/templates/de/html/member/member_menu_bottom.tpl -text
+0.2.1/templates/de/html/member/member_menu_row.tpl -text
+0.2.1/templates/de/html/member/member_menu_title.tpl -text
+0.2.1/templates/de/html/member/member_menu_whats.tpl -text
+0.2.1/templates/de/html/member/member_mydata_button.tpl -text
+0.2.1/templates/de/html/member/member_mydata_edit.tpl -text
+0.2.1/templates/de/html/member/member_mydata_locked.tpl -text
+0.2.1/templates/de/html/member/member_mydata_overview.tpl -text
+0.2.1/templates/de/html/member/member_newsletter.tpl -text
+0.2.1/templates/de/html/member/member_newsletter_note.tpl -text
+0.2.1/templates/de/html/member/member_nickname_form.tpl -text
+0.2.1/templates/de/html/member/member_order-back.tpl -text
+0.2.1/templates/de/html/member/member_order-html_ext.tpl -text
+0.2.1/templates/de/html/member/member_order-html_intro.tpl -text
+0.2.1/templates/de/html/member/member_order-zip1.tpl -text
+0.2.1/templates/de/html/member/member_order-zip2.tpl -text
+0.2.1/templates/de/html/member/member_order_back.tpl -text
+0.2.1/templates/de/html/member/member_order_frametester.tpl -text
+0.2.1/templates/de/html/member/member_order_page1.tpl -text
+0.2.1/templates/de/html/member/member_order_page2.tpl -text
+0.2.1/templates/de/html/member/member_order_points.tpl -text
+0.2.1/templates/de/html/member/member_order_send.tpl -text
+0.2.1/templates/de/html/member/member_payout.tpl -text
+0.2.1/templates/de/html/member/member_payout_form.tpl -text
+0.2.1/templates/de/html/member/member_payout_form_banner.tpl -text
+0.2.1/templates/de/html/member/member_payout_row.tpl -text
+0.2.1/templates/de/html/member/member_points.tpl -text
+0.2.1/templates/de/html/member/member_points_bonus_disabled.tpl -text
+0.2.1/templates/de/html/member/member_points_bonus_rows.tpl -text
+0.2.1/templates/de/html/member/member_points_row.tpl -text
+0.2.1/templates/de/html/member/member_points_upgrade.tpl -text
+0.2.1/templates/de/html/member/member_receive_table.tpl -text
+0.2.1/templates/de/html/member/member_reflinks_row.tpl -text
+0.2.1/templates/de/html/member/member_reflinks_table.tpl -text
+0.2.1/templates/de/html/member/member_stats_row.tpl -text
+0.2.1/templates/de/html/member/member_stats_table.tpl -text
+0.2.1/templates/de/html/member/member_support_contacted.tpl -text
+0.2.1/templates/de/html/member/member_support_contcted.tpl -text
+0.2.1/templates/de/html/member/member_support_form.tpl -text
+0.2.1/templates/de/html/member/member_themes.tpl -text
+0.2.1/templates/de/html/member/member_transfer_list.tpl -text
+0.2.1/templates/de/html/member/member_transfer_new.tpl -text
+0.2.1/templates/de/html/member/member_transfer_overview.tpl -text
+0.2.1/templates/de/html/member/member_transfer_settings.tpl -text
+0.2.1/templates/de/html/member/member_unconfirmed_404.tpl -text
+0.2.1/templates/de/html/member/member_unconfirmed_row.tpl -text
+0.2.1/templates/de/html/member/member_unconfirmed_table.tpl -text
+0.2.1/templates/de/html/member/member_welcome.tpl -text
+0.2.1/templates/de/html/member/member_welcome_footer.tpl -text
+0.2.1/templates/de/html/member/member_welcome_header.tpl -text
+0.2.1/templates/de/html/member/member_wernis.tpl -text
+0.2.1/templates/de/html/member/member_wernis_form.tpl -text
+0.2.1/templates/de/html/member/member_wernis_mode_choose.tpl -text
+0.2.1/templates/de/html/member/member_wernis_row.tpl -text
+0.2.1/templates/de/html/message.tpl -text
+0.2.1/templates/de/html/metadata.tpl -text
+0.2.1/templates/de/html/online_now.tpl -text
+0.2.1/templates/de/html/page_body.tpl -text
+0.2.1/templates/de/html/page_footer.tpl -text
+0.2.1/templates/de/html/page_header.tpl -text
+0.2.1/templates/de/html/profile-update.tpl -text
+0.2.1/templates/de/html/rallye_test.tpl -text
+0.2.1/templates/de/html/register_header.tpl -text
+0.2.1/templates/de/html/runtime_fatal_row.tpl -text
+0.2.1/templates/de/html/runtime_fatal_table.tpl -text
+0.2.1/templates/de/html/show_bonus.tpl -text
+0.2.1/templates/de/html/show_bonus_footer.tpl -text
+0.2.1/templates/de/html/show_bonus_header.tpl -text
+0.2.1/templates/de/html/show_bonus_msg.tpl -text
+0.2.1/templates/de/html/show_bonus_yr.tpl -text
+0.2.1/templates/de/html/theme_one.tpl -text
+0.2.1/templates/de/html/theme_select_box.tpl -text
+0.2.1/templates/de/html/theme_select_form.tpl -text
+0.2.1/templates/de/html/welcome.tpl -text
+0.2.1/templates/en/html/admin/admin_welcome.tpl -text
+0.2.1/templates/en/html/impressum.tpl -text
+0.2.1/templates/en/html/mailid/.htaccess -text
+0.2.1/templates/en/html/register_header.tpl -text
+0.2.1/templates/en/html/welcome.tpl -text
+0.2.1/theme/business/css/active.css -text
+0.2.1/theme/business/css/beg.css -text
+0.2.1/theme/business/css/bonus.css -text
+0.2.1/theme/business/css/doubler.css -text
+0.2.1/theme/business/css/general.css -text
+0.2.1/theme/business/css/install.css -text
+0.2.1/theme/business/css/nickname.css -text
+0.2.1/theme/business/css/register.css -text
+0.2.1/theme/business/css/task.css -text
+0.2.1/theme/business/css/top10.css -text
+0.2.1/theme/business/css/transfer.css -text
+0.2.1/theme/business/images/code_bg.jpg -text
+0.2.1/theme/business/images/code_bg.png -text
+0.2.1/theme/business/theme.php -text
+0.2.1/theme/default/css/active.css -text
+0.2.1/theme/default/css/beg.css -text
+0.2.1/theme/default/css/bonus.css -text
+0.2.1/theme/default/css/doubler.css -text
+0.2.1/theme/default/css/general.css -text
+0.2.1/theme/default/css/install.css -text
+0.2.1/theme/default/css/nickname.css -text
+0.2.1/theme/default/css/register.css -text
+0.2.1/theme/default/css/task.css -text
+0.2.1/theme/default/css/top10.css -text
+0.2.1/theme/default/css/transfer.css -text
+0.2.1/theme/default/images/code_bg.jpg -text
+0.2.1/theme/default/images/code_bg.png -text
+0.2.1/theme/default/theme.php -text
+0.2.1/theme/desert/css/active.css -text
+0.2.1/theme/desert/css/beg.css -text
+0.2.1/theme/desert/css/bonus.css -text
+0.2.1/theme/desert/css/doubler.css -text
+0.2.1/theme/desert/css/general.css -text
+0.2.1/theme/desert/css/help.css -text
+0.2.1/theme/desert/css/install.css -text
+0.2.1/theme/desert/css/paidlinks.css -text
+0.2.1/theme/desert/css/register.css -text
+0.2.1/theme/desert/css/sponsor.css -text
+0.2.1/theme/desert/css/top10.css -text
+0.2.1/theme/desert/css/transfer.css -text
+0.2.1/theme/desert/images/code_bg.jpg -text
+0.2.1/theme/desert/images/code_bg.png -text
+0.2.1/theme/desert/images/help/bullet.png -text
+0.2.1/theme/desert/images/help/down.jpg -text
+0.2.1/theme/desert/images/help/left.jpg -text
+0.2.1/theme/desert/images/help/right.jpg -text
+0.2.1/theme/desert/images/help/up.jpg -text
+0.2.1/theme/desert/theme.php -text
+0.2.1/view.php -text
diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..9708579
--- /dev/null
@@ -0,0 +1,3 @@
+0.2.1/.cache
+0.2.1/.project
+0.2.1/.settings
diff --git a/0.2.1/.htaccess b/0.2.1/.htaccess
new file mode 100644 (file)
index 0000000..b6819a9
--- /dev/null
@@ -0,0 +1,8 @@
+Options -Indexes\r
+DirectoryIndex index.php\r
+\r
+<IfModule mod_rewrite.c>\r
+       RewriteRule     ^cms/(.*)/wht/(.*)$             modules.php?module=$1&what=$2           [L]\r
+       RewriteRule     ^cms/(.*)/act/(.*)$             modules.php?module=$1&action=$2         [L]\r
+       RewriteRule     ^cms/(.*)$                              modules.php?module=$1                           [L]\r
+</IfModule>\r
diff --git a/0.2.1/DOCS/INSTALL.txt b/0.2.1/DOCS/INSTALL.txt
new file mode 100644 (file)
index 0000000..da98f0c
--- /dev/null
@@ -0,0 +1,3 @@
+Lesen Sie in der de/README.txt unter Sektion 3 weiter.
+
+Please read the en/README.txt file for installation instructions.
diff --git a/0.2.1/DOCS/LICENSE.txt b/0.2.1/DOCS/LICENSE.txt
new file mode 100644 (file)
index 0000000..d511905
--- /dev/null
@@ -0,0 +1,339 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, 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.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  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
+this service 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 make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  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.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program 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.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+                    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
+convey 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 2 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, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision 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, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This 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.
diff --git a/0.2.1/DOCS/README b/0.2.1/DOCS/README
new file mode 100644 (file)
index 0000000..ec9a1ec
--- /dev/null
@@ -0,0 +1,21 @@
+All documents including licence file are moved into the new DOCS directory!\r
+\r
+Alle Dokumente inklusive Lizenz wurden in das neue DOCS-Verzeichnis verschoben!\r
+\r
+-------------------------------\r
+Copyright notes:\r
+-------------------------------\r
+\r
+MXChange is free software; you can redistribute it and/or modify\r
+it under the terms of the GNU General Public License as published by\r
+the Free Software Foundation; either version 2 of the License, or any\r
+later version.\r
+\r
+MXChange is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+GNU General Public License for more details.\r
+\r
+You should have received a copy of the GNU General Public License\r
+along with this program; if not, write to the Free Software\r
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
diff --git a/0.2.1/DOCS/de/AUTHORS.txt b/0.2.1/DOCS/de/AUTHORS.txt
new file mode 100644 (file)
index 0000000..98bd95f
--- /dev/null
@@ -0,0 +1,53 @@
+[----------------------------------]
+[-- Alle Autoren dieses Scriptes --]
+[----------------------------------]
+
+- Roland "Quix0r" Haeder <webmaster [AT] mxchange [DOT] org>
+
+  (Projektleiter, Hauptprogrammierer, Webmaster)
+
+- Mr. X <vielleicht.ihre [AT] adresse.de>
+
+  (Will gerne aufgenommen werden... ;-) )
+
+[----------------------------]
+[-- Alpha- und Beta-Tester --]
+[----------------------------]
+
+- Peter "Piter01" Llorens y Rilk <peter.llorens [AT] piter02 [DOT] de>
+  (Beta-Tester, hat bei der 0.2.1-Bugsuche mitgemacht und sonst immer jede
+  neue Version getestet. Vielen Dank! :)
+
+- Michael "The Shadowmaster" Wollweber <the_shadowmaster [AT] hotmail [DOT] de>
+
+  (Beta-Tester, hat mir bei der Fehlersuche wegen unterschiedlichen IP-Nummern
+   in $_SERVER['SERVER_ADDR'] und getaddrbyname($_SERVER['SERVER_NAME']) seinen
+   FTP-Zugang ausgeliehen)
+
+- Ich suche mehr Alpha- und Beta-Tester! Bitte testet mein Script auf anderer
+  Hard- und Softwarewareumgebung als ich habe. (Debian Linux auf P4/AMD64)
+
+  Ich habe noch eine Sun mit Solaris 7 hier. :) Mal Apachen + MySQL + PHP4/5
+  suchen...
+
+[----------------------------------------]
+[-- Inaktive Entwickler / Mitwirkende  --]
+[----------------------------------------]
+
+- Robert Niedziela <mail [AT] mc-p.org>
+
+  (Sekundaerer Programmierer, einige Bugfixes und viele Verbesserungen:
+    "Andere Einstellungen" im Admin-Menue, EMails loeschen, Medidaten,
+    EMail-Archiv und -Details Menuepunkte)
+
+- Lars Moehlenbruch <info [AT] surfo.net>
+
+  (Verbesserter HTML-Template Support, Referrals eines Mitgliedes auflisten)
+
+- Erol Ilkan <erol [AT] gmxpro.de>
+
+  (Neuer Entwickler, einige Bugfixes, SQL-Fehler beseitigt)
+
+- Lothar Mengens <money [AT] gmx.net>
+
+  (Hat mir eine SQL-Datei mit Laendercodes zur Verfuegung gestellt)
diff --git a/0.2.1/DOCS/de/CHANGES.txt b/0.2.1/DOCS/de/CHANGES.txt
new file mode 100644 (file)
index 0000000..7777c33
--- /dev/null
@@ -0,0 +1,5 @@
+Die aktuellen Aenderungen habe ich leider nicht konsequent weitergefuehrt, werde dies aber ab der
+Version 0.3.0 wieder machen, oder so.
+
+Roland
+
diff --git a/0.2.1/DOCS/de/CSS-PATCHES.txt b/0.2.1/DOCS/de/CSS-PATCHES.txt
new file mode 100644 (file)
index 0000000..967d5dd
--- /dev/null
@@ -0,0 +1,118 @@
+--------------------------------------------------------------------------------
+Diese Datei kommt noch aus den ersten Zeiten des Scriptes (wie Sie an der Patch-
+Nummer 180 erkennen koennen; 512 ist derzeit die zuletzt herausgekommene Patch-
+Nummer). Bitte ignorieren Sie daher diese Anleitung. Ich habe sie zum Ansehen
+hier drinne gelassen.
+--------------------------------------------------------------------------------
+
+Folgende Aenderungen muessen mit dem 180-Patch zussammen an der css/general.css
+erledigt werden. Aber nur dann, wenn Sie von aelteren Versionen aufsteigen!
+
+[--- SUCHEN NACH: ---]
+.admin.fatal
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_fatal
+
+[--- SUCHEN NACH: ---]
+.admin.error
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_error
+
+[--- SUCHEN NACH: ---]
+.admin.edit
+
+[-- AUSTAUSCHEN DURCH (NUR ZEILE 127 ---]
+[--  bzw. nicht nach Zeile 200!):    ---]
+.admin_edit
+
+[--- SUCHEN NACH: ---]
+.admin.desc_header
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_desc_header
+
+[--- SUCHEN NACH: ---]
+.admin.desc_cont
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_desc_cont
+
+[--- SUCHEN NACH: ---]
+.admin.logout
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_logout
+
+[--- SUCHEN NACH: ---]
+.admin.editmenu
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_editmenu
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin.forms {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_seperator_b2 {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_seperator_b3 {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_seperator_br {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_seperator_b {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_header_br {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_table_br {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_table_b {
+       ...;
+       ...
+}
+
+[-- NUR KLASSEN-NAME LOESCHEN: --]
+.register_????????,
+
+(NUR PRO-VERSIONEN!)
+
+[-- KOMPLETT LOESCHEN: (SEHR ALTE VERSIONEN!) ---]
+.admin.seperator {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: (NEUERE VERSIONEN!) ---]
+.admin_seperator {
+       ...;
+       ...
+}
+
diff --git a/0.2.1/DOCS/de/CSS-PATCHES_05092004.txt b/0.2.1/DOCS/de/CSS-PATCHES_05092004.txt
new file mode 100644 (file)
index 0000000..be3f16e
--- /dev/null
@@ -0,0 +1,93 @@
+--------------------------------------------------------------------------------
+Veraltete Anleitung zum Patchen von CSS-Dateien. Bitte ignorieren Sie auch diese
+Datei! Wieder habe ich sie im Paket drinne gelassen, damit Sie sich die
+Scripte-Entwicklung mal ansehen koennen.
+--------------------------------------------------------------------------------
+
+Folgende Aenderungen sollten Sie zusammen mit dem aktuellen Update erledigen:
+
+[-- OPEN: --]
+css/general.css
+
+[-- DELETE COMPLETELY: ---]
+span.fatal {
+       ...
+}
+
+[-- DELETE COMPLETELY: ---]
+.submit {
+       ...
+}
+
+[-- DELETE COMPLETELY: ---]
+.admin_choice {
+       ...;
+       ...;
+       ...;
+}
+
+[-- SEARCH FOR: --]
+.guest_menu_whats
+
+[-- REPLACE WITH: --]
+.guest_menu_row, .guest_menu_bottom
+
+[-- SEARCH FOR: --]
+.guest_menu_row, .guest_menu_bottom
+
+[-- CONTINUE SEARCH: --]
+}
+
+[-- ADD BEFORE: --]
+       padding-left: 10px;
+       vertical-align: middle;
+
+[-- DELETE COMPLETELY: --]
+.footer {
+       ...;
+       ...
+}
+
+[-- SEARCH FOR: --]
+.footer.lines
+
+[-- REPLACE WITH: --]
+.footer_lines
+
+[-- CONTINUE SEARCH: --]
+     vertical-align      : bottom;
+     font-size           : 10px;
+}
+
+[-- COMMENT: --]
+Im Mitglieder-Template member_header.tpl.de war ein Fehler. Evtl. kann dies bei Ihnen schon entfernt sein!
+
+[-- OPEN: --]
+templates/member_header.tpl.de
+
+[-- SEARCH ON EOL AND REMOVE: --]
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%" class="guest">
+
+[-- COMMENT: --]
+Wenn Sie wieder den kleinen Punkt vor dem Menuenamen haben wollen, arbeiten Sie folgende Anweisungen ab:
+Dies sollten Sie aber nicht tun, wenn Sie Bilder anstelle der Textlinks verwenden.
+
+[-- OPEN: --]
+templates/guest_menu_bottom.tpl.de
+
+[-- SEARCH FOR: --]
+$content
+
+[-- ADD BEFORE: --]
+<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;
+
+[-- OPEN: --]
+templates/guest_menu_row.tpl.de
+
+[-- SEARCH FOR: --]
+$content
+
+[-- ADD BEFORE: --]
+<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;
+
+[-- CLOSE/SAVE FILES --]
diff --git a/0.2.1/DOCS/de/DESIGNING.txt b/0.2.1/DOCS/de/DESIGNING.txt
new file mode 100644 (file)
index 0000000..4d9f98c
--- /dev/null
@@ -0,0 +1,732 @@
+0. Inhaltverzeichnis
+--------------------
+
+1.   Intro
+2.   Wie Sie am besten anfangen
+2.1. Allgemeine Farbeinstellungen
+
+----- ----- ----- ----- -----
+
+1. Intro
+--------
+
+Ich moechte Ihnen hier zeigen, wie Sie das Design Schritt-Fuer-Schritt an
+Ihre Wuensche angepasst bekommen.
+
+Dann gebe ich Ihnen eine Referenz, wo Sie nachvollziehen koennen, wo fuer
+welche CSS-Klasse gedacht ist.
+
+Sie sollten allerdings beispielsweise wissen, was eine Klasse ist. Sollten
+Sie dies nicht wissen, geben Sie einfach bei einer Suchmaschine Ihrer Wahl
+das Suchwort "CSS-Klasse" ein. Sie finden dann genuegend Seiten, wo Sie
+sich informieren koennen.
+
+Oder rufen Sie auch die (wohl?) bekannteste HTML-Dokumentation im Netz auf:
+
+http://www.selfhtml.org
+
+----- ----- ----- ----- -----
+
+2. Wie Sie am besten anfangen
+-----------------------------
+
+Die Haupt-CSS-Datei general.css mag auf dem ersten Blick sehr gross und
+komplex aussehen. Lassen Sie sich davon nicht abschrecken! Um diese wird es
+sich jetzt permanent drehen.
+
+Sie koennen diese also in einem zweiten Editor (WORDPAD.EXE oder WRITE.EXE
+reicht voellig aus!) oeffnen und dann zwischen dieser Anleitung und der Datei
+hin und her wechsel (Windows: ALT-TAB!).
+
+----- ----- ----- ----- -----
+
+2.1. Allgemeine Farbeinstellungen
+---------------------------------
+
+Ich fange als erstes mit dem generellen Aussehen (Body, Rumpf) an. Diese
+Angaben sitzen auch passenderweise am Anfang der Datei.
+
+Auszug aus der orginalen general.css:
+:----------------------------------:
+
+body {
+       background-color        : #F4F9BE;
+       color                   : #000000;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+       font-size                       : 12px;
+
+       scrollbar-base-color            : #E9E4AE;
+       scrollbar-face-color            : #CDEFCD;
+       scrollbar-highlight-color       : #F4F9BE;
+       scrollbar-shadow-color          : #CDEFCD;
+       scrollbar-3dlight-color         : #DDDDDD;
+       scrollbar-arrow-color           : #000000;
+       scrollbar-track-color           : #CCEFCC;
+       scrollbar-darkshadow-color      : #999999;
+
+       margin                  : 0px;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 0px;
+       margin-bottom           : 0px;
+}
+
+:----------------------------------:
+Bis hier hin erstmal!
+
+Die ersten 4 Zeilen (lassen Sie dabei "body {" und alle spaeteren Namen dabei
+ausser acht) geben die Hintergrundfarbe, Textfarbe, Schriftfamilie und die
+Textgroesse an.
+
+Der naechste Block widmet sich den Farben des Rollbalkes vom Browser.
+
+Und der letzte 5-Zeilen-Block stellt den Abstand zwischen den Elementen ein.
+Dies ist aber nur eine allgemeine Einstellung. Sie koennen spaeter auch
+Feineinstellungen vornehmen, indem Sie solch Zeilen fuer die anderen Klassen
+verwenden.
+
+Nun geht es mit den allgemeinen Tabellen-Einstellungen weiter:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+table {
+       table-layout            : auto;
+       border-spacing          : 0px;
+       overflow                        : auto;
+}
+
+:----------------------------------:
+
+Was diese Einstellungen bewirken, koennen Sie beispielsweise in der bekannten
+Dokumentation "SelfHTML" (http://www.selfhtml.org) nachlesen.
+
+Weiter geht es mit dem Aussehen der Links:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+A {
+       font-style              : normal;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+       text-decoration : none;
+}
+
+A:link {
+       color                   : #2e51a9;
+}
+
+A:visited {
+       color                   : #AA0044;
+}
+
+A:active {
+       color                   : #2e51a9;
+       background-color        : transparent;
+}
+
+A:hover {
+       color                   : #AA0044;
+       background-color        : transparent;
+       text-decoration : underline overline;
+}
+
+:----------------------------------:
+
+Hier habe ich gleich 5 Klassen auf einmal genommen, damit diese Dokumentation
+kuerzer ausfaellt.
+
+In der ersten Klasse stellen Sie allgemeine Farbeinstellungen ein; die
+naechsten Klassen stellen folgendes ein:
+
+- Allgemeine Linkfarbe
+- Linkfarbe fuer bereits besuchte Links
+- Linkfarbe fuer angeklickte Links
+- Linkfarbe fuer Hover (Maus schwebt ueber Link, es wurde aber noch nicht
+  geklickt)
+
+Ich mache gleich weiter mit den allgemeinen Einstellungen um Formular-
+Elemente. Hier habe ich gleich einiges zusammengefasst:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+input, textarea, select, option {
+       color                   : #AA0044;
+       background-color        : #EEFFEE;
+       border-color            : #BBBBBB;
+       text-decoration : none;
+}
+
+:----------------------------------:
+
+Diese Klasse fasst - wie bereits gesagt - einige HTML-Elemente zusammen:
+
+- Eingabefelder oder Buttons (input)
+- Texteingabefelder (textarea)
+- Auswahlmenues (select)
+- Auswahloptionen (option)
+
+Damit ist der erste Teile "Allgemeine Farbeinstellungen abgeschlossen! Laden
+Sie jetzt mal die geaenderte general.css auf Ihren Webserver in das css-
+Verzeichnis hoch!
+
+Koennen Sie schon erahnen, wie Ihre Seite nun aussieht? Richtig! Etwas "bunt
+durcheinander". Das macht erstmal soweit nichts, denn wir sind ja noch nicht
+fertig mit Umdesignen.
+
+Nun geht es um etwas feinere Einstellungen...
+
+----- ----- ----- ----- -----
+
+2.2. Detailelemente: Buttons, Auflistungen usw.
+-----------------------------------------------
+
+Dieses Thema wird jetzt sehr lang, da alle weiteren Klassen behandelt werden.
+Wir machen aber mal zwischendurch eine Pause, wo Sie sich dann Ihre Arbeit im
+Browser ansehen koennen und nochmals nachkorregieren koennen.
+
+Sie werden also - der Wahrscheinlickeit nach - nicht den Ueberblick verlieren.
+Auch hier gehen wir wieder Schritt fuer Schritt vor, so dass Sie in der
+general.css einfach weiter nach unten "wandern" brauchen.
+
+Und los geht es mit den Absende- und Zuruecksetzen-Buttons:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.admin_reset, .guest_reset, .member_reset {
+       border-style            : groove;
+       border                  : solid 1px #009900;
+       color                   : #AA0044;
+}
+
+.admin_submit, .guest_submit, .member_submit {
+       color                   : #AA0044;
+       border-color            : #009900;
+}
+
+.admin_submit_reject {
+       border-style            : groove;
+       color                   : #881111;
+       border-color            : #009900;
+}
+
+:----------------------------------:
+
+Ich habe hier gleich 3 Klassen auf einmal genommen:
+
+- Zuruecksetzen-Buttons (alle drei Menues gemeinsam)
+- Absendebuttons in allen drei Menues
+- Im Adminbereich: Button fuer Mailbuchung ablehnen
+
+Und weiter geht's mit den Auflisten-Elementen:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+ul, ol {
+       margin-top              : 0px;
+       margin-bottom           : 0px;
+}
+
+:----------------------------------:
+
+Nicht-nummerierte und nummerierte Listen werden hiermit eingestellt. Meine
+Angaben stellen den Abstand zu anderen Objekten auf 0 Pixel ein.
+
+Und weiter geht es mit Klassen fuer auftretende Laufzeitfehler:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.runtime {
+       color                   : #118811;
+       background-color        : #DDEEDD;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+}
+
+.runtime.fatal {
+       color                   : #00AA00;
+}
+
+.runtime.fatalcontent {
+       font-size                       : 20px;
+}
+
+:----------------------------------:
+
+Die erste Klasse stellt allgemeine Dinge, wie Hintergrund- und Vordergrund-
+farben, sowie die Schriftfamilie ein. Das letztere ist eigentlich nicht noetig.
+
+Die naechste Klasse stellt die Farbeinstellung fuer Fehlermeldungen ein
+(SQL-Fehler meistens) und letzte stellt die Schriftgroesse fuer alle uebrigen
+Meldungen (Titel leider auch) ein.
+
+Hier muss ich dringenst etwas aendern. Aber dieser Code-Teil ist auch sehr alt
+und kommt aus meinen ersten Schritten mit diesem Mailtausch-Script.
+
+Weiter geht es mit dem Admin-Bereich:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.admin_fatal {
+       font-size                       : 18px;
+       color                   : #00AA00;
+}
+
+.admin {
+       color                   : #118811;
+       background-color        : #DDEEDD;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+}
+
+.admin_note {
+       color                   : #FF0000;
+       font-size                       : 12px;
+}
+
+.admin_edit, .member_confirm {
+       background-color        : #eeffbc;
+}
+
+:----------------------------------:
+
+Hier hat sich - wegen Farbgleichheit, koennen Sie also auch trennen - gleich
+eine CSS-Klasse fuer den Mitgliederbereich eingeschlichen:
+
+"member_confirm" stellt die Tabelle fuer das Zeitframe beim Bestaetigen von
+Mails ein. Der Reset widmet sich ganz und alleine dem Admin-Bereich:
+
+1.: Fehlermeldungen fuer den Admin (Modul gesperrt, etc.) und Fehlermeldungen im
+    Admin-Bereich beim Editieren von Gastmenue- und Adminmenue-Punkten
+
+2.: Allgemeine Einstellungen, wie Farben und Schriftartfamilie
+
+3.: Hinweise fuer den Admin ("Einstellungen gespeichert" beispielsweise)
+
+4.: Farbeinstellung beim Editieren aller drei Menue-Systeme
+
+Wieso auch immer, aber als naechstes hat sich eine Klasse fuer den Mitglieds-
+bereich eingeschoben:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.member_banner {
+       background-color        : #eeffbc;
+       width                   : 488px;
+}
+
+:----------------------------------:
+
+Ahnen Sie schon, was diese Klasse soll? Ich schaetze mal, Sie haben auf die
+Refbanner getippt. Hiemit werden aber die Einstellungen fuer Ihre Werbebanner
+im Zeitframe beim Bestaetigen von Mails vorgenommen.
+
+Nicht dass Sie dies jetzt missverstehen: Es werden nur Desgin-Angaben fuer die
+Tabelle um den Banner eingestellt, nicht der Banner selber wird geaendert! ;-)
+
+Und weiter geht es mit Admin-Klassen:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.admin_error {
+       background-color        : #eeffbc;
+       color                   : #00AA00;
+       font-size                       : 10px;
+}
+
+.admin_select, .guest_select, .member_select {
+       border                  : dotted 1px;
+       border-color            : #009900;
+       background-color        : #EEFFEE;
+}
+
+.admin.register, .admin_desc_header, .admin_done, .admin_title, .member_title2, .guest_title2 {
+       background-color        : #ddeedd;
+       color                   : #009900;
+}
+
+:----------------------------------:
+
+.member_done, .guest_done {
+       color                   : #009900;
+}
+
+.member_misc {
+       background-color        : #DDEEDD;
+}
+
+.admin_misc, .member_misc {
+       color                   : #000000;
+}
+
+.admin_done2 {
+       color                   : #AA0044;
+}
+
+.admin_green, .admin_no {
+       color                   : #009900;
+}
+
+.admin_welcome {
+       background-color        : #DDEEDD;
+       color                   : #009900;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 50px;
+}
+
+.admin_header {
+       background-color        : #eeffbc;
+}
+
+.admin_menu {
+       background-color        : #DDEEDD;
+       color                   : #000077;
+       width                   : 230px;
+}
+
+.admin_logout {
+       background-color        : #AAFFAA;
+       color                   : #00AA00;
+}
+
+.admin_desc_cont, .admin_table, .member_table {
+       background-color        : #eeffbc;
+}
+
+.admin_editmenu {
+       min-width                       : 500px;
+       max-width                       : 90%;
+}
+
+.admin_form_header {
+       text-align          : center;
+       height                  : 36px;
+       background-color        : #eeffbc;
+       color                   : #009900;
+}
+
+.member_header {
+       text-align          : center;
+       height                  : 28px;
+       background-color        : #eeffbc;
+}
+
+.admin_failed, .guest_failed, .member_failed, .member_note {
+       color                   : #00AA00;
+}
+
+.member_note_bg {
+       background-color        : #eeffbc;
+}
+
+.member_data {
+       background-color        : #eeffbc;
+       color                   : #009900;
+       height                  : 20px;
+}
+
+.admin_header_b1 {
+       border-bottom           : 1px solid #AA0044;
+       background-color        : #ddeedd;
+       height                  : 22px;
+}
+
+.admin_snote {
+       font-size                       : 12px;
+}
+
+.admin_normal, .guest_normal, .member_normal {
+       border-style            : solid;
+       border                  : dotted 1px;
+       border-color            : #009900;
+}
+
+.member_stats {
+       vertical-align          : top;
+       font-weight             : bold;
+       height                  : 23px;
+       font-size                       : 16px;
+       border-style            : none;
+       border                  : 0px;
+       background          : #DDEEDD;
+       color                   : #000000;
+       margin-top              : -4px;
+       margin-bottom           : 1px;
+       cursor                  : default;
+}
+
+.normal {
+       border-style            : groove;
+}
+
+.member_main {
+       background-color        : #DDEEDD;
+}
+
+.guest_title, .member_title {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 60px;
+}
+
+.guest_login_header {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+}
+
+.guest_menu, .member_menu {
+       width                   : 200px;
+       background-color        : #DDEEDD;
+}
+
+.guest_menu_title, .member_menu_title {
+       background-color        : #BDEFCD;
+       color                   : #009900;
+       height                  : 25px;
+       width                   : 200px;
+       border                  : 1px solid #AA0044;
+}
+
+.guest_menu_whats, .member_menu_whats {
+       border                  : 1px dotted #AA0044;
+       border-top              : 0px;
+       background-color        : #eeffbc;
+       height                  : 20px;
+}
+
+.guest_menu_seperator, .member_menu_seperator {
+       height                  : 15px;
+}
+
+.guest_content, .member_content {
+       background-color        : #F4FFF4;
+       width                   : 99%;
+}
+
+.guest_advert, .guest_login, .member_advert, .member_login {
+       background-color        : #DDEEDD;
+       vertical-align          : top;
+       margin-top              : 10px;
+}
+
+.master {
+       width                   : 100%;
+       height                  : 100%;
+       min-height              : 90%;
+       max-height              : 100%;
+}
+
+.footer {
+       vertical-align          : bottom;
+       font-size                       : 12px;
+}
+
+.footer.lines {
+       width                   : 340px;
+       vertical-align          : middle;
+       background-color        : #E5EFE5;
+       height                  : 40px;
+}
+
+.dashed {
+       border                  : dotted 1px;
+       border-color            : #AA0044;
+}
+
+.switch_sw1, .switch_mem1 {
+       background-color        : #b8efc1;
+}
+
+.switch_sw2, .switch_mem2 {
+       background-color        : #b8fccb;
+}
+
+.impressum {
+       font-size                       : 12px;
+       width                   : 320px;
+       vertical-align          : middle;
+       background-color        : #E5EFE5;
+       height                  : 70px;
+}
+
+.mediadata {
+       background-color        : #eeffbc;
+}
+
+.media_header, .impressum_header {
+       background-color        : #b8fccb;
+       align                   : center;
+       text-align              : center;
+       color                   : #009900;
+       height                  : 26px;
+       font-weight             : bold;
+       font-size                       : 20px;
+}
+
+.media_left {
+       font-size                       : 14px;
+       width                   : 200px;
+}
+
+.media_right {
+       color                   : #009900;
+       font-weight             : bold;
+       font-size                       : 14px;
+       width                   : 70px;
+}
+
+.admin_sep_footer {
+       background-color        : #DDEEDD;
+       font-size           : 1px;
+}
+
+.admin_sep_footer2 {
+       background-color        : #eeffbc;
+       font-size           : 1px;
+}
+
+.admin_footer, .member_refbanner, .member_update, .admin_del_link {
+       background-color        : #DDEEDD;
+}
+
+.member_footer {
+       height                  : 30px;
+       background-color        : #DDEEDD;
+}
+
+.admin_footer {
+       height                  : 30px
+}
+
+.admin_task_header {
+       background-color        : #DDEEDD;
+       color                   : #009900;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 35px;
+}
+
+.seperator {
+       font-size                       : 1px
+}
+
+.tab1 {
+       align                   : center
+}
+
+.admin_delete, .admin_yes {
+       border-style            : groove;
+       border                  : solid 1px #00AA00;
+       background-color        : #AA0044;
+       color                   : #DDEEDD;
+}
+
+.guest_stats {
+       background-color        : #eeffbc;
+       width                   : 460px;
+}
+
+.guest_stats_title {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 30px;
+}
+
+.guest_stats_l {
+       width                   : 344px;
+       text-align              : right;
+}
+
+.guest_stats_m {
+       width                   : 2px;
+}
+
+.guest_stats_r, .guest_stats_lr, .guest_stats_rr {
+       color                   : #009900;
+       width                   : 28px;
+       font-weight             : bold;
+       text-align              : center;
+}
+
+.guest_stats_ll, .guest_stats_rl {
+       width                   : 192px;
+       text-align              : right;
+}
+
+.guest_stats_footer {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 20px;
+}
+
+.task_pre {
+       font-weight             : bold;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 10px;
+       margin-bottom           : 10px;
+}
+
+.impressum_body {
+       background-color        : #DDEEDD;
+}
+
+.guest_content_align, .member_content_align, .admin_content_align {
+       align                   : center;
+       text-align              : center;
+       vertical-align          : top;
+}
+
+.member_mailidtop {
+       background-color        : #DDEEDD;
+       width                   : 100%;
+       height                  : 100%;
+}
+
+.list_categories, .admin_action_header, .admin_main, .admin_menu_main, .admin_menu_sub {
+       width                   : 100%;
+}
+
+.member_unconfirmed {
+       background-color        : #DDEEDD;
+       width                   : 100%;
+       align                   : center;
+       text-align              : center;
+}
+
+.you_are_here {
+       white-space             : nowrap;
+       font-size                       : 14px;
+}
+
+.tiny   { font-size            : 12px; }
+.medium { font-size            : 14px; }
+.big    { font-size            : 20px; }
+
+.top    { border-top   : 1px dotted #4400AA; }
+.bottom { border-bottom        : 1px dotted #4400AA; }
+.left   { border-left  : 1px dotted #4400AA; }
+.right  { border-right : 1px dotted #4400AA; }
+
+.top2    { border-top  : 1px dotted #AA0044; }
+.bottom2 { border-bottom       : 1px dotted #AA0044; }
+.left2   { border-left : 1px dotted #AA0044; }
+.right2  { border-right        : 1px dotted #AA0044; }
+
+.nobr {
+       white-space             : nowrap;
+}
+
+.guest_table {
+       background-color    : #eeffbc;
+}
diff --git a/0.2.1/DOCS/de/EXTENSIONS.txt b/0.2.1/DOCS/de/EXTENSIONS.txt
new file mode 100644 (file)
index 0000000..a1bb308
--- /dev/null
@@ -0,0 +1,103 @@
+Info-Datei zum Einspielen von Erweiterungen
+===========================================
+
+1. Erst-Installation einer/meherer Erweiterung
+2. Upgraden von Erweiterungen
+3. Loeschen von Erweiterungen
+
+--- --- --- --- --- ---
+
+1. Erst-Installation einer/meherer Erweiterung
+----------------------------------------------
+
+Die Erst-Installation einer neuen Erweiterung ist denkbar einfach:
+
+- Legen Sie einen neuen Ordner (z.B. "Neue Erweiterungen") an
+- Entpacken Sie das Erweiterungsarchiv in diesen Ordner. Sie koennen
+  Erweiterungsarchive an dem Praefix "ext-" erkennen!
+- Es werden mindestens zwei Ordner angelegt: inc und DOCS
+- Laden Sie alle bis auf DOCS auf Ihren Server in das Hauptverzeichnis
+  von MXChange hoch. Wenn also "inc", "themes" und "DOCS" exisitieren,
+  laden Sie also nur "inc" und "themes" hoch. Meistens werden dabei
+  keine Dateien ueberschrieben, sondern nur neue hinzugefuegt. Sollten
+  Sie dennoch vom FTP-Programm eine solche Meldung erhalten, bestaetigen
+  Sie diese mit "Ja", "Alle" oder dergleichen; bitte also die Dateien
+  ueberschreiben lassen!
+- Loggen Sie sich nun in Ihren Admin-Bereich ein. Eine neue Aufgabe wird
+  sofort mit aktueller Zeitmarke erstellt.
+- Setzen Sie in der Spalte ID ein Kaeckchen, wo unter der Spalte "Infos"
+  die neue Erweiterung aufgefuehrt ist.
+- Klicken Sie auf Bearbeiten. Je nach Einstellung wird Ihnen ein Info-Text
+  zur Erweiterung, alle Update-Hinweise (die Sie zu 99,9% ignorieren koennen)
+  und alle SQL-Anweisungen aufgelistet, die beim Registrieren der Erweiterung
+  durchgefuehrt werden (diese brauchen Sie also nicht selber erneut
+  durchfuehren!)
+- Klicken Sie dann rechts nebst der Auflistung auf "Registrieren", der Button
+  selber kann derzeit etwas "versteckt" weiter unten sein. Scrollen Sie also
+  etwas und suchen Sie nach ihm. Er befindet sich aber immer ganz rechts im
+  Browserfenster!
+- Die Erweiterung ist nun in Ihrem Mailtausch registriert und steht zur
+  Verfuegung.
+- Klicken Sie auf "Willkommen" und achten Sie, ob eine neuer Menuepunkt
+  hinzukommt.
+- Ist dies mal nicht der Fall, so ist dies kein Grund zur Unruhe. Meistens sind
+  dann Untermenuepunkte hinzugekommen. Zu 90% wird unter "Einstellungen" ein neuer
+  Punkt hinzugekommen sein.
+- Suchen Sie dort also als erstes nach neuen Eintraegen und waehlen Sie ihn aus.
+- Passen Sie die gezeigten Einstellungen Ihren Wuenschen an und speichern Sie
+  diese ab.
+
+Das war's dann auch schon mit der Erst-Installation. Klingt meistens
+komplizierter, als es eigentlich ist.
+
+--- --- --- --- --- ---
+
+2. Upgraden von Erweiterungen
+-----------------------------
+
+Im Grunde genommen koennen Sie beim Updaten von Erweiterungen so vorgehen,
+wie Sie es vom Upgraden des gesamten Script her kennen:
+
+- Eigen geaenderte Templates/CSS-Dateien sichern
+- Alles (bis auf DOCS-Verzeichnis) hochladen
+- Gesicherte Dateien wieder hochladen.
+- In Adminbereich einloggen und nach Update-Aufgaben gucken
+
+--- --- --- --- --- ---
+
+3. Loeschen von Erweiterungen
+----------------------------
+
+Als ersten sollten Sie unter "Verschiedenes->Erweiterungen" die zu loeschende
+Erweiterung auswaehlen (wie oben unter 1. beschrieben) und dann auf "Loeschen"
+klicken. Bestaetigen Sie die Loeschung nochmals und schon ist die
+Funktionalitaet der Erweiterung nicht mehr im Mailtausch vorhanden. Sie koennen
+uebrigens auch mehrere Erweiterungen auf einmal loeschen, genauso wie Sie diese
+aktivieren, deaktivieren oder aendern koennen (CSS-Datei ein-/ausbinden).
+
+Nun existiert sie aber noch auf Ihrem Server. Und genau hier passieren die
+meisten "Unfaelle": Zu viel geloeschte Scripte oder Templates. Das Theater ist
+dann gross, welche wieder hochgeladen muessen und welche nicht. Wenn Sie also
+sich nicht sicher sind (ich will hier niemanden Angst machen, Backups anlegen
+hat immer Vorteile. :-) ), so loeschen Sie nur aus dem Verzeichnis
+"inc/extensions/" das entsprechende Script.
+
+Heisst also z.B. die zu loeschende Erweiterung "active", so loeschen Sie aus
+"inc/extensions/" das PHP-Script ext-active.php, nicht aber die anderen
+Scripte!
+
+Wer sich sicher ist, kann bei diesem Beispiel den Server nach allen Dateien
+mit "*active*.*" suchen und diese dann loeschen. Hier ist aber Vorsicht angesagt!
+
+Vergleichen Sie am besten die Loeschliste mit der aus dem Erweiterungsarchiv,
+dann koennen Sie am wenigsten falsch machen.
+
+--- --- --- --- --- ---
+
+Viel Erfolg!!!
+
+Und wenn Sie nicht weiterkommen, melden Sie sich bitte im Forum!
+
+http://forum.mxchange.org
+
+[EOF]
diff --git a/0.2.1/DOCS/de/LICENSE.txt b/0.2.1/DOCS/de/LICENSE.txt
new file mode 100644 (file)
index 0000000..719ba8e
--- /dev/null
@@ -0,0 +1,17 @@
+Deutsche Lizenz-Datei LICENSE.de
+================================
+
+Die deutsche Fassung der GNU GPL (General Public License) ist leider nicht
+rechtskraeftig, daher kann ich sie hier nicht anwenden. Wenn Sie sie aber
+dennoch wegen Verstaendnisproblemen oder der gleichen lesen moechten, so schauen
+Sie bitte unter folgendem Link nach:
+
+http://www.gnu.de/gpl-ger.html
+
+Die gueltige Lizenz zu dieser Software finden Sie in der Datei DOCS/LICENSE.txt.
+
+Eine Online-Kopie koennen Sie unter folgender URL abrufen:
+
+http://www.gnu.org/licenses/gpl.html
+
+[EOF]
diff --git a/0.2.1/DOCS/de/MENUE_HOVER.txt b/0.2.1/DOCS/de/MENUE_HOVER.txt
new file mode 100644 (file)
index 0000000..19ace59
--- /dev/null
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+Bitte auch diese Mini-Anleitung ignorieren! Sie galt aelteren Versionen und ist
+heute nicht mehr relevant!
+--------------------------------------------------------------------------------
+
+Die folgende CSS-Klasse aendern:
+
+A:hover {
+     background-color    : transparent;
+}
+
+Bitte folgende CSS-Klassen anhaengen:
+
+.menu_blur {
+     display             : block;
+}
+
+.menu_blur:hover {
+     background-color    : #deefac;
+}
+
+Aus folgenden/r CSS-Klasse(n) den Eintrag "padding-left: ??px" entfernen:
+
+.guest_menu_row, .guest_menu_bottom, .member_menu_row, .member_menu_bottom
diff --git a/0.2.1/DOCS/de/PATCHES.txt b/0.2.1/DOCS/de/PATCHES.txt
new file mode 100644 (file)
index 0000000..70dad90
--- /dev/null
@@ -0,0 +1,33 @@
+Einspielen von Patches und wichtige Infos
+=========================================
+
+Patches sind inkrement zur aktuellen Version (bitte im Admin-Bereich unter
+"Verschiedes / Updates pruefen" schauen, ob eine neue Version raus ist). Das
+heisst, sie bauen aufeinander auf und dementsprechend muessen sie in der
+Reihenfolge installiert werden, in der ich sie durchnummeriert (Praefix) habe.
+
+Bei einigen Patches liefere ich Templates und/oder CSS-Dateien mit aus. Diese
+muessen Sie natuerlich auch einspielen bzw. mit Ihrer geaenderten Version
+vergleichen. Eventuell sind von mir HTML-Tags hinzugekommen, entfernt oder
+geaendert worden!
+
+Ist Ihnen das Patchen zu kompliziert, warten Sie einfach auf ein neues Update.
+Von diesem brauchen Sie dann nur noch die PHP-Dokumente ohne config.php,
+Templates und CSS-Dateien (neue nur!) hochladen.
+
+Sichern Sie sich aber zuvor Ihre geaenderten Templates und CSS-Dateien ab, damit
+Sie diese anschliessend wieder hochladen koennen.
+
+Das Einspielen von SQL-Dateien per upgrade.php oder PHPMyAdmin ist seit einigen
+Versionen nicht mehr noetig. Dies wird entweder von den unzaehligen
+Erweiterungen (einige dienen nur als Platzhalter, sollten aber dennoch aktuell
+gehalten werden, damit Sie kein neues Feature / Patch verpassen) erledigt, oder
+auch von der Erweiterung "sql_patches".
+
+Im Internet unter der Adresse http://www.mxchange.org habe ich eine FAQ Nr. 19
+zum Thema "Erweiterungen aktuell halten" eingestellt. Schauen Sie sich diese an,
+wenn Sie wissen wollen, welche Erweiterungen Sie mindestens aktuell halten
+sollten. Zudem veroeffentliche ich dort mal ab und zu eine weitere FAQ mit
+interessanten Hinweisen aus Mails und Chats mit "Kunden" (wie Sie eine/r sind).
+
+[Ende der PATCHES.txt]
diff --git a/0.2.1/DOCS/de/PATCH_320.txt b/0.2.1/DOCS/de/PATCH_320.txt
new file mode 100644 (file)
index 0000000..fb57696
--- /dev/null
@@ -0,0 +1,16 @@
+README fuer Patch Nr. 320 (veraltet!)
+=====================================
+
+Wenn Sie dieses Patch fehlerfrei nutzen wollen, muessen Sie unbedingt aus dem
+Template "metadata.tpl" die Zeile mit "description" entfernen, da diese seit
+diesem Patch vom Script dynamisch eingefuegt wird.
+
+Die Beschreibung wird derzeit automatisch wie folgt generiert:
+- Mailtausch-Titel (MAIN_TITLE)
+- Titel von what-Datei
+
+Die Generierung erfolgt allerdings nur im Gastbereich, da nur dort
+Suchmaschienen rankommen koennen. In den beiden anderen Menues ist dies
+nicht erforderlich.
+
+[-- ENDE VON PATCH_320.txt --]
diff --git a/0.2.1/DOCS/de/README.txt b/0.2.1/DOCS/de/README.txt
new file mode 100644 (file)
index 0000000..066a813
--- /dev/null
@@ -0,0 +1,348 @@
+Deutsche README-Datei
+=====================
+
+Themenuebersicht:
+----------------
+1. Danke
+2. Voraussetzungen
+3. Installation
+3. b) Manuelle-Installation
+4. Konfiguration
+4. b) SMTP-Support durch PHPMailer
+5. Wichtige Templates
+6. Wie Sie mit dem Script Geld verdienen
+7. Tipps und Hinweise zum Thema Sicherheit
+8. Deinstallation
+9. Distanzierung
+----------------
+
+1. Danke
+--------
+
+Erst einmal vielen Dank, dass Sie mein kostenloses Mailtausch-Script MXChange
+(wird ab hier Programm genannt)  heruntergeladen haben! Ich bietet Ihnen
+hiermit die Moeglichkeit an, einen komplett eigenen Mailtausch aufzubauen.
+Allerdings moechte ich hier nochmal darauf hinweisen, dass ich ABSOLUT KEINE
+GEWAEHR fuer die Fehlerfreiheit und Sicherheit dieses Programmes uebernehme!
+Die Installation erfolgt stets AUF IHRER EIGENEN GEFAHR UND VERANTWORTUNG hin!
+
+2. Voraussetzungen
+------------------
+
+Sie benoetigen eine sogn. LAMP-Umgebung auf Ihrem Server. Das ist nichts
+besonders! (Also wenn Ihr Hoster gut Geld verlangt, dann gehen Sie besser
+woanders hin... :-) )
+
+LAMP steht fuer "Linux, Apache, MySQL, PHP".
+
+PHP sollte moeglichst in der Version 4.1.x vorliegen (oder hoeher), da in 4.0.x
+einfach zu viele Programmierfehler enthalten sind.
+
+Unter PHP5 ist die Software bereits etwas getestet und scheint zu funktionieren.
+Wenn Sie dennoch auf Fehler stossen, so melden Sie die bitte im Forum!
+(Siehe 3.b) )
+
+Unter http://www.webhostlist.de koennen Sie sich einen passenden Anbieter
+raussuchen, wenn Sie nicht weiterwissen. Das MXChange-Script scheint mit einigen
+sogn. Free-Hostern nicht 100%ig klar zu kommen. Das lag in der Vergangenheit
+meistens daran, dass der system()-Befehl deaktiviert war und dass somit keine
+SQL-Dateien eingespielt wurden. Sollte dies bei Ihnen der Fall sein, fahren
+Sie unter 3.b) mit der manuellen Installation fort.
+
+Unter Windows-Systemen habe ich das Script nur unzureichend testen koennen. Wenn
+Sie also z.B. WinXAMP (oder so?) haben, testen Sie es gerne dort. Gehen Sie aber
+nicht davon aus, dass es auch fehlerfrei laufen wird. :-/
+
+3. Installation
+---------------
+
+Die Installation ist recht einfach gehalten:
+
+- Entpacken Sie das heruntergeladene Archiv (zum Beispiel mit WinZIP) in ein
+  Verzeichnis auf Ihrer Festplatte. Es wird dabei ein Verzeichnis namens
+  "mxchange-x.x.x" angelegt (wobei x.x.x die aktuelle Version ist).
+
+- Laden Sie den gesamten Inhalt des Verzeichnisses "0.2.1" hoch (die anderen
+  Dateien werden nicht benoetigt.) Auch die SQL-Dateien im Hauptverzeichnis
+  sollten mit hochgeladen werden, die upgrade.php bitte nicht mehr mit hochladen!
+
+- Setzen Sie die Zugriffsrechte (CHMOD) wie folgt:
+  + Verzeichnis inc auf 777
+  + Datein inc/config.php auf 666
+
+- Das Script befindet sich jetzt im Installationsmodus! Rufen Sie einfach
+  das Script direkt auf: http://www.mein-server.de/mailtausch/ Das Script leitet
+  Sie direkt in die Installationsroutine. Wenn Sie das aktuelle Theme nicht
+  moegen, so koennen Sie schon jetzt das Theme "auswaehlen", indem Sie es an
+  install.php wie folgt anhaengen:
+
+  - install.php?theme=business = Ruft das Theme "Solid-Business" auf
+  - install.php?theme=desert   = Ruft das Theme "Desert-Storm" auf
+
+- Der Installationspfad wird vom Script selbst erkannt (Auto-Detection) und
+  brauch bei 99% aller Installationen nicht von Ihnen geaendert werden. Auch
+  die Installationsroutine "laesst die Finger davon".
+
+- Neuerdings wird auch die URL automatisch erkannt. Auch hier brauchen Sie mit
+  99%-iger Wahrscheinlichkeit nichts aendern. :-)
+
+- Folgen Sie den Anweisungen auf dem Bildschirm. Wenn diese
+  IMMER_GROSS_GESCHRIEBEN_SIND, ist vermutlich die englische Sprache aktiv. Sie
+  muessen derzeit die deutsche Sprache dann so aufrufen:
+  http://www.ihr-server.de/install.php?mx_lang=de
+
+- Lassen Sie folgende Einstellungen beim Installieren auf Standart:
+  + Ausgabe-Modus auf 'render'
+  + Frameset abschalten (Table-Set aktivieren).
+
+  Diese beiden Einstellungen haben bei den ersten Installationen die meisten
+  Fehler verursacht!
+
+Viel Glueck! :-)
+
+********************************************************************************
+Uebrigens: Wenn das Script Sie bittet, Zugriffsrechte bestimmter Dateien oder
+Verzeichnisse zu aendern und Ihnen aber einen "Weiter-Button" anbietet, fuehren
+Sie diese ZUERST durch und klicken dann auf "Weiter", versuchen Sie nicht die
+Seite zu aktualisieren! Das kann durchaus zu Fehlern fuehren.
+********************************************************************************
+
+3. b) Manuelle-Installation
+---------------------------
+
+Falls es bei der halb-automatischen Installation per install.php nicht klappen
+sollte (Fehlermeldungen beim Einspielen der SQL-Dateien), so muessen Sie diese
+selber in folgender Reihenfolge (unbedingt einhalten!!!) einspielen:
+
+1. install/tables.sql
+2. install/menu-de.sql
+
+Stellen Sie dann in der inc/config.php die Konstante mxchange_installed auf
+'true'.
+
+Vorher:
+define('mxchange_installed', false);
+
+Nachher:
+define('mxchange_installed', true);
+
+Anschliessend stellen Sie die MySQL-Zugangsdaten, den Titel Ihres Mailtausches,
+Werbspruch (Slogan) und Ihre EMail-Adresse (zum Empfangen von Anmelde-EMails
+usw.) ein.
+
+Die inc/config.php ist dazu von mir ausreichend gut durchkommentiert. Beachten
+Sie aber, dass Sie Ihre Daten zwischen die doppelten Anfuehrungszeichen (")
+setzen muessen.
+
+Ebenfalls viel Glueck dabei! :-)
+
+Als naechstes lesen Sie sich bitte die FAQs auf meiner Webseite durch:
+
+http://www.mxchange.org/cms/index/wht/faqs
+
+Wenn Sie nicht klarkommen oder Sie Endlosschleifen oder Fehlermeldungen
+erhalten, melden Sie sich bitte bei mir. Die erste Anlaufstelle fuer Sie ist
+immer mein Forum, welches Sie hier finden koennen:
+
+http://forum.mxchange.org
+
+Alle wichtigen Kontaktdaten finden Sie im Impressum:
+
+http://www.mxchange.org oder
+http://www.mxchange.de oder
+http://www.mxchange-demo.de
+
+4. Konfiguration
+----------------
+
+Nach dem Installationsvorgang sollte das *grundlegenste* erledigt sein.
+Richten Sie als naechstes *unbedingt* einen Administrator-Account ein! Dieses
+wird auch nach der Installation automatisch der naechste Schritt sein.
+
+Danach geht es gleich im Admin-Bereich weiter. Glueckwunsch, Sie sind hier
+angekommen!
+
+Gleich nach dem Login im Admin-Bereich werden Ihnen eine Reihe Aufgaben
+zugeteilt. F&uuml;hren Sie der Reihe nach aus und installieren Sie die
+Erweiterungen in Ihr System.
+
+Danach koennen Sie die Aufgaben ohne Bedenken loeschen. Sollten Sie mal ein
+Update von mir erhalten, oder auch eine Erweiterung loeschen, wird - solange
+die Erweiterung noch auf dem Server existiert - wieder eine neue Aufgabe
+automatisch generiert.
+
+Die Erweiterungen admintheme1 und admintheme_default sind Sondererweiterungen:
+
+- admintheme_default: Standartmenue (Auslieferung) setzen
+- admintheme1: EMail-Statistik und Online-Statistik werden in das Menue
+  Statistiken verschoben
+
+Beachten Sie, dass diese Erweiterungen nach Registrierung wieder entfernt
+werden, da sie nur das Admin-Menue veraendern sollen und sonst keine weitere
+Funktion haben.
+
+Zurueck zur Konfiguration des Mailtausches!
+
+Als naechstes sollten Sie schauen, ob Sie mit den Standartbeschriftungen aller
+Menues zufrieden sind (was auch meistens so ist... ;-) ). Dann richten Sie unter
+"Einstellungen" die Untermenuepunkte von oben nach unten durcharbeiten:
+
+- Kategorien einrichten: Richten Sie hier Kategorien ein. In diesen koennen dann
+  Ihre Mitglieder ihre Werbung spaeter buchen. Es snd berteits welche vorgegeben.
+  Derzeit koenenn Sie noch nicht aendern oder loeschen!
+
+- Anmeldeformular: Stellen Sie hier ein, wie viele Kategorien bei der Anmeldung
+  *mindestens* ausgewaehlt werden sollen, damit die Anmeldung durchgefuehrt
+  werden kann. Dieses wirkt sich auch spaeter auf den Mailversand aus!
+
+- Versand, Empfang: Richten Sie hier fuer die Mitglieder die maximal zu
+  empfangenen Mails pro Tag ein (also wie viel ein Mitglied pro Tag empfangen
+  will). Dieses sollten schon mehr als 5 Auswahlen (+ 0 Mails / Tag wegen der
+  Urlauber) sein.
+
+- Sicherheitseinstellungen: Diverse Einstellungen zum Thema Sicherheit, wie
+  minimale Passwortlaenge, doppelt angemeldete Email-Adressen / Passwoerter
+  verweigern.
+
+- Punkte: Hier gibt es gleich zwei weitere Unterpunkte:
+
+       * Willkommensgutschrift und andere Festbetraege editieren: Hier stellen Sie
+         Die Vergueetung bei Anmeldung ("Willkommensgutschrift") und eine einmalige
+         Referral-Gutschrift (nur erste Ebene!) ein.
+
+       * Referral-Ebenen editieren / loeschen / hinzufuegen: Dies ist wohl das
+         interessanteste fuer Mitglieder! Es empfiehlt sich, das ganze "in der
+         Waage" zu halten: Nicht zu viel aber auch nicht zu wenig und je "tiefer"
+         die Ebenen, desto niedriger der prozentualer Anteil. Zudem sollten zum
+         Starten 5 Ebenen reichen. :-)
+
+       * Auch bei den Referral-Ebenen koennen Sie noch nichts aendern / loeschen!
+         Loeschen von Referral-Ebenen im Betrieb ist gefaehrlich! Dadurch
+         verlieren Ihre Mitglieder definitiv Punkte in den Ebenen! Also vorher
+         manuell gutschreiben!!!
+
+Wenn Sie hier angekommen sind, haben Sie Ihren ersten (?) freien Mailtausch
+eingerichtet! Nochmals "Herzlichen Glueckwunsch" an dieser Stelle!
+
+4.b) SMTP-Support durch PHPMailer
+---------------------------------
+
+Seit der MXChange Version 0.2.1-RC5 wird PHPMailer in der Version 2.0.0 genutzt.
+Die Dokumentation, sowie Lizenzdatei finden Sie unter inc/phpmailer/. Ich nutze
+davon jedoch nur den SMTP-Auth-Mechanismus, damit mehr User mein Skript nutzen
+koennen. Mein besonderer Dank gilt hier The Shadowmaster, da er mich darauf
+aufmerksam und angespornt hat, den Support fuer SMTP-Auth einzubauen.
+
+Damit Sie dies nun auch in MXChange nutzen koennen, muessen Sie nach der
+Installation von MXChange die config.php erneut runterladen(!) und die Eintraege
+SMTP_HOSTNAME, SMTP_USER und SMTP_PASSWORD anpassen. Derzeit wird nur die
+SASL-Methode LOGIN unterstuetzt. Tesweise koennen Sie auch versuchen, SSL
+einzuschalten. Sollten Sie Fehlermeldungen erhalten und es sind keine Mails
+unterwegs, versuchen Sie als erstes das SSL abzuschalten. Eventuell unterstuetzt
+Ihr fsocksopen()-Befehl von PHP kein SSL!
+
+Gerne kann ich Ihnen im Rahmen von Mailversand fuer MXChange hier etwas Support
+in meinem Forum anbieten, ich kann natuerlich nicht die gesamte PHPMailer-Klasse
+supporten!
+
+Die neuste PHPMailer-Version finden Sie auf deren Homepage unter der folgenden
+Adresse:
+
+http://phpmailer.codeworxtech.com/
+
+5. Wichtige Templates
+---------------------
+
+Sie sollten nunn diverse Templates einstellen: impressum.tpl.de, metadata.tpl.de
+sind beispielsweise im "Fabrikzustand". Verwenden Sie dazu einen einfachen
+Texteditor und nicht einen HTML-Editor. Diese bauen oefters Kopf- und Fuss-Tags
+ein, die in Templates unerwuenscht sind.
+
+Weitere Details zu meinem Template-System entnehmen Sie bitte der TEMPLATES.de !
+
+Ich werde oefters gefragt, wo ein guter Platz fuer Banner-Codes und/oder
+Counter-Codes ist. Dazu moechte ich gleich die interessantesten Plaetze
+auflisten:
+
+- guest_header.tpl.de - Kopf-Template im Gastbereich: Hier koennen Sie
+  beispielsweise 468x60-Banner oder Textlinks unterbringen
+- member_header.tpl.de - Das gleiche Template dieses Mal fuer den Mitgliedsbereich
+- guest_footer.tpl.de - Das gleiche dieses Mal unten der Fuss
+- member_footer.tpl.de - Das gleiche dieses Mal fuer den Mitgliedsbereich
+- guest_advert.tpl.de - Gast-Template unterhalb des Menue-Systems: Hier passen
+  gut 88x31-Banner und/oder Counter-Codes rein
+- member_advert.tpl.de - Gleiches Template fuer den Mitgliedsbereich
+
+6. Wie Sie mit dem Script Geld verdienen
+----------------------------------------
+
+Sie koennen nicht nur mit Werbeeinahmen Geld verdienen - was sich nur bei 1000
+Besuchern pro Tag und mehr sich lohnen wuerde - sondern auch mit Verkauf von
+Accounts! Dabei brauchen Sie noch nicht mal Ihren Ref-Link bewerben! Das
+geschieht vollkommen automatisch!
+
+Melden Sie sich als naechstes selber an. Die vom System Ihnen zugeteilte Ref-ID
+stellen Sie unter "Einstellungen -> Standart Ref-ID" als Referral-ID ein.
+
+Sobald Sie dies getan haben, und jemand Ihren Mailtausch ohne Ref-Link aufruft,
+wird automatisch Ihre Ref-ID im Anmeldeformular eingesetzt. Folglich erhalten Sie
+alle Refs, die nicht ueber Ref-Links reingekommen sind! Wenn Sie meinen, dass Sie
+genug Refs haben (Tipp: ab 30 Refs wird es interessant fuer das neue Mitglied!)
+dann versteigern Sie diesen in einem Auktionshaus Ihrer Wahl oder verkaufen Sie
+diesen von Ihrer Webseite aus.
+
+Nach Verkauf und Abgabe des Accounts melden Sie einfach erneut an, tragen die
+Ref-ID ein und das Spiel beginnt von vorne.
+
+Viel Erfolg beim Geldverdienen!
+
+Uebrigens: 30 Refs sind durchaus 20 EUR und mehr wert. Und Sie muessen
+natuerlich Ihren Mailtausch bewerben, da ihn sonst niemand kennt! Aber das
+sollte Ihnen schon klar sein...
+
+7. Tipps und Hinweise zum Thema Sicherheit
+------------------------------------------
+
+###############################################################################
+Etwas sehr wichtiges vorweg: Loeschen Sie die Installationsroutine (install.php
+aus dem Hauptverzeichnis und inc/install*), damit Unbefugte diese nicht
+missbrauchen koennen!
+###############################################################################
+
+Stellen Sie beim Sicherheitscode (beim Best. von Mails wird dieser angezeigt und
+muss wiederholt werden) nicht weniger als 3 ein. Eine 0 deaktiviert nun seit
+einigen Versionen den Code, nicht aber den Button! Dieser muss noch immer
+angeklickt werden. Ich habe diesen Code aus einem einfachen Grund eingebaut:
+
+So wie es bei einem anderen Mailtausch-Betreiber aussah, wurden zwar die Mails
+bestaetigt, aber die Seite nie besucht. So wie ich vermute, wurden sogn. Fake-
+Programme (Auto-Confirm) verwendet, um die Mails zu bestaetigen, da die Links
+nachmachbar sind.
+
+Dieses Script ist mit einem Sicherheitscode zum Eingeben + einem Buttom zum
+Anklicken ausgestattet. Er wird in ein Bild hineingeschrieben, das gemustert
+ist. Weitere Details entnehmen Sie bitte der Textdatei SECURITY.txt!
+
+Um diesen Code kommen (hoffentlich) die Faker-Programme nicht mehr herum.
+
+8. Deinstallation
+-----------------
+
+Zur Deinstallation loeschen Sie alle Dateien des Scriptes vom Server und die
+Tabellen mit Struktur. Bei den meisten Hostern duerfen Sie nicht die Datenbank
+selber loeschen. Versuche dies zu tun, fuehren zu Fehlern und die Tabellen
+bleiben bestehen.
+
+9. Distanzierung
+----------------
+
+Da dieses Script frei und ohne Alterskontrolle zur Verfuegung steht, kann ich
+nicht kontrollieren, wer sich dieses runterlaedt. In jedem Fall mache ich mich
+fuer Folgen und daraus resultierenden Schaeden in keinsterweise verantwortlich
+und entziehe mich von der Haftbarkeit.
+
+Jeder, der diese Software runterlaedt, hat die Lizenz GNU GPL gelesen und
+akzeptiert. Diese wird im jedem vollen Paket (nicht Patches) und Erweiterungen
+mitgeschickt.
+
+[EOF]
diff --git a/0.2.1/DOCS/de/SECURITY.txt b/0.2.1/DOCS/de/SECURITY.txt
new file mode 100644 (file)
index 0000000..007bc26
--- /dev/null
@@ -0,0 +1,181 @@
+Deutschsprachige Informationen zu den Sicherheitsvorkehrungen
+=============================================================
+
+Themenuebersicht:
+-----------------
+
+1. Sicherheitscode beim Bestaetigen der Mails
+2. IP- und E-Mail-Sperre im Anmeldeformular
+3. Modul-Sicherheit
+4. SQL-Injektionen und XSS-Attacken
+5. URL-Sperre
+6. Profilsperre
+7. URL-Filtersystem
+x. Haftbarkeit
+
+--- --- --- --- ---
+
+1. Sicherheitscode beim Bestaetigen der Mails
+---------------------------------------------
+
+Der Sicherheitscode gilt als eine Sicherheitsbarriere gegen Betrueger, die nur
+Punkte ansammeln wollen und das moeglichst ohne die beworbene Seite zu besuchen
+und sich anzusehen. Und genau dafuer ist der Mailtausch ja da, es soll die
+beworbene Seite besucht werden. Auch dieses Script kann natuerlich nicht 100%-ig
+dafuer sorgen, dass die Seite auch tatsaechlich besucht werden. Dazu gibt es
+andere Methoden, die hier den Rahmen der Datei sprengen wuerden.
+
+Aber nun zum eigentlichen Thema zurueck. Nehmen wir mal an, das Script kaeme
+ohne dem besagten Sicherheitscode.
+
+Die Betrueger benutzen dann ein Programm, dass die URL genau nachbilden kann,
+die aufgerufen wird, wenn die Zeit abgelaufen ist und die Punkte verguetet
+werden (worum es den Fakern geht). Es wird also nicht das Frameset mit der
+beworbenen Seite unten und oben das Zeit-Frame aufgerufen, sondern nur die
+Gutschrift-Seite.
+
+Ohne Code in der URL und Code im Muster-Bild ist dies kein Problem.
+
+Nehmen wir nun an, wir wuerden den Code im Muster-Bild direkt in die URL
+einbinden, so kann dies auch mit wenigen Aenderungen am Faker-Programm umgangen
+werden.
+
+Wenn JavaScript abgeschaltet wird, geht zwar im Browser nichts mehr, aber das
+Faker-Programm funktioniert immer noch. Es musste also ein besserer Schutz her.
+
+Und hier kommt der Absicherungsmechanismus mit dem sogn. Site-Key und Date-Key
+zur Geltung.
+
+Der Site-Key ist ein von mir zufallsmaessig eingegebener Code. Diesen koennen -
+und in Sachen Sicherheit - sollten Sie ihn auch aendern. Der Code sollte
+dabei aus Zahlen, Buchstaben und anderen Zeichen bestehen. Diese koennen Sie
+wild durcheinander eingeben. Wollen Sie die doppelten Anfuehrungszeichen
+eingeben, so "escape-n" Sie diese bitte, indem Sie ein \ direkt vor das
+Anfuehrungszeichen setzen. Das sieht dann so aus: \" Dies muss sein, da der
+Site-Key auch in doppelten Anfuehrungszeichen steht und es somit zu
+Scriptfehlern kommen wuerde.
+
+Dann gibt des den Date-Key. Dieser ist einfach das aktuelle Datum im
+amerikanischem Format. Auch hier koennen Sie das Format gerne auf deutsch usw.
+umstellen.
+
+Diese beiden Codes stehen in der inc/config.php und koennen nach den oben
+genannten Regeln geaendert werden.
+
+Wird eine Mail bestaetigt so, erzeugt das PHP-Script mailid_top.php per rand()
+Funktion eine Zufallszahl zwichen 0 und 99999. Diese wird beim Laden der Seite
+mit der Code-Eingabe an die URL dran gehaengt.
+
+Im selben Script mailid_top.php werden die beiden Codes mit dem User-Agent
+(genaue Browserbezeichnung) und der Zufallszahl aus der URL aneinander gehaengt
+und hexdec() codiert. Aus der dann resultierenden Zahl werden so viele Stellen
+nach dem Dezimalpunkt extrahiert, wie viel Sie im Admin-Bereich eingestellt
+haben.
+
+Weil die Zahl aus der URL mit den beiden Keys und dem User-Agent zusammen
+codiert werden, sind diese unterschiedlich und koennen auch beim Abgleich des
+eingegebenen Codes wieder neu generiert werden, da vor dem Ableich nach dem
+selben Muster codiert wird.
+
+Dieses Verfahren haben die Entwickler von PHP-Nuke entwickelt
+(http://www.phpnuke.org) und unterliegt genau wie mein Script der GNU GPL.
+
+2. IP- und E-Mail-Sperre im Anmeldeformular
+-------------------------------------------
+
+Im Anmeldeformular gibt es eine zeitbegrenzte IP-Sperre. Diese soll verhindern,
+dass der selbe Internet-User sich direkt hintereinander mit unterschiedlichen
+E-Mail-Adressen anmelden kann. Gegen die selbe E-Mail Adresse besteht auch
+weiterhin ein Schutzmechanimus.
+
+Es ist also weder moeglich, sich mit gleicher E-Mail-Adresse, noch innerhalb
+einer einstellbaren Zeitspanne mit unterschiedlichen E-Mail-Adressen anzumelden.
+
+Beide Barrieren koennen Sie im Admin-Bereich veraendern, die Standart-
+Einstellungen sind mit einigen Webmastern abgeklaert und sollte sicher genug
+sein.
+
+3. Modul-Sicherheit
+-------------------
+
+Anfangs habe ich auch hier das Sicherheitssystem von PHP-Nuke
+(http://www.phpnuke.org) uebernommen. Ich merkte aber bald, dass dies beim
+Programmieren sehr mueselig ist und habe mich fuer eine abgewandelte Version
+entschieden. Die Idee, Include-Dateien im Header gegen das direkte Aufrufen
+abzusichern habe ich aber dennoch von PHP-Nuke uebernommen.
+
+Diese Sicherheitsbarriere ist fuer den normalen Besucher nicht sichtbar. Erst
+wenn er versucht, Include-Dateien direkt aufzurufen (inc/config.php
+beispielsweise), so wird eine rote Warnseite angezeigt und der Ablauf des
+Scriptes "stirbt".
+
+Diese Grundsicherheit des Script kann nicht deaktiviert werden (ausser Sie sind
+verrueckt genug und loeschen die Sperren aus jedem Script, selbstverstaendlich
+ist dann keine Sicherheit mehr gewaehrt und jeglicher Support-Anspruch
+verfallen).
+
+4. SQL-Injektionen und XSS-Attacken
+-----------------------------------
+
+Bis zur Version 0.2.0-pre10 mit Patch-Level 485 und aelter war es fuer einen
+entfernten Angreifer theoretisch moeglich, SQL-Befehle einzuschleusen und auch
+Attacken auf die Variable $PHP_SELF durchzufueheren. Seit Patch 486 und 487
+(laden Sie sich am Besten immer die aktuellsten Patches herunter!) sind nun
+entsprechende Zeilen aus der inc/db/lib-mysql3.php (Funktion SQL_QUERY_ESC)
+entfernt und sollten nicht mehr angreifbar sein. Der generierten SQL-Befehl
+wurde vor der Ausfuehrung nochmals "uebersetzt", also alle
+sicherheitsgefaehrdenen Zeichen wieder eingebaut. Zudem existiert im Script
+inc/libs/security_functions.php am Ende des Scriptes ein Mechanismus, der
+XSS-Attacken verhindern soll (und es auch gut getan hat).
+
+5. URL-Sperre
+-------------
+
+Was weniger mit der direkten Sicherheit des Scriptes zu tun hat, sondern eher
+Ihren Mailtausch von Betruegern schuetzen soll, ist die Moeglichkeit, eine
+zeitgesteuerte URL-Sperre einzurichten. Die selbe URL kann somit fuer eine
+einstellbare Zeit nicht mehr beworben werden. Ich empfehle hier dabei
+mindestens 1 Tag, wenn nicht sogar eher 2 Tage.
+
+Leider ist diese Sperre mit dynamischen URLs leicht umrundbar. Es haelt jedoch
+die Anfaenger fern.
+
+Zudem koennen Sie unter 7. in dieser Dokumentation erfahren, wie der neue
+URL-Filter arbeiten wird und wieso er implementiert wird.
+
+6. Profilsperre
+---------------
+
+Gleich wie die URL-Sperre URLs vor doppelter Bewerbung "schuetzt", so schuetzt
+auch die Profilsperre das Mitgliederprofil vor erneutem Editieren innerhalb
+einer bestimmten Zeit. Zudem arbeiten beide Sperren "Hand-In-Hand", was
+bedeutet, dass sobald ein Mitglied eine Mail gebucht hat, fuer eine gewisse
+Zeit sein Profil nicht mehr aendern kann. Auch diese Sperre gilt den
+Betruegern, die nach dem Versand ihren Empfang auf 0 stellten und vor dem
+Versand (vor 00:00 Uhr) ihn hochstellten, um zu versenden. Folglich konnten die
+anderen Mitglieder weniger empfangsbereite Mitglieder erreichen.
+
+7. URL-Filtersystem
+-------------------
+
+Das neuartige Filtersystem filtert URLs heraus, die nicht den Normungen
+entsprechen. Dies soll zum einem verhindern - ich hatte es ebenfalls in einem
+anderen Mailtausch mehrfach erlebt - dass URLs, wie mailto:adresse@host.de
+beworben werden (oder auch Skype-Adressen). Aber es verhindert auch, dass
+"boese" URLs, die den Server angreifen sollen, in das System legal gelangen und
+somit alle Computer der Mitglieder - oder wenigstens den Computer des Admins
+angreifen koennen (Trojaner).
+
+Das URL-Filtersystem selber basiert auf einer Meta-Sprache, die dann gueltige
+URL-Filter (regulaere Ausdruecke) generiert und diese dann auf die beworbene
+URL anwendet. Das Filtersystem laesst sich nun bald per Internet aktualisieren,
+was das Aktuellhalten dann sehr stark vereinfacht.
+
+Die beworbene URL wird uebrigens vom URL-Lader (Dereferrer) nochmals angewandt!
+
+x. Haftbarkeit
+--------------
+
+Querverweis auf die README.de-Datei...
+
+[EOF]
diff --git a/0.2.1/DOCS/de/TEMPLATES.txt b/0.2.1/DOCS/de/TEMPLATES.txt
new file mode 100644 (file)
index 0000000..39eca18
--- /dev/null
@@ -0,0 +1,94 @@
+0. Themenuebersicht
+===================
+
+1. Neuartiges Template-System bei der MXChange-Engine:
+2. Wichtige Aenderung am gesamten Template-System:
+3. Sicherheitsgefaehrende Zeichen quoten
+
+[--- --- --- --- --- --- ---]
+
+1. Neuartiges Template-System bei der MXChange-Engine:
+======================================================
+
+Das neue Template-System umgeht endlich den Umweg mit den normalen Variablen,
+die vom eval()-Befehl ge-eval-t werden (also ausgefuehrt werden). Es koennen
+nun Konstanten direkt eingebunden werden:
+
+Vor und nach der einzubindenen Konstante muss ein {-- bzw. --} als Abschluss
+gesetzt werden. Diese werden von LOAD_TEMPLATE() entsprechend umgewandelt in
+". und ." (Anfuehrungszeichen-Punkt und andersrum).
+
+Die modules.php wierrum sichert die geposteten Daten gegen evaige Angriffe ab
+(beispielsweise das Einbinden der MySQL-Daten), indem es das Dollarzeichen und
+die normalen und geschwungenen Klammern quotet.
+
+Hier ein Beispiel: (Leerstellen nach {-- bzw. vor --} sind nicht noetig!)
+
+_WIRD_NICHT_EINGEBUNDEN {--_ABER_DIESE_KONSTANTE_SCHON--}
+
+Wird Fehler verursachen:
+{--_ABSCHLUSS_FEHLT
+
+oder auch:
+_ANFANG_FEHLT--}
+
+Achten Sie also darauf, dass diese Template-Klammern als Paar auftreten!
+
+[--- --- --- --- --- --- ---]
+
+2. Wichtige Aenderung am gesamten Template-System:
+===================================================
+
+Seit Version v0.2.0-pre4 habe ich etwas dateitechnisches am Template-System
+geaendert:
+
+Alle Dateien im Verzeichnis templates/ und templates/emails/ sind umbenannt
+und in neue Verzeichnisse verschoben.
+
+Ein paar Beispiele:
+
+- templates/guest_header.tpl.de ist nach templates/de/html/guest/guest_header.tpl
+  verschoben worden.
+
+- templates/emails/done-admin.tpl.de ist nach templates/de/emails/done-admin.tpl
+  verschoben worden.
+
+Die Doppelendung der Datei entfaellt also und ist stattdessen als Verzeichnis-
+name realisiert. Damit stehen allen weiteren Sprachen Tuer und Tor offen/
+
+Zudem sind die Templates nochmals erweiterungsabhaengig und Zugriffslevel-
+abhaengig organisiert. Web-Template fuer das Mitglied z.B. finden Sie unter
+templates/de/html/member/. Aber EMail-Template fuer den Bettel-Link finden Sie
+unter templates/de/emails/beg/.
+
+[--- --- --- --- --- --- ---]
+
+3. Sicherheitsgefaehrende Zeichen quoten
+=========================================
+
+Die neue Sicherheitsschicht inc/libs/security_functions.php sichert nun Zeichen in
+der URL ab, die zum Angreifen des Servers missbraucht werden koennten.
+
+Diese werden durch folgende "Austauscher" ersetzt:
+
+Dollarzeichen = {DOLLAR_TAG}
+Klammer-Auf   = {OPEN_TAG}
+Klammer-Zu    = {CLOSE_TAG}
+Template-Auf  = {OPEN_TEMPLATE} (damit ist {-- gemeint!)
+Template-Zu   = {CLOSE_TEMPLATE} (damit ist --} gemeint!)
+
+Neu sind (v0.0.8 mit neusten Patches):
+Abostrof (')  = {QUOT}
+Prozent (%)   = {PER}
+Semikolon (;) = {SEMI}
+
+---> Und noch viele mehr!
+
+Diese "Austauscher" werden nach dem eval()-Befehl in der LOAD_TEMPLATES()-
+Funktion wieder gegen ihre urspruenglichen Zeichen ausgetauscht (damit diese
+zwar vom Mitglied eingebbar aber vor dem eval()-Befehl abgesichert sind).
+
+Der Slash (/) und der Punkt (.) werden nun auch in {SLASH} und {DOT}
+umgewandelt.
+
+[EOF]
diff --git a/0.2.1/DOCS/de/THANK_YOU.txt b/0.2.1/DOCS/de/THANK_YOU.txt
new file mode 100644 (file)
index 0000000..d314295
--- /dev/null
@@ -0,0 +1,50 @@
+=======================
+= Datei THANK_YOU.txt =
+=======================
+
+Hier sind ein paar groessere oder kleinere Danke-Woerter an Menschen auf dieser
+Welt:
+
+Personen:
+- Als erstes, vielen Dank an Mama und Papa; ohne euch wuerde ich nicht
+  existieren!
+- Meiner Frau Angei fuer ihr Verstaendis fuer mein Projekt und moralischem
+  Support
+- Meinen einzigen Bruder Thiemo fuer persoenlichen/moralischen Support
+- Einem alten Ex-Kumpel namens "Phoenix" fuer die damaligen Hilfestellungen
+- Linus Torwalds: Wenn Sie diesen Typen nicht kennen, kennen Sie Linux nicht! ;)
+  (http://www.kernel.org)
+- Herr Guenter Werner: Viele Insider-Informationen, die ich in dieses Script
+  implementiert habe (wie z.B. die 24-Stunden-Sperren gegen URLs und dem
+  Account) (http://www.wds66.com)
+- Herr Joerg Biel: Hat mir den Tipp gegeben, Schluessel in bestimmten SQL-
+  Spalten zu setzen (http://www.biel-newmedia.de)
+- Herr Robert Niedziela: Hat mir diverese Patches (viele!) zugesandt. Danke Dir!
+  (http://www.mcpserver.de; http://www.mc-p.org)
+- Herr Lars Moehlenbruch: Einige gute Hinweise und das Auflisten von Referrals
+  im Admin-Bereich (http://www.masterportal24.com)
+- Herr Michael Dittrich: Verbesserung eines Werbetextes auf meinen Webseiten
+  (http://www.oshop.de)
+- Herr Walter Ochsendorf: Guter Beta-Tester! Hat mich auf viele neue
+  Erweiterungen und sonstigen Verbesserungen gebracht (http://www.wo-net.com)
+- Herr Schmidt: Er hat einen fatalen Fehler im Theme-System entdeckt.
+  (http://www.simplemail.de)
+
+Websites / Programmierer / etc.:
+- SF.net: Hosten meine Projektdateien (nur Archive)
+  (http://sourceforge.net)
+- Die gesamte PHP-Gruppe: Grossartige Arbeit! Man Leute, ihr geht ab! ;-)
+  (http://www.php.net)
+- MySQL-Gruppe: Schnelle und stabile Datenbank-Engine
+  (http://www.mysql.com)
+- GNOME: Midnight Commander fuer immer! Yeah...
+  (http://www.ibiblio.org/mc/)
+- Server4You: Fuer den root-Server, der meine Projekte hostet.
+  (http://www.server4you.de)
+- Allen Webmastern, die dieses Script installiert haben und auf neue Releases
+  warten.
+- Irgentjemand, den ich noch vergessen habe...
+
+Danke euch allen fuer die Unterstuetzung!
+
+Roland Haeder (webmaster@mxchange.org)
diff --git a/0.2.1/DOCS/de/TODO.txt b/0.2.1/DOCS/de/TODO.txt
new file mode 100644 (file)
index 0000000..9862993
--- /dev/null
@@ -0,0 +1,27 @@
+==============
+= TODO-Liste =
+==============
+
+[12/10/2006 11:50 Uhr]:
+
+--- OFFEN: ---
+- Dokumentation erweitern!
+- Englische Uebersetzung komplettieren!
+- Mehr Datenbank-Schichten hinzufuegen, wie fuer ODBC/M$SQL/Oracle
+- Hoeren Sie auf, "unfreie" Software zu verwenden und treten Sie unserer
+  Community bei. :-)
+- Kaempft gegen Softwarepatente! Das ist Teufelszeug!
+- CSS-Klassen reduzieren und weiter vereinfachen
+- Von TABLE auf DIV-Container umstellen (behindertengerechter)
+- AJAX einbinden
+
+--- ERLEDIGT: ---
+
+- Replace all HTTP_GET_VARS and HTTP_POST_VARS with _GET and _POST
+- Replace SQL_QUERY() command with SQL_QUERY_ESC() commands where ever it is
+  needed to secure SQL queries.
+- Secure ID numbers with bigintval()
+- Secure other non-numberous data with sprintf() and later with new security
+  functions
+- Use the abstract function SQL_FREERESULT() wherever we trasnfer massive data
+  from the database to free memory
diff --git a/0.2.1/DOCS/de/UPGRADING.txt b/0.2.1/DOCS/de/UPGRADING.txt
new file mode 100644 (file)
index 0000000..0aa51b7
--- /dev/null
@@ -0,0 +1,29 @@
+Upgrades einspielen:
+--------------------
+
+- Sichern Sie sich alle von Ihnen geaenderten CSS-Dateien (oder erzeugen
+  Sie sich ein eigenes Theme (lesen Sie dazu themes/README.txt!) und
+  Templates, sowie die config.php ab.
+
+- Laden Sie wie Sie es von der Installation her kennen alle PHP-Scripte,
+  CSS-Dateien und Templates hoch. Lassen Sie aber dabei die Installations-
+  dateien aus (da Sie ja bereits das Script installiert haben und nur
+  updaten wollen.)
+
+- Laden Sie Ihre gesicherten Dateien alle wieder hoch.
+
+- Rufen Sie zum Testen die Eingangsseite (index.php) oder am besten gleich
+  den Admin-Bereich (admin.php) auf. Eventuell aktualisierte Erweiterungen
+  werden dann beruecksichtigt und es werden Ihnen Update-Aufgaben generiert.
+
+- Das Aufrufen und Hochladen der upgrade.php ist seit geraumer Zeit nicht
+  mehr noetig. Die Patches an der Datenbank werden zu einem durch die
+  Erweiterungen selber, aber auch zum anderen durch die Erweiterung
+  sql_patches erledigt
+
+------------------------------------------------------------------------
+- Rufen Sie nicht erneut die install.php auf! Diese ist zwar           -
+- theoretisch gegen ein erneutes Aufrufen abgesichert, Sie sollten es  -
+- aber dennoch nicht ausprobieren, da dies Ihre Daten loeschen kann!   -
+- Entfernen Sie also nach der Installation das Script!                 -
+------------------------------------------------------------------------
diff --git a/0.2.1/DOCS/de/cache/README.txt b/0.2.1/DOCS/de/cache/README.txt
new file mode 100644 (file)
index 0000000..2ddeeeb
--- /dev/null
@@ -0,0 +1,26 @@
+Deutsche README-Datei fuer Caching-System
+=========================================
+
+1. Kurzinstallationsanleitung
+
+[- - - - - - -]
+
+1. Kurzinstallationsanleitung
+-----------------------------
+
+- Ist bereits die .htaccess-Datei vorhanden setzen Sie die Zugriffsrechte auf
+  mindestens 444 oder 644
+- Ist das Verzeichnis cache bereits vorhanden, setzen Sie nur die Zugriffsrechte
+  auf 777
+
+Falls alles nicht vorhanden ist: (was aber selten vorgekommen ist)
+
+- Legen Sie im inc-Verzeichnis ein Verzeichnis cache an und setzen Sie die
+  Zugriffsrechte auf 777
+- Legen Sie eine Datei .htaccess mit folgender Zeile an:
+
+Deny from all
+
+- Diese Datei bedarf noch weiteren Ausbaus! ;-)
+
+[-- ENDE VON README_cache.de --]
diff --git a/0.2.1/DOCS/de/country/README.txt b/0.2.1/DOCS/de/country/README.txt
new file mode 100644 (file)
index 0000000..24e4f79
--- /dev/null
@@ -0,0 +1,20 @@
+Deutsche README-Datei zur Landescode-Erweiterung
+================================================
+
+Die SQL-Dateien im Verzeichnis DOCS/country haben die folgende Bedeutung:
+
+countries-europe.sql - Nur Europa
+countries-full.sql   - Alle Laender der Welt (oder fast alle?)
+countries-sorted.sql - Alle Laender um Deutschland herum nach oben)
+
+Wobei Deutschland selber nicht in den SQL-Dateien vorhanden ist, da dies
+von der Erweiterung selber mitgebracht wird.
+
+Hinweis:
+
+Die Dateien wurden von Lothar Menges <money@gmx.net> mir zur Verfuegung
+gestellt, bei Fragen wegen der Laendernamen, fragen Sie bitte ihn und nicht
+mich. Auch trotz sorgfaeltiger Pruefung koennen immer noch Fehler enthalten
+sein. Danke!
+
+[-- ENDE VON README.de --]
diff --git a/0.2.1/DOCS/de/country/countries-europe.sql b/0.2.1/DOCS/de/country/countries-europe.sql
new file mode 100644 (file)
index 0000000..f6cc3ad
--- /dev/null
@@ -0,0 +1,36 @@
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y');\r
diff --git a/0.2.1/DOCS/de/country/countries-full.sql b/0.2.1/DOCS/de/country/countries-full.sql
new file mode 100644 (file)
index 0000000..6e9c7ea
--- /dev/null
@@ -0,0 +1,257 @@
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AC','Ascension','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AD','Andorra','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AE','United Arab Emirates','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AF','Afghanistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AG','Antigua and Barbuda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AI','Anguilla','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AL','Albania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AM','Armenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AN','Netherlands Antilles','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AO','Angola','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AQ','Antarctica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AR','Argentina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AS','American Samoa','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AU','Australia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AW','Aruba','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AZ','Azerbaijan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BB','Barbados','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BD','Bangladesh','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BF','Burkina Faso','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BH','Bahrain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BI','Burundi','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BJ','Benin','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BM','Bermuda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BN','Brunei Darussalam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BO','Bolivia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BR','Brazil','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BS','Bahamas','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BT','Bhutan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BV','Bouvet','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BW','Botswana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BY','Belarus','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BZ','Belize','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CA','Canada','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CC','Cocos','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CD','Congo Democratc Repuplic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CF','Central African Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CG','Congo Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CI','Cote D Ivoire','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CK','Cook Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CL','Chile','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CM','Cameroon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CN','China','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CO','Colombia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CR','Costa Rica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CS','Serbia and Montenegro','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CT','Canton and Enderbury','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CU','Cuba','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CV','Cape Verde','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CX','Christmas Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CY','Cyprus','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DJ','Djibuti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DM','Dominica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DO','Dominican Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DZ','Algeria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EC','Ecuador','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EG','Egypt','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EH','Western Sahara','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ER','Eritrea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ET','Ethiopia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FJ','Fiji','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FK','Falkland Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FM','Micronesia Fed. S.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FO','Faroe Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FR','Frabce','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GA','Gabon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GD','Grenada','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GE','Georgia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GF','French Guiana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GG','Guernsey','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GH','Ghana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GI','Gibraltar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GL','Greenland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GM','Gambia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GN','Guinea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GP','Guadeloupe','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GQ','Guinea Equatorial','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GS','South Georgia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GT','Guatemala','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GU','Guam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GW','Guinea-Bissau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GY','Guyana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HK','Hong Kong','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HM','Heard- and MC Donald Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HN','Honduras','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HT','Haiti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ID','Indonesia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IL','Israel','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IM','Isle of Man','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IN','India','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IO','British Indian O.T.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IQ','Iraq','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IR','Iran Islamic Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JE','Jersey Bailwick','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JM','Jamaica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JO','Jordan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JP','Japan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JT','Johnston Atoll','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KE','Kenya','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KG','Kyrgyzstan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KH','Cambodia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KI','Kiribati','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KM','Comoros','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KN','Saint Kitts and  Nevis','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KP','Korea Democratic P. Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KR','Korea Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KW','Kuwait','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KY','Cayman Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KZ','Kazakhstan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LA','Lao People Democratic Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LB','Lebanon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LC','St. Lucia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LK','Sri Lanka','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LR','Liberia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LS','Lesotho','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LT','Lithuania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LV','Latvia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LY','Libyan Arab Jamahiriya','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MA','Morocco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MD','Moldova Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MG','Madagascar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MH','Marshall Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MI','Midway Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MK','Macedonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ML','Mali','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MM','Myanmar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MN','Mongolia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MO','Macau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MP','Northern Mariana Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MQ','Martinique','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MR','Mauritania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MS','Montserat','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MT','Malta','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MU','Mauritius','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MV','Maldives','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MW','Malawi','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MX','Mexico','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MY','Malaysia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MZ','Mozambique','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NA','Namibia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NC','New Caledonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NE','Niger','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NF','Norfolk Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NG','Nigeria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NI','Nicaragua','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NP','Nepal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NQ','Dronning Mauds Land','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NR','Nauru','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NU','Niue','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('OM','Oman','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PA','Panama','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PE','Peru','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PF','French Polynesia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PG','Papua New Guinea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PH','Philippines','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PK','Parkistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PM','St. Pierre and Miquelon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PN','Pitcairn Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PR','Puerto Rico','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Palestian Authority','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Gaza Strip','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','West Bank','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PW','Palau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PY','Paraguay','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('QA','Qatar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RE','Reunion','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RU','Russian Federation','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RW','Rwanda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SA','Saudi Arabia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SB','Solomon Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SC','Seychelles','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SD','Sudan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SG','Singapore','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SH','St. Helena','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SJ','Svalbard and Jan Mayen','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SL','Sierra Leone','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SM','San Marino','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SN','Senegal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SO','Somalia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SR','Suriname','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ST','Sao Tome and Principe','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SV','El Salvador','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SY','Syrian Arab Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SZ','Swaziland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TA','Tahiti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TC','Turks and Caicos Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TD','Chad','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TF','French Southern Ter.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TG','Togo','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TH','Thailand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TJ','Tajikistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TK','Ttokelau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TM','Turkmenistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TN','Tunisia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TO','Tonga','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TP','East Timor','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TT','Trinidad and Tobago','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TV','Tuvalu','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TW','Taiwan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TZ','Tanzania U. Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UA','Ukraine','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UG','Uganda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UM','U.S. Minor Outlying Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('US','United States','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UY','Uruguay','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UZ','Uzbekistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Vatican City State','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Holy See','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VC','St. Vincent and Grenadines','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VE','Venezuela','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VG','Virgin Iland (British)','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VI','Virgin Iland (U.S.)','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VN','Viet Nam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VU','Vanuatu','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WF','Wallis anf Futuna Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WK','Wake Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WS','Samoa West','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YE','Yemen','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YT','Mayotte','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZA','South Africa','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZM','Zambia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZW','Zimbabwe','Y');\r
diff --git a/0.2.1/DOCS/de/country/countries-sorted.sql b/0.2.1/DOCS/de/country/countries-sorted.sql
new file mode 100644 (file)
index 0000000..85c0b1a
--- /dev/null
@@ -0,0 +1,257 @@
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CR','Costa Rica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FR','Frabce','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RU','Russian Federation','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AC','Ascension','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AD','Andorra','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AE','United Arab Emirates','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AF','Afghanistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AG','Antigua and Barbuda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AI','Anguilla','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AL','Albania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AM','Armenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AN','Netherlands Antilles','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AO','Angola','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AQ','Antarctica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AR','Argentina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AS','American Samoa','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AU','Australia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AW','Aruba','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AZ','Azerbaijan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BB','Barbados','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BD','Bangladesh','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BF','Burkina Faso','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BH','Bahrain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BI','Burundi','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BJ','Benin','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BM','Bermuda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BN','Brunei Darussalam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BO','Bolivia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BR','Brazil','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BS','Bahamas','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BT','Bhutan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BV','Bouvet','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BW','Botswana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BY','Belarus','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BZ','Belize','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CA','Canada','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CC','Cocos','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CD','Congo Democratc Repuplic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CF','Central African Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CG','Congo Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CI','Cote D Ivoire','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CK','Cook Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CL','Chile','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CM','Cameroon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CN','China','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CO','Colombia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CS','Serbia and Montenegro','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CT','Canton and Enderbury','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CU','Cuba','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CV','Cape Verde','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CX','Christmas Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CY','Cyprus','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DJ','Djibuti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DM','Dominica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DO','Dominican Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DZ','Algeria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EC','Ecuador','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EG','Egypt','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EH','Western Sahara','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ER','Eritrea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ET','Ethiopia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FJ','Fiji','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FK','Falkland Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FM','Micronesia Fed. S.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FO','Faroe Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GA','Gabon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GD','Grenada','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GE','Georgia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GF','French Guiana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GG','Guernsey','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GH','Ghana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GI','Gibraltar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GL','Greenland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GM','Gambia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GN','Guinea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GP','Guadeloupe','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GQ','Guinea Equatorial','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GS','South Georgia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GT','Guatemala','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GU','Guam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GW','Guinea-Bissau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GY','Guyana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HK','Hong Kong','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HM','Heard- and MC Donald Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HN','Honduras','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HT','Haiti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ID','Indonesia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IL','Israel','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IM','Isle of Man','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IN','India','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IO','British Indian O.T.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IQ','Iraq','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IR','Iran Islamic Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JE','Jersey Bailwick','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JM','Jamaica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JO','Jordan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JP','Japan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JT','Johnston Atoll','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KE','Kenya','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KG','Kyrgyzstan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KH','Cambodia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KI','Kiribati','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KM','Comoros','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KN','Saint Kitts and  Nevis','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KP','Korea Democratic P. Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KR','Korea Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KW','Kuwait','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KY','Cayman Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KZ','Kazakhstan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LA','Lao People Democratic Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LB','Lebanon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LC','St. Lucia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LK','Sri Lanka','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LR','Liberia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LS','Lesotho','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LT','Lithuania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LV','Latvia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LY','Libyan Arab Jamahiriya','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MA','Morocco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MD','Moldova Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MG','Madagascar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MH','Marshall Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MI','Midway Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MK','Macedonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ML','Mali','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MM','Myanmar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MN','Mongolia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MO','Macau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MP','Northern Mariana Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MQ','Martinique','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MR','Mauritania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MS','Montserat','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MT','Malta','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MU','Mauritius','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MV','Maldives','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MW','Malawi','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MX','Mexico','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MY','Malaysia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MZ','Mozambique','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NA','Namibia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NC','New Caledonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NE','Niger','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NF','Norfolk Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NG','Nigeria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NI','Nicaragua','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NP','Nepal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NQ','Dronning Mauds Land','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NR','Nauru','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NU','Niue','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('OM','Oman','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PA','Panama','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PE','Peru','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PF','French Polynesia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PG','Papua New Guinea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PH','Philippines','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PK','Parkistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PM','St. Pierre and Miquelon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PN','Pitcairn Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PR','Puerto Rico','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Palestian Authority','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Gaza Strip','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','West Bank','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PW','Palau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PY','Paraguay','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('QA','Qatar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RE','Reunion','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RW','Rwanda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SA','Saudi Arabia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SB','Solomon Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SC','Seychelles','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SD','Sudan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SG','Singapore','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SH','St. Helena','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SJ','Svalbard and Jan Mayen','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SL','Sierra Leone','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SM','San Marino','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SN','Senegal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SO','Somalia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SR','Suriname','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ST','Sao Tome and Principe','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SV','El Salvador','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SY','Syrian Arab Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SZ','Swaziland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TA','Tahiti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TC','Turks and Caicos Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TD','Chad','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TF','French Southern Ter.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TG','Togo','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TH','Thailand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TJ','Tajikistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TK','Ttokelau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TM','Turkmenistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TN','Tunisia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TO','Tonga','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TP','East Timor','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TT','Trinidad and Tobago','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TV','Tuvalu','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TW','Taiwan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TZ','Tanzania U. Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UA','Ukraine','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UG','Uganda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UM','U.S. Minor Outlying Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('US','United States','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UY','Uruguay','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UZ','Uzbekistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Vatican City State','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Holy See','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VC','St. Vincent and Grenadines','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VE','Venezuela','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VG','Virgin Iland (British)','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VI','Virgin Iland (U.S.)','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VN','Viet Nam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VU','Vanuatu','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WF','Wallis anf Futuna Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WK','Wake Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WS','Samoa West','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YE','Yemen','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YT','Mayotte','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZA','South Africa','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZM','Zambia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZW','Zimbabwe','Y');\r
diff --git a/0.2.1/DOCS/de/doubler/README.txt b/0.2.1/DOCS/de/doubler/README.txt
new file mode 100644 (file)
index 0000000..5a745a0
--- /dev/null
@@ -0,0 +1,23 @@
+Hier ein Beispiel, wie der Verdoppler arbeitet:
+ - 1.000 bis 10.000 Punkte koennen verdoppelte werden.
+ - also 2.0000 bis 20.000 Punkte gibt der Verdoppler raus.
+ - nicht mehr, nicht weniger.
+ - es ist eine prozentuale Gebuehr von 10% (etwas happig, zum besseren
+   Verstaednnis der Rechnung aber okay) eingestellt.
+
+Ein typischer Ablauf:
+1. Mitglied 1 zahlt 1.000 ein und will 2.000 haben
+2. Im Verdoppler landen aber nur 1.000-10% = 900 Punkte
+3. Mitglied 2 zahlt auch 1.000 ein und will auch 2.000 haben
+4. Im Verdoppler landen wieder nur 1.000-10% = 900 Punkte
+5. Das macht somit 1.800 Punkte. reicht nicht fuer Mitglied 1 aus!
+6. Mitglied 3 zahlt auch 1.000 ein und will auch 3.000 haben
+7. Im Verdoppler laden wieder nur 1.000-10% = 900 Punkte
+8. Das macht somit 2.700 Punkte und reicht aus fuer Mitglied 1
+9. Mitglied 1 werden 2.000 Punkte ausbezahlt und im Verdoppler verbleiben 700
+10. Mitglied 4 zahlt .... usw.!
+
+Ihnen als Admin bringen nur die 10% was ein. Die sind futsch/geschreddert und
+somit gibt es immer weniger Punkte im System. Mit Wernis/Klammlose klappt das
+auch. Dann muessen die Mitglieder bei Ihnen die Waehrung einkaufen und Sie
+verdienen etwas dran.
diff --git a/0.2.1/DOCS/de/engine/README.txt b/0.2.1/DOCS/de/engine/README.txt
new file mode 100644 (file)
index 0000000..08f061e
--- /dev/null
@@ -0,0 +1,40 @@
+Deutsche README-Datei fuer die Game-Engine
+==========================================
+
+1. Engine-Modus einstellen
+==========================
+
+Die Game-Engine kann in zwei Modis gesetzt werden: Server- und Client-Modus
+
+--- Server-Modus: ---
+
+- Alle externen Spielescriptes koennen auf die Export-Accounts zugreifen.
+
+- In diesem Modus kann die Engine durchaus einige !!!Gigabytes!!! Traffic
+  generieren. Dies liegt hauptsaechlich daran, dass eben - wenn Sie mehr
+  bekannter geworden sind - viele Spiele von aussen auf sie drauf zugreifen
+  und die Engine mit kleinen Antwort-Paketen antworten muss.
+
+- Nehmen wir an, ein Antwort-Paket ist durchschnittlich 10k gross. So
+  generieren die ersten 300.000 Anfragen "schlappe" 3,7 GB Traffic!
+
+- Diese Last kann keinesfalls ein "normaler" V-Server standhalten und Ihr
+  Hoster wird vorraussichtlich Ihnen im schlimsten Fall kuendigen oder Ihren
+  Server deaktivieren.
+
+- In diesem Modus koennen auch Punkte zwischen dem Export- und dem eigentlichen
+  Mailtausch-Account hin und her transferiert werden.
+
+- Dieser Modus kann auch zum Transferieren von Punkten zwischen zwei
+  Mailtauschs verwendet werden.
+
+--- Client-Modus: ---
+
+- In diesem Modus funktioniert nur das Transferieren von Punkten zwischen dem
+  Export- und dem eigentlichen Mailtausch-Account. Externe Spiele werden mit
+  einer 0 Byte grossen Antwort abgelehnt.
+
+- Die Server-Last ist also deutlich geringer.
+
+- Diesen Modus koennen Sie auch nutzen, um bespielsweise zwischen zwei
+  Mailtauschs Punkte transferieren zu koennen.
diff --git a/0.2.1/DOCS/de/promoter.txt b/0.2.1/DOCS/de/promoter.txt
new file mode 100644 (file)
index 0000000..5e17b83
--- /dev/null
@@ -0,0 +1 @@
+[GELEERT]
\ No newline at end of file
diff --git a/0.2.1/DOCS/de/rallye/README.txt b/0.2.1/DOCS/de/rallye/README.txt
new file mode 100644 (file)
index 0000000..20fb1c5
--- /dev/null
@@ -0,0 +1,27 @@
+Rallye-Erweiterung
+------------------
+
+- Es kann immer nur eine Rallye zur Zeit laufen (wird aber nur beim Hinzufuegen
+  getestet, beim Editieren muessen Sie pruefen!), mehrere gleichzeitig
+  "ueberfuettert" nur Ihre Mitglieder! ;-)
+
+- Sie koennen beim Hinzufuegen von Rallyes entweder eine kleine Beschreibung
+  (HTML-Code erlaubt) eingeben oder ein Template verknuepfen:
+
+  * Dieses muss sich - wie alle anderen Templates - im Ordner templates/de/html
+    befinden
+  * Der Dateiname muss mit rallye_ anfangen und .tpl aufhoeren.
+  * Das Mittelstueck des Template-Namens sollte nur Buchstaben aus dem US-
+    Alphabet und Unterstriche enthalten und nicht laenger als 255 Zeichen sein.
+
+  Das Beispiel rallye_test.tpl von mir koennen Sie gerne zum Testen verwenden!
+
+- Lassen Sie die Rallye nicht ohne Preise anlaufen, also zuerst deaktiviert
+  (Standardauswahl) hinzufuegen, dann die Preise verknuepfen und schliesslich
+  unter "Rallyes verwalten" die Rallye aktivieren.
+
+- Das "Stechen" (gleiche Anzahl Refs und Punkte, was aber wegen der Punkte
+  selten vorkommt) ist noch nicht implementiert!
+
+- Es werden nur Refs und Punkte aus der ersten Ebene (also direkt geworbene
+  Mitglieder) ausgewertet.
diff --git a/0.2.1/DOCS/de/rewrite/.htaccess b/0.2.1/DOCS/de/rewrite/.htaccess
new file mode 100644 (file)
index 0000000..114ce66
--- /dev/null
@@ -0,0 +1,5 @@
+RewriteEngine  On\r
+\r
+RewriteRule    ^cms/(.*)/wht/(.*)$                             modules.php?module=$1&what=$2                                           [L]\r
+RewriteRule    ^cms/(.*)/act/(.*)$                             modules.php?module=$1&action=$2                                 [L]\r
+RewriteRule    ^cms/(.*)$                                      modules.php?module=$1                                                   [L]\r
diff --git a/0.2.1/DOCS/de/rewrite/README.txt b/0.2.1/DOCS/de/rewrite/README.txt
new file mode 100644 (file)
index 0000000..2c49a4d
--- /dev/null
@@ -0,0 +1,25 @@
+README-Datei zur .htaccess-Datei
+================================
+
+Die in diesem Verzeichnis befindliche .htaccess-Datei muessen Sie evtl. noch
+mit Fehlerbehandlungszeilen erweitern:
+
+ErrorDocument 403 http://www.ihr-server.hier/fehler403.htm
+ErrorDocument 404 http://www.ihr-server.hier/fehler404.htm
+
+Fuegen Sie diese Zeilen am Anfang der .htaccess-Datei ein und passen Sie die
+Adressen an Ihren Server an!
+
+Die nun erweiterte Datei speichern Sie ab und laden Sie diese in das
+Hauptverzeichnis des Mailtausches hoch (also dort, wo sich index.php,
+modules.php usw. befindet).
+
+Wenn Sie beim Aufrufen Ihres Mailtausches Zugriffsfehler bekommen sollten, ist
+meistens die mod_rewrite-Erweiterung von Apache nicht installiert. Lassen Sie
+diese durch den Support Ihres Hosters aktivieren.
+
+Online-Dokumentation dazu gibt es bei Apache:
+
+http://httpd.apache.org/docs/mod/mod_rewrite.html
+
+[-- ENDE DER README-DATEI --]
diff --git a/0.2.1/DOCS/de/rewrite/README_htaccess.de b/0.2.1/DOCS/de/rewrite/README_htaccess.de
new file mode 100644 (file)
index 0000000..2c49a4d
--- /dev/null
@@ -0,0 +1,25 @@
+README-Datei zur .htaccess-Datei
+================================
+
+Die in diesem Verzeichnis befindliche .htaccess-Datei muessen Sie evtl. noch
+mit Fehlerbehandlungszeilen erweitern:
+
+ErrorDocument 403 http://www.ihr-server.hier/fehler403.htm
+ErrorDocument 404 http://www.ihr-server.hier/fehler404.htm
+
+Fuegen Sie diese Zeilen am Anfang der .htaccess-Datei ein und passen Sie die
+Adressen an Ihren Server an!
+
+Die nun erweiterte Datei speichern Sie ab und laden Sie diese in das
+Hauptverzeichnis des Mailtausches hoch (also dort, wo sich index.php,
+modules.php usw. befindet).
+
+Wenn Sie beim Aufrufen Ihres Mailtausches Zugriffsfehler bekommen sollten, ist
+meistens die mod_rewrite-Erweiterung von Apache nicht installiert. Lassen Sie
+diese durch den Support Ihres Hosters aktivieren.
+
+Online-Dokumentation dazu gibt es bei Apache:
+
+http://httpd.apache.org/docs/mod/mod_rewrite.html
+
+[-- ENDE DER README-DATEI --]
diff --git a/0.2.1/DOCS/de/task/README.txt b/0.2.1/DOCS/de/task/README.txt
new file mode 100644 (file)
index 0000000..e7b7947
--- /dev/null
@@ -0,0 +1,6 @@
+Deutsche README-Datei fuer das Task-System
+==========================================
+
+- Sie vermissen im Admin-Bereich die Menuebeschreibungen zu den Hauptmenues?
++ Diese sind nun seit einiger Zeit komplett ausgebaut und werden mit aller
+  Wahrscheinlichkeit auch nicht mehr wiederkommen... Oder vielleicht doch? ;)
diff --git a/0.2.1/DOCS/de/themes/README.txt b/0.2.1/DOCS/de/themes/README.txt
new file mode 100644 (file)
index 0000000..beff0c0
--- /dev/null
@@ -0,0 +1,69 @@
+Deutsche README-Datei fuer das Theme-System
+===========================================
+
+Diese Doku ist "quick'n'dirty" erstellt, also nicht vollstaendig, sollte aber
+zum Erstellen eigener Themes und Portieren Ihres Designs von aelteren Versionen
+ohne Theme-System (hoffentlich) reichen.
+
+[--- --- --- --- ---]
+
+1. Umsteigen von aelteren Versionen ohne Theme-System
+-----------------------------------------------------
+
+------------ VERALTET ------------
+Ich gehe davon aus, dass Sie erstmal das 281'er Patch (in Versionen =>
+0.2.0-pre8 ist es bereits mit enthalten!) eingespielt haben.
+
+Bitte wundern Sie sich also nicht, wenn nicht Ihr Design beim Aufrufen Ihres
+Mailtausches kommt!
+------------ VERALTET ------------
+
+Die jetzige Version enthaelt bereits das besagte 281'er Patch. Bitte verwenden
+Sie die von Ihnen heruntergeladene Version!
+
+Lesen Sie gleich unter 2. weiter!
+
+[--- --- --- --- ---]
+
+2. Erstellen eigener Themes
+---------------------------
+
+Ich nehme mal beispielhaft an, Ihr Mailtausch heisst "XYZ-Mailtausch" (Sie haben
+sich mit Sicherheit einen besseren Namen ausgedacht, als XYZ-Mailtausch...).
+
+Gehen Sie in das Verzeichnis /theme/ und legen Sie dort ein Verzeichnis "xyz"
+(ohne den Anfuehrungszeichen) an. Sie sollten bei der Namensvergabe des
+Verzeichnisses wenn moeglich nur Uni*-kompatible Zeichen verwenden:
+
+a-z und _
+
+Auch sollten Sie keinen Leerschritt verwenden!
+
+Dann kopieren Sie die theme.php aus dem Verzeichnis default in Ihr Verzeichnis
+"xyz", sowie alle Dateien aus /theme/default/css/ und /theme/default/images/
+nach /theme/xyz/css/ bzw. /theme/xyz/images/, die alle zu Ihrem Design
+gehoehren sollen.
+
+Dann oeffenen Sie die Datei theme.php aus Ihrem Verzeichnis "xyz" und editieren
+die Daten fuer Ihre Webseite / Namen / EMail-Adresse um. Diese finden Sie
+unterhalb des Kommentarkopfes. Sie heissen wie folgt:
+
+- $THEME_NAME    -  Titel Ihres Design, der in der Auswahlbox erscheinen soll,
+                    nicht laenger als 30 Zeichen! Beispiel "XYZ-Theme"
+
+- $THEME_AUTHOR  -  Nur Ihren vollstaendigen Namen oder Nicknamen (Pseudonym)
+
+- $THEME_EMAIL   - Nur Ihre EMail-Adresse, unter der Sie erreichbar sind.
+                   Beispiel: ihr.name@mein-hoster.de
+
+- $THEME_URL     - Die Homepage-Adresse, unter der Sie erreichbar sind, oder
+                   besser wo Ihr Theme zum Download angeboten wird.
+
+Wichtiges:
+----------
+
+Wenn Sie moechten, koennen Sie das Theme auch unter die GNU GPL stellen, damit es
+zu meinem Hauptscript kompatibel ist. Wieso, beantwortet Ihnen gerne die Free
+Software Foundation: http://www.fsf.org
+
+[ENDE VON README_themes.txt]
diff --git a/0.2.1/DOCS/en/AUTHORS.txt b/0.2.1/DOCS/en/AUTHORS.txt
new file mode 100644 (file)
index 0000000..73bb766
--- /dev/null
@@ -0,0 +1,33 @@
+[---------------------------------]
+[-- All authors of this script: --]
+[---------------------------------]
+
+- Roland Haeder <webmaster@mxchange.org>
+
+  (Project leader, Webmaster, main coder)
+
+- Mr. X <maybe.your@adress.com>
+
+  (requested to be listed... ;-) )
+
+[----------------------------------------]
+[-- Inactive developers / contributors --]
+[----------------------------------------]
+
+- Robert Niedziela <mail@mc-p.org>
+
+  (secondary programmer, some bugfixes and many improvements:
+    other settings in admin menu, delete emails, media data,
+    email archive email details)
+
+- Lars Moehlenbruch <info@surfo.net>
+
+  (Better HTML template support, list referrals of a member)
+
+- Erol Ilkan <erol@gmxpro.de>
+
+  (New coder, some bugfixes, SQL fixes)
+
+- Lothar Mengens <money@gmx.net>
+
+  (Has contributed an SQL file with country codes)
diff --git a/0.2.1/DOCS/en/CHANGES.txt b/0.2.1/DOCS/en/CHANGES.txt
new file mode 100644 (file)
index 0000000..7777c33
--- /dev/null
@@ -0,0 +1,5 @@
+Die aktuellen Aenderungen habe ich leider nicht konsequent weitergefuehrt, werde dies aber ab der
+Version 0.3.0 wieder machen, oder so.
+
+Roland
+
diff --git a/0.2.1/DOCS/en/CSS-PATCHES.txt b/0.2.1/DOCS/en/CSS-PATCHES.txt
new file mode 100644 (file)
index 0000000..ea6931e
--- /dev/null
@@ -0,0 +1,111 @@
+Folgende Aenderungen muessen mit dem 180-Patch zussammen an der css/general.css
+erledigt werden. Aber nur dann, wenn Sie von aelteren Versionen aufsteigen!
+
+[--- SUCHEN NACH: ---]
+.admin.fatal
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_fatal
+
+[--- SUCHEN NACH: ---]
+.admin.error
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_error
+
+[--- SUCHEN NACH: ---]
+.admin.edit
+
+[-- AUSTAUSCHEN DURCH (NUR ZEILE 127 ---]
+[--  bzw. nicht nach Zeile 200!):    ---]
+.admin_edit
+
+[--- SUCHEN NACH: ---]
+.admin.desc_header
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_desc_header
+
+[--- SUCHEN NACH: ---]
+.admin.desc_cont
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_desc_cont
+
+[--- SUCHEN NACH: ---]
+.admin.logout
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_logout
+
+[--- SUCHEN NACH: ---]
+.admin.editmenu
+
+[-- AUSTAUSCHEN DURCH: ---]
+.admin_editmenu
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin.forms {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_seperator_b2 {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_seperator_b3 {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_seperator_br {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_seperator_b {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_header_br {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_table_br {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: ---]
+.admin_table_b {
+       ...;
+       ...
+}
+
+[-- NUR KLASSEN-NAME LOESCHEN: --]
+.register_????????,
+
+(NUR PRO-VERSIONEN!)
+
+[-- KOMPLETT LOESCHEN: (SEHR ALTE VERSIONEN!) ---]
+.admin.seperator {
+       ...;
+       ...
+}
+
+[-- KOMPLETT LOESCHEN: (NEUERE VERSIONEN!) ---]
+.admin_seperator {
+       ...;
+       ...
+}
+
diff --git a/0.2.1/DOCS/en/CSS-PATCHES_05092004.txt b/0.2.1/DOCS/en/CSS-PATCHES_05092004.txt
new file mode 100644 (file)
index 0000000..ec0c4a4
--- /dev/null
@@ -0,0 +1,87 @@
+You may want to to change the follow files to fully update to the new version:
+
+[-- OPEN: --]
+css/general.css
+
+[-- DELETE COMPLETELY: ---]
+span.fatal {
+       ...
+}
+
+[-- DELETE COMPLETELY: ---]
+.submit {
+       ...
+}
+
+[-- DELETE COMPLETELY: ---]
+.admin_choice {
+       ...;
+       ...;
+       ...;
+}
+
+[-- SEARCH FOR: --]
+.guest_menu_whats
+
+[-- REPLACE WITH: --]
+.guest_menu_row, .guest_menu_bottom
+
+[-- SEARCH FOR: --]
+.guest_menu_row, .guest_menu_bottom
+
+[-- CONTINUE SEARCH: --]
+}
+
+[-- ADD BEFORE: --]
+       padding-left: 10px;
+       vertical-align: middle;
+
+[-- DELETE COMPLETELY: --]
+.footer {
+       ...;
+       ...
+}
+
+[-- SEARCH FOR: --]
+.footer.lines
+
+[-- REPLACE WITH: --]
+.footer_lines
+
+[-- CONTINUE SEARCH: --]
+     vertical-align      : bottom;
+     font-size           : 10px;
+}
+
+[-- COMMENT: --]
+In template member_header.tpl.de was an error. Mayb this is fixed in your new version.
+
+[-- OPEN: --]
+templates/member_header.tpl.de
+
+[-- SEARCH ON EOL AND REMOVE: --]
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%" class="guest">
+
+[-- COMMENT: --]
+If you want to have back the small dot (&middot;) in front of every menu point, please change following things:
+It is a good idea to keep the current files as described below when you want to use images for your menus
+
+[-- OPEN: --]
+templates/guest_menu_bottom.tpl.de
+
+[-- SEARCH FOR: --]
+$content
+
+[-- ADD BEFORE: --]
+<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;
+
+[-- OPEN: --]
+templates/guest_menu_row.tpl.de
+
+[-- SEARCH FOR: --]
+$content
+
+[-- ADD BEFORE: --]
+<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;
+
+[-- CLOSE/SAVE FILES --]
diff --git a/0.2.1/DOCS/en/DESIGNING.txt b/0.2.1/DOCS/en/DESIGNING.txt
new file mode 100644 (file)
index 0000000..979146d
--- /dev/null
@@ -0,0 +1,732 @@
+0. Inhaltverzeichnis
+--------------------
+
+1.   Intro
+2.   Wie Sie am besten anfangen
+2.1. Allgemeine Farbeinstellungen
+
+----- ----- ----- ----- -----
+
+1. Intro
+--------
+
+Ich moechte Ihnen hier zeigen, wie Sie das Design Schritt-Fuer-Schritt an
+Ihre Wuensche angepasst bekommen.
+
+Dann gebe ich Ihnen eine Referenz, wo Sie nachvollziehen koennen, wo fuer
+welche CSS-Klasse gedacht ist.
+
+Sie sollten allerdings beispielsweise wissen, was eine Klasse ist. Sollten
+Sie dies nicht wissen, geben Sie einfach bei einer Suchmaschine Ihrer Wahl
+das Suchwort "CSS-Klasse" ein. Sie finden dann genuegend Seiten, wo Sie
+sich informieren koennen.
+
+Oder rufen Sie auch die (wohl?) bekannteste HTML-Dokumentation im Netz auf:
+
+http://www.selfhtml.org
+
+----- ----- ----- ----- -----
+
+2. Wie Sie am besten anfangen
+-----------------------------
+
+Die Haupt-CSS-Datei general.css mag auf dem ersten Blick sehr gross und
+komplex aussehen. Lassen Sie sich davon nicht abschrecken! Um diese wird es
+sich jetzt permanent drehen.
+
+Sie koennen diese also in einem zweiten Editor (WORDPAD.EXE oder WRITE.EXE
+reicht voellig aus!) oeffnen und dann zwischen dieser Anleitung und der Datei
+hin und her wechsel (Windows: ALT-TAB!).
+
+----- ----- ----- ----- -----
+
+2.1. Allgemeine Farbeinstellungen
+---------------------------------
+
+Fangen wir als erstes mit dem generellen Aussehen (Body, Rumpf) an. Diese
+Angaben sitzen auch passenderweise am Anfang der Datei.
+
+Auszug aus der orginalen general.css:
+:----------------------------------:
+
+body {
+       background-color        : #F4F9BE;
+       color                   : #000000;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+       font-size                       : 12px;
+
+       scrollbar-base-color            : #E9E4AE;
+       scrollbar-face-color            : #CDEFCD;
+       scrollbar-highlight-color       : #F4F9BE;
+       scrollbar-shadow-color          : #CDEFCD;
+       scrollbar-3dlight-color         : #DDDDDD;
+       scrollbar-arrow-color           : #000000;
+       scrollbar-track-color           : #CCEFCC;
+       scrollbar-darkshadow-color      : #999999;
+
+       margin                  : 0px;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 0px;
+       margin-bottom           : 0px;
+}
+
+:----------------------------------:
+Bis hier hin erstmal!
+
+Die ersten 4 Zeilen (lassen Sie dabei "body {" und alle spaeteren Namen dabei
+ausser acht) geben die Hintergrundfarbe, Textfarbe, Schriftfamilie und die
+Textgroesse an.
+
+Der naechste Block widmet sich den Farben des Rollbalkes vom Browser.
+
+Und der letzte 5-Zeilen-Block stellt den Abstand zwischen den Elementen ein.
+Dies ist aber nur eine allgemeine Einstellung. Sie koennen spaeter auch
+Feineinstellungen vornehmen, indem Sie solch Zeilen fuer die anderen Klassen
+verwenden.
+
+Nun geht es mit den allgemeinen Tabellen-Einstellungen weiter:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+table {
+       table-layout            : auto;
+       border-spacing          : 0px;
+       overflow                        : auto;
+}
+
+:----------------------------------:
+
+Was diese Einstellungen bewirken, koennen Sie beispielsweise in der bekannten
+Dokumentation "SelfHTML" (http://www.selfhtml.org) nachlesen.
+
+Weiter geht es mit dem Aussehen der Links:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+A {
+       font-style              : normal;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+       text-decoration : none;
+}
+
+A:link {
+       color                   : #2e51a9;
+}
+
+A:visited {
+       color                   : #AA0044;
+}
+
+A:active {
+       color                   : #2e51a9;
+       background-color        : transparent;
+}
+
+A:hover {
+       color                   : #AA0044;
+       background-color        : transparent;
+       text-decoration : underline overline;
+}
+
+:----------------------------------:
+
+Hier habe ich gleich 5 Klassen auf einmal genommen, damit diese Dokumentation
+kuerzer ausfaellt.
+
+In der ersten Klasse stellen Sie allgemeine Farbeinstellungen ein; die
+naechsten Klassen stellen folgendes ein:
+
+- Allgemeine Linkfarbe
+- Linkfarbe fuer bereits besuchte Links
+- Linkfarbe fuer angeklickte Links
+- Linkfarbe fuer Hover (Maus schwebt ueber Link, es wurde aber noch nicht
+  geklickt)
+
+Wir machen gleich weiter mit den allgemeinen Einstellungen um Formular-
+Elemente. Hier habe ich gleich einiges zusammengefasst:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+input, textarea, select, option {
+       color                   : #AA0044;
+       background-color        : #EEFFEE;
+       border-color            : #BBBBBB;
+       text-decoration : none;
+}
+
+:----------------------------------:
+
+Diese Klasse fasst - wie bereits gesagt - einige HTML-Elemente zusammen:
+
+- Eingabefelder oder Buttons (input)
+- Texteingabefelder (textarea)
+- Auswahlmenues (select)
+- Auswahloptionen (option)
+
+Damit ist der erste Teile "Allgemeine Farbeinstellungen abgeschlossen! Laden
+Sie jetzt mal die geaenderte general.css auf Ihren Webserver in das css-
+Verzeichnis hoch!
+
+Koennen Sie schon erahnen, wie Ihre Seite nun aussieht? Richtig! Etwas "bunt
+durcheinander". Das macht erstmal soweit nichts, denn wir sind ja noch nicht
+fertig mit Umdesignen.
+
+Nun geht es um etwas feinere Einstellungen...
+
+----- ----- ----- ----- -----
+
+2.2. Detailelemente: Buttons, Auflistungen usw.
+-----------------------------------------------
+
+Dieses Thema wird jetzt sehr lang, da alle weiteren Klassen behandelt werden.
+Wir machen aber mal zwischendurch eine Pause, wo Sie sich dann Ihre Arbeit im
+Browser ansehen koennen und nochmals nachkorregieren koennen.
+
+Sie werden also - der Wahrscheinlickeit nach - nicht den Ueberblick verlieren.
+Auch hier gehen wir wieder Schritt fuer Schritt vor, so dass Sie in der
+general.css einfach weiter nach unten "wandern" brauchen.
+
+Und los geht es mit den Absende- und Zuruecksetzen-Buttons:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.admin_reset, .guest_reset, .member_reset {
+       border-style            : groove;
+       border                  : solid 1px #009900;
+       color                   : #AA0044;
+}
+
+.admin_submit, .guest_submit, .member_submit {
+       color                   : #AA0044;
+       border-color            : #009900;
+}
+
+.admin_submit_reject {
+       border-style            : groove;
+       color                   : #881111;
+       border-color            : #009900;
+}
+
+:----------------------------------:
+
+Ich habe hier gleich 3 Klassen auf einmal genommen:
+
+- Zuruecksetzen-Buttons (alle drei Menues gemeinsam)
+- Absendebuttons in allen drei Menues
+- Im Adminbereich: Button fuer Mailbuchung ablehnen
+
+Und weiter geht's mit den Auflisten-Elementen:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+ul, ol {
+       margin-top              : 0px;
+       margin-bottom           : 0px;
+}
+
+:----------------------------------:
+
+Nicht-nummerierte und nummerierte Listen werden hiermit eingestellt. Meine
+Angaben stellen den Abstand zu anderen Objekten auf 0 Pixel ein.
+
+Und weiter geht es mit Klassen fuer auftretende Laufzeitfehler:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.runtime {
+       color                   : #118811;
+       background-color        : #DDEEDD;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+}
+
+.runtime.fatal {
+       color                   : #00AA00;
+}
+
+.runtime.fatalcontent {
+       font-size                       : 20px;
+}
+
+:----------------------------------:
+
+Die erste Klasse stellt allgemeine Dinge, wie Hintergrund- und Vordergrund-
+farben, sowie die Schriftfamilie ein. Das letztere ist eigentlich nicht noetig.
+
+Die naechste Klasse stellt die Farbeinstellung fuer Fehlermeldungen ein
+(SQL-Fehler meistens) und letzte stellt die Schriftgroesse fuer alle uebrigen
+Meldungen (Titel leider auch) ein.
+
+Hier muss ich dringenst etwas aendern. Aber dieser Code-Teil ist auch sehr alt
+und kommt aus meinen ersten Schritten mit diesem Mailtausch-Script.
+
+Weiter geht es mit dem Admin-Bereich:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.admin_fatal {
+       font-size                       : 18px;
+       color                   : #00AA00;
+}
+
+.admin {
+       color                   : #118811;
+       background-color        : #DDEEDD;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+}
+
+.admin_note {
+       color                   : #FF0000;
+       font-size                       : 12px;
+}
+
+.admin_edit, .member_confirm {
+       background-color        : #eeffbc;
+}
+
+:----------------------------------:
+
+Hier hat sich - wegen Farbgleichheit, koennen Sie also auch trennen - gleich
+eine CSS-Klasse fuer den Mitgliederbereich eingeschlichen:
+
+"member_confirm" stellt die Tabelle fuer das Zeitframe beim Bestaetigen von
+Mails ein. Der Reset widmet sich ganz und alleine dem Admin-Bereich:
+
+1.: Fehlermeldungen fuer den Admin (Modul gesperrt, etc.) und Fehlermeldungen im
+    Admin-Bereich beim Editieren von Gastmenue- und Adminmenue-Punkten
+
+2.: Allgemeine Einstellungen, wie Farben und Schriftartfamilie
+
+3.: Hinweise fuer den Admin ("Einstellungen gespeichert" beispielsweise)
+
+4.: Farbeinstellung beim Editieren aller drei Menue-Systeme
+
+Wieso auch immer, aber als naechstes hat sich eine Klasse fuer den Mitglieds-
+bereich eingeschoben:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.member_banner {
+       background-color        : #eeffbc;
+       width                   : 488px;
+}
+
+:----------------------------------:
+
+Ahnen Sie schon, was diese Klasse soll? Ich schaetze mal, Sie haben auf die
+Refbanner getippt. Hiemit werden aber die Einstellungen fuer Ihre Werbebanner
+im Zeitframe beim Bestaetigen von Mails vorgenommen.
+
+Nicht dass Sie dies jetzt missverstehen: Es werden nur Desgin-Angaben fuer die
+Tabelle um den Banner eingestellt, nicht der Banner selber wird geaendert! ;-)
+
+Und weiter geht es mit Admin-Klassen:
+
+Auszug aus der originalen general.css:
+:----------------------------------:
+
+.admin_error {
+       background-color        : #eeffbc;
+       color                   : #00AA00;
+       font-size                       : 10px;
+}
+
+.admin_select, .guest_select, .member_select {
+       border                  : dotted 1px;
+       border-color            : #009900;
+       background-color        : #EEFFEE;
+}
+
+.admin.register, .admin_desc_header, .admin_done, .admin_title, .member_title2, .guest_title2 {
+       background-color        : #ddeedd;
+       color                   : #009900;
+}
+
+:----------------------------------:
+
+.member_done, .guest_done {
+       color                   : #009900;
+}
+
+.member_misc {
+       background-color        : #DDEEDD;
+}
+
+.admin_misc, .member_misc {
+       color                   : #000000;
+}
+
+.admin_done2 {
+       color                   : #AA0044;
+}
+
+.admin_green, .admin_no {
+       color                   : #009900;
+}
+
+.admin_welcome {
+       background-color        : #DDEEDD;
+       color                   : #009900;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 50px;
+}
+
+.admin_header {
+       background-color        : #eeffbc;
+}
+
+.admin_menu {
+       background-color        : #DDEEDD;
+       color                   : #000077;
+       width                   : 230px;
+}
+
+.admin_logout {
+       background-color        : #AAFFAA;
+       color                   : #00AA00;
+}
+
+.admin_desc_cont, .admin_table, .member_table {
+       background-color        : #eeffbc;
+}
+
+.admin_editmenu {
+       min-width                       : 500px;
+       max-width                       : 90%;
+}
+
+.admin_form_header {
+       text-align          : center;
+       height                  : 36px;
+       background-color        : #eeffbc;
+       color                   : #009900;
+}
+
+.member_header {
+       text-align          : center;
+       height                  : 28px;
+       background-color        : #eeffbc;
+}
+
+.admin_failed, .guest_failed, .member_failed, .member_note {
+       color                   : #00AA00;
+}
+
+.member_note_bg {
+       background-color        : #eeffbc;
+}
+
+.member_data {
+       background-color        : #eeffbc;
+       color                   : #009900;
+       height                  : 20px;
+}
+
+.admin_header_b1 {
+       border-bottom           : 1px solid #AA0044;
+       background-color        : #ddeedd;
+       height                  : 22px;
+}
+
+.admin_snote {
+       font-size                       : 12px;
+}
+
+.admin_normal, .guest_normal, .member_normal {
+       border-style            : solid;
+       border                  : dotted 1px;
+       border-color            : #009900;
+}
+
+.member_stats {
+       vertical-align          : top;
+       font-weight             : bold;
+       height                  : 23px;
+       font-size                       : 16px;
+       border-style            : none;
+       border                  : 0px;
+       background          : #DDEEDD;
+       color                   : #000000;
+       margin-top              : -4px;
+       margin-bottom           : 1px;
+       cursor                  : default;
+}
+
+.normal {
+       border-style            : groove;
+}
+
+.member_main {
+       background-color        : #DDEEDD;
+}
+
+.guest_title, .member_title {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 60px;
+}
+
+.guest_login_header {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+}
+
+.guest_menu, .member_menu {
+       width                   : 200px;
+       background-color        : #DDEEDD;
+}
+
+.guest_menu_title, .member_menu_title {
+       background-color        : #BDEFCD;
+       color                   : #009900;
+       height                  : 25px;
+       width                   : 200px;
+       border                  : 1px solid #AA0044;
+}
+
+.guest_menu_whats, .member_menu_whats {
+       border                  : 1px dotted #AA0044;
+       border-top              : 0px;
+       background-color        : #eeffbc;
+       height                  : 20px;
+}
+
+.guest_menu_seperator, .member_menu_seperator {
+       height                  : 15px;
+}
+
+.guest_content, .member_content {
+       background-color        : #F4FFF4;
+       width                   : 99%;
+}
+
+.guest_advert, .guest_login, .member_advert, .member_login {
+       background-color        : #DDEEDD;
+       vertical-align          : top;
+       margin-top              : 10px;
+}
+
+.master {
+       width                   : 100%;
+       height                  : 100%;
+       min-height              : 90%;
+       max-height              : 100%;
+}
+
+.footer {
+       vertical-align          : bottom;
+       font-size                       : 12px;
+}
+
+.footer.lines {
+       width                   : 340px;
+       vertical-align          : middle;
+       background-color        : #E5EFE5;
+       height                  : 40px;
+}
+
+.dashed {
+       border                  : dotted 1px;
+       border-color            : #AA0044;
+}
+
+.switch_sw1, .switch_mem1 {
+       background-color        : #b8efc1;
+}
+
+.switch_sw2, .switch_mem2 {
+       background-color        : #b8fccb;
+}
+
+.impressum {
+       font-size                       : 12px;
+       width                   : 320px;
+       vertical-align          : middle;
+       background-color        : #E5EFE5;
+       height                  : 70px;
+}
+
+.mediadata {
+       background-color        : #eeffbc;
+}
+
+.media_header, .impressum_header {
+       background-color        : #b8fccb;
+       align                   : center;
+       text-align              : center;
+       color                   : #009900;
+       height                  : 26px;
+       font-weight             : bold;
+       font-size                       : 20px;
+}
+
+.media_left {
+       font-size                       : 14px;
+       width                   : 200px;
+}
+
+.media_right {
+       color                   : #009900;
+       font-weight             : bold;
+       font-size                       : 14px;
+       width                   : 70px;
+}
+
+.admin_sep_footer {
+       background-color        : #DDEEDD;
+       font-size           : 1px;
+}
+
+.admin_sep_footer2 {
+       background-color        : #eeffbc;
+       font-size           : 1px;
+}
+
+.admin_footer, .member_refbanner, .member_update, .admin_del_link {
+       background-color        : #DDEEDD;
+}
+
+.member_footer {
+       height                  : 30px;
+       background-color        : #DDEEDD;
+}
+
+.admin_footer {
+       height                  : 30px
+}
+
+.admin_task_header {
+       background-color        : #DDEEDD;
+       color                   : #009900;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 35px;
+}
+
+.seperator {
+       font-size                       : 1px
+}
+
+.tab1 {
+       align                   : center
+}
+
+.admin_delete, .admin_yes {
+       border-style            : groove;
+       border                  : solid 1px #00AA00;
+       background-color        : #AA0044;
+       color                   : #DDEEDD;
+}
+
+.guest_stats {
+       background-color        : #eeffbc;
+       width                   : 460px;
+}
+
+.guest_stats_title {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 30px;
+}
+
+.guest_stats_l {
+       width                   : 344px;
+       text-align              : right;
+}
+
+.guest_stats_m {
+       width                   : 2px;
+}
+
+.guest_stats_r, .guest_stats_lr, .guest_stats_rr {
+       color                   : #009900;
+       width                   : 28px;
+       font-weight             : bold;
+       text-align              : center;
+}
+
+.guest_stats_ll, .guest_stats_rl {
+       width                   : 192px;
+       text-align              : right;
+}
+
+.guest_stats_footer {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 20px;
+}
+
+.task_pre {
+       font-weight             : bold;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 10px;
+       margin-bottom           : 10px;
+}
+
+.impressum_body {
+       background-color        : #DDEEDD;
+}
+
+.guest_content_align, .member_content_align, .admin_content_align {
+       align                   : center;
+       text-align              : center;
+       vertical-align          : top;
+}
+
+.member_mailidtop {
+       background-color        : #DDEEDD;
+       width                   : 100%;
+       height                  : 100%;
+}
+
+.list_categories, .admin_action_header, .admin_main, .admin_menu_main, .admin_menu_sub {
+       width                   : 100%;
+}
+
+.member_unconfirmed {
+       background-color        : #DDEEDD;
+       width                   : 100%;
+       align                   : center;
+       text-align              : center;
+}
+
+.you_are_here {
+       white-space             : nowrap;
+       font-size                       : 14px;
+}
+
+.tiny   { font-size            : 12px; }
+.medium { font-size            : 14px; }
+.big    { font-size            : 20px; }
+
+.top    { border-top   : 1px dotted #4400AA; }
+.bottom { border-bottom        : 1px dotted #4400AA; }
+.left   { border-left  : 1px dotted #4400AA; }
+.right  { border-right : 1px dotted #4400AA; }
+
+.top2    { border-top  : 1px dotted #AA0044; }
+.bottom2 { border-bottom       : 1px dotted #AA0044; }
+.left2   { border-left : 1px dotted #AA0044; }
+.right2  { border-right        : 1px dotted #AA0044; }
+
+.nobr {
+       white-space             : nowrap;
+}
+
+.guest_table {
+       background-color    : #eeffbc;
+}
diff --git a/0.2.1/DOCS/en/EXTENSIONS.txt b/0.2.1/DOCS/en/EXTENSIONS.txt
new file mode 100644 (file)
index 0000000..6b71863
--- /dev/null
@@ -0,0 +1,18 @@
+Info-Datei zum Einspielen von Erweiterungen
+===========================================
+
+Im Grunde genommen koennen Sie beim Updaten von Erweiterungen so vorgehen,
+wie Sie es vom Upgraden des gesamten Script her kennen:
+
+- Eigen geaenderte Templates/CSS-Dateien sichern
+- Alles (bis auf DOCS-Verzeichnis) hochladen
+- Gesicherte Dateien wieder hochladen.
+- In Adminbereich einloggen und nach Update-Aufgaben gucken
+
+Viel Erfolg!!!
+
+Und wenn Sie nicht weiterkommen, melden Sie sich bitte im Forum:
+
+http://forum.mxchange.org
+
+[EOF]
diff --git a/0.2.1/DOCS/en/LICENSE.txt b/0.2.1/DOCS/en/LICENSE.txt
new file mode 100644 (file)
index 0000000..a3fb4db
--- /dev/null
@@ -0,0 +1,3 @@
+Please read the license file DOCS/LICENSE.txt for details.
+
+[EOF]
diff --git a/0.2.1/DOCS/en/MENUE_HOVER.txt b/0.2.1/DOCS/en/MENUE_HOVER.txt
new file mode 100644 (file)
index 0000000..3c9aaa7
--- /dev/null
@@ -0,0 +1,19 @@
+Change following CSS class:
+
+A:hover {
+     background-color    : transparent;
+}
+
+Add following CSS classes to general.css:
+
+.menu_blur {
+     display             : block;
+}
+
+.menu_blur:hover {
+     background-color    : #deefac;
+}
+
+Remove from following CSS class(es) the "padding-left: ??px" entry:
+
+.guest_menu_row, .guest_menu_bottom, .member_menu_row, .member_menu_bottom
diff --git a/0.2.1/DOCS/en/PATCHES.txt b/0.2.1/DOCS/en/PATCHES.txt
new file mode 100644 (file)
index 0000000..d1cd3f3
--- /dev/null
@@ -0,0 +1,28 @@
+Einspielen von Patches und wichtige Infos
+=========================================
+
+Patches sind inkrement zur aktuellen Version (bitte im Admin-Bereich unter
+"Verschiedes / Updates pruefen" schauen, ob eine neue Version raus ist). Das
+heisst, sie bauen aufeinander auf und dementsprechend muessen sie in der
+Reihenfolge installiert werden, in der ich sie durchnummeriert (Prefix) habe.
+
+Bei einigen Patches liefere ich Templates und/oder CSS-Dateien mit aus. Diese
+muessen Sie natuerlich auch einspielen.
+
+Ist Ihnen das Patchen zu kompliziert, warten Sie einfach auf ein neues Update.
+Von diesem brauchen Sie dann nur noch die PHP-Dokumente, Templates und CSS-
+Dateien (neue nur!) hochladen.
+
+Das Einspielen von SQL-Dateien per upgrade.php oder PHPMyAdmin ist seit einigen
+Versionen nicht mehr noetig. Dies wird entweder von den unzaehligen
+Erweiterungen (einige dienen nur als Platzhalter, sollten aber dennoch aktuell
+gehalten werden, damit Sie kein neues Feature / Patch verpassen) erledigt, oder
+auch von der Erweiterung "sql_patches".
+
+Im Internet unter der Adresse www.mxchange.org habe ich eine FAQ Nr. 19 zum
+Thema "Erweiterungen aktuell halten" eingestellt. Schauen Sie sich diese an,
+wenn Sie wissen wollen, welche Erweiterungen Sie mindestens aktuell halten
+sollten. Zudem veroeffentliche ich dort mal ab und zu eine weitere FAQ mit
+interessanten Hinweisen aus Mails und Chats mit "Kunden" (wie Sie einer sind).
+
+[Ende der PATCHES.de]
diff --git a/0.2.1/DOCS/en/PATCH_320.txt b/0.2.1/DOCS/en/PATCH_320.txt
new file mode 100644 (file)
index 0000000..6e10d1a
--- /dev/null
@@ -0,0 +1,16 @@
+README fuer Patch Nr. 320
+=========================
+
+Wenn Sie dieses Patch fehlerfrei nutzen wollen, muessen Sie unbedingt aus dem
+Template "metadata.tpl" die Zeile mit "description" entfernen, da diese seit
+diesem Patch vom Script dynamisch eingefuegt wird.
+
+Die Beschreibung wird derzeit automatisch wie folgt generiert:
+- Mailtausch-Titel (MAIN_TITLE)
+- Titel von what-Datei
+
+Die Generierung erfolgt allerdings nur im Gastbereich, da nur dort
+Suchmaschienen rankommen koennen. In den beiden anderen Menues ist dies
+nicht erforderlich.
+
+[-- ENDE VON PATCH_320.txt --]
diff --git a/0.2.1/DOCS/en/README.txt b/0.2.1/DOCS/en/README.txt
new file mode 100644 (file)
index 0000000..cf8226e
--- /dev/null
@@ -0,0 +1,66 @@
+The installation is kept as easy as possbile (we hope so... ;-)):
+
+- Uncompress the downloaded archive (e.g. with WinZIP or your favourite program)
+  into a new directory on your harddisc. A Directory called 'mxchange-x.x.x'
+  will be created by x.x.x is the current version and the non-free PRO version
+  contains a "pro" directory.
+
+- Upload the full *contents* of the '0.2.1' to your server. Files like
+  AUTHORS.de and so on are not neccessary. Please also include the SQL
+  files in your upload.
+
+- The script is now in installation mode. Just call the script's URL directly
+  like: http:// your server . com / exchange / (without the spaces!!!) and the
+  script will redirect you to the installation routine. You can now chosse an
+  other theme than default by simply adding it to install.php:
+  
+  - install.php?theme=business = Loads theme "Solid-Business"
+  - install.php?theme=desert   = Loads theme "Desert-Storm"
+
+- The installation path (aka. absolute server path) and the installation URL
+  will be auto-detected and on 99% of every installation you don't need to
+  change it. Also the installation routine will keep it's fingers away from the
+  absolute path.
+
+- And for some versions now the URL will also be detect automatically! With a
+  chance up to 99% you also don't need to change this!
+
+- Just follow the instruction in your web browser. If you see some words with
+  only CAPITALS_AND_UNDERLINES then there is no translation available for your
+  selected language.
+
+------------------------------
+- For our english customers: -
+------------------------------
+
+Pre-installation:
+- Set CHMOD 777 on the 'inc' directory (no sub-directories) and CHMOD 644 on
+  inc/config.php
+- Reload the page in your browser and click on the button
+
+Page 1:
+- First check URL if *NO* trailing slash is added and check the absolute path
+  which *MUST* have a trailing slash.
+- Then enter the title of your exchange like: "John's mail promotion service"
+  (without the quotes)
+- Then enter a cool slogan like "The visitors-engine *No. 1* for your
+  website!" (without the quotes)
+- At last enter your valid email address. For example every mail orders will be
+  send to that address.
+
+Page 2:
+- Enter all database stuff: host, database, prefix, login, 2x password
+
+Page 3:
+- Currently skipped!
+
+Page 4:
+- Currently skipped!
+
+Page 5:
+- Several misc settings: Please keep OUTPUT_MODE and FRAMSET_ACTIVE on default
+  or your script won't work!!!
+- If WRITE_FOOTER is switched on, our copyright note is placed on every page. If
+  you switch this option off our copyright note is moved into the "Impressum".
+
+Good luck! :-)
diff --git a/0.2.1/DOCS/en/SECURITY.txt b/0.2.1/DOCS/en/SECURITY.txt
new file mode 100644 (file)
index 0000000..3bee3cc
--- /dev/null
@@ -0,0 +1,179 @@
+Deutschsprachige Informationen zu den Sicherheitsvorkehrungen
+=============================================================
+
+Themenuebersicht:
+-----------------
+
+1. Sicherheitscode beim Bestaetigen der Mails
+2. IP- und E-Mail-Sperre im Anmeldeformular
+3. Modul-Sicherheit
+4. SQL-Injektionen und XSS-Attacken
+5. URL-Sperre
+6. Profilsperre
+7. URL-Filtersystem
+x. Haftbarkeit
+
+--- --- --- --- ---
+
+1. Sicherheitscode beim Bestaetigen der Mails
+---------------------------------------------
+
+Der Sicherheitscode gilt als eine Sicherheitsbarriere gegen Betrueger, die nur
+Punkte ansammeln wollen und das moeglichst ohne die beworbene Seite zu besuchen
+und sich anzusehen. Und genau dafuer ist der Mailtausch ja da, es soll die
+beworbene Seite besucht werden. Auch dieses Script kann natuerlich nicht 100%-ig
+dafuer sorgen, dass die Seite auch tatsaechlich besucht werden. Dazu gibt es
+andere Methoden, die hier den Rahmen der Datei sprengen wuerden.
+
+Aber nun zum eigentlichen Thema zurueck. Wir nehmen erstmal an, der Code haetten
+wir nicht eingebaut.
+
+Die Betrueger benutzen dann ein Programm, dass die URL genau nachbilden kann, die
+aufgerufen wird, wenn die Zeit abgelaufen ist und die Punkte verguetet werden
+(worum es den Fakern geht). Es wird also nicht das Frameset mit der beworbenen
+Seite unten und oben das Zeit-Frame aufgerufen, sondern nur die Gutschrift-Seite.
+
+Ohne Code in der URL und Code im Muster-Bild ist dies kein Problem.
+
+Nehmen wir nun an, wir wuerden den Code im Muster-Bild direkt in die URL
+einbinden, so kann dies auch mit wenigen Aenderungen am Faker-Programm umgangen
+werden.
+
+Wenn JavaScript abgeschaltet wird, geht zwar im Browser nichts mehr, aber das
+Faker-Programm funktioniert immer noch. Es musste also ein besserer Schutz her.
+
+Und hier kommt der Absicherungsmechanismus mit dem sogn. Site-Key und Date-Key
+zur Geltung.
+
+Der Site-Key ist ein von mir zufallsmaessig eingegebener Code. Diesen koennen -
+und in Sachen Sicherheit - und sollten Sie ihn auch aendern. Der Code sollte
+dabei aus Zahlen, Buchstaben und anderen Zeichen bestehen. Diese koennen Sie
+wild durcheinander eingeben. Wollen Sie die doppelten Anfuehrungszeichen
+eingeben, so "escape-n" Sie diese bitte, indem Sie ein \ direkt vor das
+Anfuehrungszeichen setzen. Das sieht dann so aus: \" Dies muss sein, da der
+Site-Key auch in doppelten Anfuehrungszeichen steht und es somit zu
+Scriptfehlern kommt.
+
+Dann gibt des den Date-Key. Dieser ist einfach das aktuelle Datum im
+amerikanischem Format. Auch hier koennen Sie das Format gerne auf deutsch
+umstellen.
+
+Diese beiden Codes stehen in der inc/config.php und koennen nach den oben
+genannten Regeln geaendert werden.
+
+Wird eine Mail bestaetigt so, erzeugt das PHP-Script mailid_top.php in Zeile 229
+per rand() Funktion eine Zufallszahl zwichen 0 und 99999. Diese wird beim Laden
+der Seite mit der Code-Eingabe an die URL dran gehaengt.
+
+Im Script mailid_top.php, Zeile 124 werden die beiden Codes mit dem User-Agent
+(genaue Browserbezeichnung) und der Zufallszahl aus der URL aneinander gehaengt
+und hexdec() codiert. Aus der dann resultierenden Zahl werden so viele Stellen
+nach dem Dezimalpunkt extrahiert, wie viel Sie im Admin-Bereich eingestellt
+haben.
+
+Weil die Zahl aus der URL mit den beiden Keys und dem User-Agent zusammen
+codiert werden, sind diese unterschiedlich und koennen auch beim Abgleich des
+eingegebenen Codes wieder neu generiert werden, da vor dem Ableich nach dem
+selben Muster codiert wird.
+
+Dieses Verfahren haben die Entwickler von PHP-Nuke entwickelt
+(http://www.phpnuke.org) und unterliegt genau wie unsere LITE-Version der GNU
+GPL.
+
+Die PRO-Version wird bald diesbezueglich ein wenig abgeaendet, damit ein evtl.
+Rechtsstreit vorgebeugt ist.
+
+2. IP- und E-Mail-Sperre im Anmeldeformular
+-------------------------------------------
+
+Im Anmeldeformular gibt es eine zeitbegrenzte IP-Sperre. Diese soll verhindern,
+dass der selbe Internet-User sich direkt hintereinander mit unterschiedlichen
+E-Mail-Adressen anmelden kann. Gegen die selbe E-Mail Adresse besteht auch
+weiterhin ein Schutzmechanimus.
+
+Es ist also weder moeglich, sich mit gleicher E-Mail-Adresse, noch innerhalb
+einer einstellbaren Zeitspanne mit unterschiedlichen E-Mail-Adressen anzumelden.
+
+Beide Barrieren koennen Sie im Admin-Bereich veraendern, die Standart-
+Einstellung ist mit einigen Webmastern abgeklaert und sollte sicher genug sein.
+
+3. Modul-Sicherheit
+-------------------
+
+Anfangs habe ich auch hier das Sicherheitssystem von PHP-Nuke
+(http://www.phpnuke.org) uebernommen. Ich merkte aber bald, dass dies beim
+Programmieren sehr mueselig ist und habe mich fuer eine abgewandelte Version
+entschieden. Die Idee, Include-Dateien so abzusichern habe ich aber dennoch von
+PHP-Nuke uebernommen.
+
+Diese Sicherheitsbarriere ist fuer den normalen Besucher nicht sichtbar. Erst
+wenn er versucht, Include-Dateien direkt aufzurufen (inc/config.php
+beispielsweise), so wird eine rote Warnseite angezeigt und der Ablauf des
+Scriptes "stirbt".
+
+Diese Grundsicherheit des Script kann nicht deaktiviert werden (ausser Sie sind
+verrueckt genug und loeschen die Sperren aus jedem Script, selbstverstaendlich ist
+das keine Sicherheit mehr gewaehrt und jeglicher Support-Anspruch verfaellt).
+
+4. SQL-Injektionen und XSS-Attacken
+-----------------------------------
+
+Bis zur Version 0.2.0-pre10 mit Patch-Level 485 und aelter war es fuer einen
+entfernten Angreifer theoretisch moeglich, SQL-Befehle einzuschleusen und auch
+Attacken auf die Variable $PHP_SELF durchzufueheren. Seit Patch 486 und 487
+(laden Sie sich am Besten immer die aktuellsten Patches herunter!) sind nun
+entsprechende Zeilen aus der inc/db/lib-mysql3.php (Funktion SQL_QUERY_ESC)
+entfernt sollten nicht mehr angreifbar sein. Der generierten SQL-Befehl wurde
+vor der Ausfuehrung nochmals "uebersetzt", also alle sicherheitsgefaehrdenen
+Zeichen wieder eingebaut. Zudem existiert im Script
+inc/libs/security_functions.php am Ende des Scriptes ein Mechanismus, der
+XSS-Attacken vereiteln soll (und bis jetzt auch gut getan hat).
+
+5. URL-Sperre
+-------------
+
+Was weniger mit der direkten Sicherheit des Scriptes zu tun hat, sondern eher
+Ihren Mailtausch von Betruegern schuetzen soll, ist die Moeglichkeit, eine
+zeitgesteuerte URL-Sperre einzurichten. Die selbe URL kann somit fuer eine
+einstellbare Zeit nicht mehr beworben werden. Wir empfehlen hier dabei
+mindestens 1 Tag, wenn nicht sogar eher 2 Tage.
+
+Leider ist diese Sperre mit dynamischen URLs leicht umrundbar. Es haelt jedoch
+die Anfaenger fern.
+
+6. Profilsperre
+---------------
+
+Gleich wie die URL-Sperre URLs vor doppelter Bewerbung "schuetzt", so schuetzt
+auch die Profilsperre das Mitgliederprofil vor erneutem Editieren innerhalb einer
+bestimmten Zeit. Zudem arbeiten beide Sperren "Hand-In-Hand", was bedeutet, dass
+sobald ein Mitglied eine Mail gebucht hat, fuer eine gewisse Zeit sein Profil
+nicht mehr aendern kann. Auch diese Sperre gilt den Betruegern, die nach dem
+Versand ihren Empfang auf 0 stellten und vor dem Versand (vor 00:00 Uhr) ihn
+hochstellten, um zu versenden. Folglich konnten die anderen Mitglieder weniger
+empfangsbereite Mitglieder erreichen.
+
+7. URL-Filtersystem
+-------------------
+
+Das neuartige Filtersystem filtert URLs heraus, die nicht den Normungen
+entsprechen. Dies soll zum einem verhindern - wir hatten es ebenfalls in einem
+anderen Mailtausch mehrfach erlebt - dass URLs, wie mailto:adresse@host.de
+beworben werden (oder auch Skype-Adressen). Aber es verhindert auch, dass "boese"
+URLs, die den Server angreifen sollen, in das System legal gelangen und somit
+alle Computer der Mitglieder - oder wenigstens den Computer des Admins angreifen
+koennen (Trojaner).
+
+Das URL-Filtersystem selber basiert auf einer Meta-Sprache, die dann gueltige
+URL-Filter (regulaere Ausdruecke) generiert und diese dann auf die beworbene URL
+anwendet. Das Filtersystem laesst sich nun bald per Internet aktualisieren, was
+das Aktuellhalten dann sehr stark vereinfacht.
+
+Die beworbene URL wird uebrigens vom URL-Lader (Dereferrer) nochmals angewand!
+
+x. Haftbarkeit
+--------------
+
+Querverweis auf die README.de-Datei...
+
+[EOF]
diff --git a/0.2.1/DOCS/en/TEMPLATES.txt b/0.2.1/DOCS/en/TEMPLATES.txt
new file mode 100644 (file)
index 0000000..36843c3
--- /dev/null
@@ -0,0 +1,99 @@
+0. Themenuebersicht
+===================
+
+1. Neuartiges Template-System bei der MXChange-Engine:
+2. Wichtige Aenderung am gesamten Template-System:
+3. Sicherheitsgefaehrende Zeichen quoten
+
+[--- --- --- --- --- --- ---]
+
+1. Neuartiges Template-System bei der MXChange-Engine:
+======================================================
+
+Das neue Template-System umgeht endlich den Umweg mit den normalen Variablen,
+die vom eval()-Befehl ge-eval-t werden (also ausgefuehrt werden). Es koennen
+nun Konstanten direkt eingebunden werden:
+
+Vor und nach der einzubindenen Konstante muss ein {-- bzw. --} als Abschluss
+gesetzt werden. Diese werden von LOAD_TEMPLATE() entsprechend umgewandelt in
+". und ." (Anfuehrungszeichen-Punkt und andersrum).
+
+Die modules.php wierrum sichert die geposteten Daten gegen evaige Angriffe ab
+(beispielsweise das Einbinden der MySQL-Daten), indem es das Dollarzeichen und
+die normalen und geschwungenen Klammern quotet.
+
+Hier ein Beispiel: (Leerstellen nach {-- bzw. vor --} sind nicht noetig!)
+
+_WIRD_NICHT_EINGEBUNDEN {--_ABER_DIESE_KONSTANTE_SCHON--}
+
+Wird Fehler verursachen:
+{--_ABSCHLUSS_FEHLT
+
+oder auch:
+_ANFANG_FEHLT--}
+
+Achten Sie also darauf, dass diese Template-Klammern als Paar auftreten!
+
+[--- --- --- --- --- --- ---]
+
+2. Wichtige Aenderung am gesamten Template-System:
+===================================================
+
+Seit Version v0.2.0-pre4 habe ich etwas dateitechnisches am Template-System
+geaendert:
+
+Alle Dateien im Verzeichnis templates/ und templates/emails/ sind umbenannt
+und in neue Verzeichnisse verschoben.
+
+Ein paar Beispiele:
+
+- templates/guest_header.tpl.de ist nach templates/de/html/guest_header.tpl
+  verschoben worden.
+
+- templates/emails/done-admin.tpl.de ist nach templates/de/emails/done-admin.tpl
+  verschoben worden.
+
+Die Doppelendung der Datei entfaellt also und ist stattdessen als Verzeichnis-
+name realisiert. Damit stehen allen weiteren Sprachen Tuer und Tor offen/
+
+Wenn Sie eine aeltere Version als v0.2.0-pre4 besitzen, so koennen Sie gerne das
+gesamte templates-Verzeichnis (inklusive emails-Verzeichnis) an mich senden und
+ich wandle dann die Dateinamen um.
+
+Verwenden Sie dazu einfach diese Adresse: webmaster@mxchange.org
+
+Da ich hier einfach alles enpacke und nur kurz ein Shell-Script starte, kostet
+diese Umwandlung Ihnen nichts. Selbstverstaendlich gebe ich Ihre Aenderungen
+nicht an Dritte weiter.
+
+[--- --- --- --- --- --- ---]
+
+3. Sicherheitsgefaehrende Zeichen quoten
+=========================================
+
+In modules.php von Zeile 48 bis 73 (veraltet; vielleicht lagern wir diese noch
+aus? hmmm...) befindet sich ein Absicherungsmechanismus. Dieser verhindert, dass
+sicherheitsgefaehrende Zeichen, wie $, (, ) usw. an das Script uebergeben
+werden womit der Angreifer versuchen koennte, die MySQL-Daten beispielsweise
+auszulesen.
+
+Diese werden durch folgende "Templates" ersetzt:
+
+Dollarzeichen = {DOLLAR_TAG}
+Klammer-Auf   = {OPEN_TAG}
+Klammer-Zu    = {CLOSE_TAG}
+Template-Auf  = {OPEN_TEMPLATE} (damit ist {-- gemeint!)
+Template-Zu   = {CLOSE_TEMPLATE} (damit ist --} gemeint!)
+
+Neu sind (v0.0.8 mit neusten Patches):
+Abostrof (')  = {QUOT}
+Prozent (%)   = {PER}
+Semikolon (;) = {SEMI}
+
+Diese "Templates" werden nach dem eval()-Befehl in der LOAD_TEMPLATES()-
+Funktion wieder gegen ihre urspruenglichen Zeichen ausgetauscht (damit diese
+zwar vom Mitglied eingebbar aber vor dem eval()-Befehl abgesichert sind).
+
+Der Slash (/) und der Punkt (.) werden ge-quot-et (\ davor gesetzt!)
+
+[EOF]
diff --git a/0.2.1/DOCS/en/THANK_YOU.txt b/0.2.1/DOCS/en/THANK_YOU.txt
new file mode 100644 (file)
index 0000000..2d7676c
--- /dev/null
@@ -0,0 +1,36 @@
+So here are some bigger or smaller words to people on the world:
+
+Persona:
+- First of all, thanks to mum and dad, I would never see the light of this world
+  without you! :-)
+- My only-one brother for personal/moral support
+- My best-friend "Phoenix" I know him for over 10 years... (URL not allowed to
+  give away!)
+- Linus Torwalds: If you you don't know this guy you really don't know Linux...
+  ;-)
+- Mr. Guenter Werner: Many insider informations which are implementated in this
+  script (like 24h URL- and account-lock)
+- Mr. Joerg Biel: Gives me the hint to add index to several SQL columns
+  (http://www.biel-newmedia.de)
+- Mr. Robert Niedziela: Sends several patches (a lot!) to me. Thank you.
+  (http://www.mcpserver.de; http://www.mc-p.org)
+- Mr. Lars Moehlenbruch: Some nice hints and referral listing script (admin
+  area) (http://www.masterportal24.com)
+- Mr. Michael Dittrich: MyAutoInstaller-Community into text
+  (http://www.oshop.de)
+- Mr. Walter Ochsendorf: Good beta tester! Gives hints for new extensions and
+  improvements (http://www.wo-net.com)
+- Mr. Schmidt: He founds a major bug in theme system! (http://www.simplemail.de)
+
+Websites / programmers / etc.:
+- SF.net: hosting my project files (archives only) http://sourceforge.net
+- The PHP-group: great work! Man, you all rock!!! ;-) http://www.php.net
+- MySQL group: fast and stable database engine http://www.mysql.com
+- GNOME: Midnight Commander for ever! Yeah... http://www.ibiblio.org/mc/
+- Server4You for hosting my project  http://www.server4you.de
+- All webmasters who has installed this script and waiting out for new releases
+- Anyone else I forgot...
+
+Thank you all for supporting me!
+
+Roland Haeder
diff --git a/0.2.1/DOCS/en/TODO.txt b/0.2.1/DOCS/en/TODO.txt
new file mode 100644 (file)
index 0000000..481a7c1
--- /dev/null
@@ -0,0 +1,15 @@
+TODO
+----
+
+[2004-10-14/02:10 pm]:
+
+- Extend the documenation!
+- Complete english language translation
+- Replace SQL_QUERY() command with SQL_QUERY_ESC() commands where ever it is
+  needed to secure SQL queries.
+- Use the abstract function SQL_FREERESULT() wherever we trasnfer massive data
+  from the database to free memory
+- Simplify CSS classes
+- Add more database abstraction layers like ODBC/M$SQL/Oracle
+- Stop using un-free software and join us. :-)
+- Fight against software patents! They are evil!
diff --git a/0.2.1/DOCS/en/UPGRADING.txt b/0.2.1/DOCS/en/UPGRADING.txt
new file mode 100644 (file)
index 0000000..bb937b9
--- /dev/null
@@ -0,0 +1,29 @@
+Upgrades einspielen:
+--------------------
+
+- Sichern Sie sich alle von Ihnen geaenderten CSS-Dateien (oder erzeugen
+  Sie sich ein eigenes Theme (lesen Sie dazu README_themes.de!) und
+  Templates, sowie die config.php ab.
+
+- Laden Sie wie Sie es von der Installation her kennen alle PHP-Scripte,
+  CSS-Dateien und Templates hoch. Lassen Sie aber dabei die Installations-
+  dateien aus (da Sie ja bereits das Script installiert haben und nur
+  updaten wollen.)
+
+- Laden Sie Ihre gesicherten Dateien alle wieder hoch.
+
+- Rufen Sie zum Testen die Eingangsseite (index.php) oder am besten gleich
+  den Admin-Bereich (admin.php) auf. Eventuell aktualisierte Erweiterungen
+  werden dann beruecksichtigt und es werden Ihnen Update-Aufgaben generiert.
+
+- Das Aufrufen und Hochladen der upgrade.php ist seit geraumer Zeit nicht
+  mehr noetig. Die Patches an der Datenbank werden zu einem durch die
+  Erweiterungen selber, aber auch zum anderen durch die Erweiterung
+  sql_patches erledigt
+
+------------------------------------------------------------------------
+- Rufen Sie nicht erneut die install.php auf! Diese ist zwar           -
+- theoretisch gegen ein erneutes Aufrufen abgesichert, Sie sollten es  -
+- aber dennoch nicht ausprobieren, da dies Ihre Daten loeschen kann!   -
+- Entfernen Sie also nach der Installation das Script!                 -
+------------------------------------------------------------------------
diff --git a/0.2.1/DOCS/en/cache/README.txt b/0.2.1/DOCS/en/cache/README.txt
new file mode 100644 (file)
index 0000000..b154de7
--- /dev/null
@@ -0,0 +1,19 @@
+Deutsche README-Datei fuer Caching-System
+=========================================
+
+- Ist bereits die .htaccess-Datei vorhanden setzen Sie die Zugriffsrechte auf
+  mindestens 444 oder 644
+- Ist das Verzeichnis cache bereits vorhanden, setzen Sie nur die Zugriffsrechte
+  auf 777
+
+Falls alles nicht vorhanden ist: (was aber selten vorgekommen ist)
+
+- Legen Sie im inc-Verzeichnis ein Verzeichnis cache an und setzen Sie die
+  Zugriffsrechte auf 777
+- Legen Sie eine Datei .htaccess mit folgender Zeile an:
+
+Deny from all
+
+- Diese Datei bedarf noch weiteren Ausbaus! ;-)
+
+[-- ENDE VON README_cache.de --]
diff --git a/0.2.1/DOCS/en/country/README.txt b/0.2.1/DOCS/en/country/README.txt
new file mode 100644 (file)
index 0000000..24e4f79
--- /dev/null
@@ -0,0 +1,20 @@
+Deutsche README-Datei zur Landescode-Erweiterung
+================================================
+
+Die SQL-Dateien im Verzeichnis DOCS/country haben die folgende Bedeutung:
+
+countries-europe.sql - Nur Europa
+countries-full.sql   - Alle Laender der Welt (oder fast alle?)
+countries-sorted.sql - Alle Laender um Deutschland herum nach oben)
+
+Wobei Deutschland selber nicht in den SQL-Dateien vorhanden ist, da dies
+von der Erweiterung selber mitgebracht wird.
+
+Hinweis:
+
+Die Dateien wurden von Lothar Menges <money@gmx.net> mir zur Verfuegung
+gestellt, bei Fragen wegen der Laendernamen, fragen Sie bitte ihn und nicht
+mich. Auch trotz sorgfaeltiger Pruefung koennen immer noch Fehler enthalten
+sein. Danke!
+
+[-- ENDE VON README.de --]
diff --git a/0.2.1/DOCS/en/country/countries-europe.sql b/0.2.1/DOCS/en/country/countries-europe.sql
new file mode 100644 (file)
index 0000000..f6cc3ad
--- /dev/null
@@ -0,0 +1,36 @@
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y');\r
diff --git a/0.2.1/DOCS/en/country/countries-full.sql b/0.2.1/DOCS/en/country/countries-full.sql
new file mode 100644 (file)
index 0000000..6e9c7ea
--- /dev/null
@@ -0,0 +1,257 @@
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AC','Ascension','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AD','Andorra','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AE','United Arab Emirates','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AF','Afghanistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AG','Antigua and Barbuda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AI','Anguilla','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AL','Albania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AM','Armenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AN','Netherlands Antilles','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AO','Angola','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AQ','Antarctica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AR','Argentina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AS','American Samoa','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AU','Australia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AW','Aruba','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AZ','Azerbaijan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BB','Barbados','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BD','Bangladesh','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BF','Burkina Faso','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BH','Bahrain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BI','Burundi','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BJ','Benin','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BM','Bermuda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BN','Brunei Darussalam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BO','Bolivia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BR','Brazil','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BS','Bahamas','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BT','Bhutan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BV','Bouvet','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BW','Botswana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BY','Belarus','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BZ','Belize','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CA','Canada','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CC','Cocos','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CD','Congo Democratc Repuplic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CF','Central African Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CG','Congo Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CI','Cote D Ivoire','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CK','Cook Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CL','Chile','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CM','Cameroon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CN','China','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CO','Colombia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CR','Costa Rica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CS','Serbia and Montenegro','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CT','Canton and Enderbury','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CU','Cuba','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CV','Cape Verde','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CX','Christmas Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CY','Cyprus','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DJ','Djibuti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DM','Dominica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DO','Dominican Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DZ','Algeria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EC','Ecuador','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EG','Egypt','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EH','Western Sahara','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ER','Eritrea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ET','Ethiopia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FJ','Fiji','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FK','Falkland Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FM','Micronesia Fed. S.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FO','Faroe Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FR','Frabce','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GA','Gabon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GD','Grenada','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GE','Georgia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GF','French Guiana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GG','Guernsey','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GH','Ghana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GI','Gibraltar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GL','Greenland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GM','Gambia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GN','Guinea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GP','Guadeloupe','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GQ','Guinea Equatorial','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GS','South Georgia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GT','Guatemala','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GU','Guam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GW','Guinea-Bissau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GY','Guyana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HK','Hong Kong','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HM','Heard- and MC Donald Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HN','Honduras','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HT','Haiti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ID','Indonesia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IL','Israel','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IM','Isle of Man','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IN','India','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IO','British Indian O.T.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IQ','Iraq','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IR','Iran Islamic Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JE','Jersey Bailwick','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JM','Jamaica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JO','Jordan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JP','Japan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JT','Johnston Atoll','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KE','Kenya','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KG','Kyrgyzstan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KH','Cambodia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KI','Kiribati','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KM','Comoros','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KN','Saint Kitts and  Nevis','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KP','Korea Democratic P. Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KR','Korea Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KW','Kuwait','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KY','Cayman Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KZ','Kazakhstan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LA','Lao People Democratic Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LB','Lebanon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LC','St. Lucia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LK','Sri Lanka','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LR','Liberia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LS','Lesotho','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LT','Lithuania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LV','Latvia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LY','Libyan Arab Jamahiriya','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MA','Morocco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MD','Moldova Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MG','Madagascar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MH','Marshall Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MI','Midway Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MK','Macedonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ML','Mali','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MM','Myanmar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MN','Mongolia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MO','Macau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MP','Northern Mariana Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MQ','Martinique','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MR','Mauritania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MS','Montserat','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MT','Malta','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MU','Mauritius','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MV','Maldives','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MW','Malawi','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MX','Mexico','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MY','Malaysia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MZ','Mozambique','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NA','Namibia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NC','New Caledonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NE','Niger','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NF','Norfolk Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NG','Nigeria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NI','Nicaragua','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NP','Nepal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NQ','Dronning Mauds Land','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NR','Nauru','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NU','Niue','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('OM','Oman','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PA','Panama','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PE','Peru','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PF','French Polynesia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PG','Papua New Guinea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PH','Philippines','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PK','Parkistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PM','St. Pierre and Miquelon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PN','Pitcairn Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PR','Puerto Rico','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Palestian Authority','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Gaza Strip','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','West Bank','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PW','Palau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PY','Paraguay','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('QA','Qatar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RE','Reunion','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RU','Russian Federation','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RW','Rwanda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SA','Saudi Arabia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SB','Solomon Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SC','Seychelles','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SD','Sudan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SG','Singapore','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SH','St. Helena','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SJ','Svalbard and Jan Mayen','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SL','Sierra Leone','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SM','San Marino','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SN','Senegal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SO','Somalia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SR','Suriname','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ST','Sao Tome and Principe','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SV','El Salvador','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SY','Syrian Arab Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SZ','Swaziland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TA','Tahiti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TC','Turks and Caicos Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TD','Chad','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TF','French Southern Ter.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TG','Togo','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TH','Thailand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TJ','Tajikistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TK','Ttokelau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TM','Turkmenistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TN','Tunisia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TO','Tonga','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TP','East Timor','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TT','Trinidad and Tobago','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TV','Tuvalu','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TW','Taiwan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TZ','Tanzania U. Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UA','Ukraine','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UG','Uganda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UM','U.S. Minor Outlying Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('US','United States','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UY','Uruguay','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UZ','Uzbekistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Vatican City State','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Holy See','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VC','St. Vincent and Grenadines','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VE','Venezuela','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VG','Virgin Iland (British)','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VI','Virgin Iland (U.S.)','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VN','Viet Nam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VU','Vanuatu','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WF','Wallis anf Futuna Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WK','Wake Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WS','Samoa West','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YE','Yemen','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YT','Mayotte','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZA','South Africa','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZM','Zambia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZW','Zimbabwe','Y');\r
diff --git a/0.2.1/DOCS/en/country/countries-sorted.sql b/0.2.1/DOCS/en/country/countries-sorted.sql
new file mode 100644 (file)
index 0000000..85c0b1a
--- /dev/null
@@ -0,0 +1,257 @@
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CR','Costa Rica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FR','Frabce','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RU','Russian Federation','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AC','Ascension','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AD','Andorra','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AE','United Arab Emirates','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AF','Afghanistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AG','Antigua and Barbuda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AI','Anguilla','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AL','Albania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AM','Armenia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AN','Netherlands Antilles','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AO','Angola','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AQ','Antarctica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AR','Argentina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AS','American Samoa','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AU','Australia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AW','Aruba','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AZ','Azerbaijan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BB','Barbados','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BD','Bangladesh','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BF','Burkina Faso','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BH','Bahrain','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BI','Burundi','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BJ','Benin','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BM','Bermuda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BN','Brunei Darussalam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BO','Bolivia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BR','Brazil','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BS','Bahamas','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BT','Bhutan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BV','Bouvet','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BW','Botswana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BY','Belarus','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BZ','Belize','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CA','Canada','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CC','Cocos','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CD','Congo Democratc Repuplic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CF','Central African Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CG','Congo Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CI','Cote D Ivoire','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CK','Cook Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CL','Chile','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CM','Cameroon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CN','China','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CO','Colombia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CS','Serbia and Montenegro','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CT','Canton and Enderbury','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CU','Cuba','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CV','Cape Verde','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CX','Christmas Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CY','Cyprus','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DJ','Djibuti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DM','Dominica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DO','Dominican Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DZ','Algeria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EC','Ecuador','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EG','Egypt','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EH','Western Sahara','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ER','Eritrea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ET','Ethiopia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FJ','Fiji','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FK','Falkland Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FM','Micronesia Fed. S.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FO','Faroe Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GA','Gabon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GD','Grenada','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GE','Georgia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GF','French Guiana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GG','Guernsey','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GH','Ghana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GI','Gibraltar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GL','Greenland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GM','Gambia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GN','Guinea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GP','Guadeloupe','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GQ','Guinea Equatorial','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GS','South Georgia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GT','Guatemala','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GU','Guam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GW','Guinea-Bissau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GY','Guyana','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HK','Hong Kong','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HM','Heard- and MC Donald Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HN','Honduras','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HT','Haiti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ID','Indonesia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IL','Israel','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IM','Isle of Man','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IN','India','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IO','British Indian O.T.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IQ','Iraq','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IR','Iran Islamic Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JE','Jersey Bailwick','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JM','Jamaica','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JO','Jordan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JP','Japan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JT','Johnston Atoll','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KE','Kenya','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KG','Kyrgyzstan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KH','Cambodia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KI','Kiribati','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KM','Comoros','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KN','Saint Kitts and  Nevis','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KP','Korea Democratic P. Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KR','Korea Republic','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KW','Kuwait','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KY','Cayman Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KZ','Kazakhstan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LA','Lao People Democratic Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LB','Lebanon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LC','St. Lucia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LK','Sri Lanka','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LR','Liberia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LS','Lesotho','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LT','Lithuania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LV','Latvia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LY','Libyan Arab Jamahiriya','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MA','Morocco','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MD','Moldova Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MG','Madagascar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MH','Marshall Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MI','Midway Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MK','Macedonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ML','Mali','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MM','Myanmar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MN','Mongolia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MO','Macau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MP','Northern Mariana Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MQ','Martinique','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MR','Mauritania','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MS','Montserat','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MT','Malta','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MU','Mauritius','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MV','Maldives','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MW','Malawi','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MX','Mexico','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MY','Malaysia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MZ','Mozambique','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NA','Namibia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NC','New Caledonia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NE','Niger','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NF','Norfolk Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NG','Nigeria','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NI','Nicaragua','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NP','Nepal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NQ','Dronning Mauds Land','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NR','Nauru','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NU','Niue','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('OM','Oman','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PA','Panama','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PE','Peru','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PF','French Polynesia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PG','Papua New Guinea','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PH','Philippines','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PK','Parkistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PM','St. Pierre and Miquelon','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PN','Pitcairn Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PR','Puerto Rico','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Palestian Authority','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Gaza Strip','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','West Bank','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PW','Palau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PY','Paraguay','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('QA','Qatar','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RE','Reunion','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RW','Rwanda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SA','Saudi Arabia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SB','Solomon Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SC','Seychelles','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SD','Sudan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SG','Singapore','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SH','St. Helena','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SJ','Svalbard and Jan Mayen','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SL','Sierra Leone','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SM','San Marino','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SN','Senegal','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SO','Somalia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SR','Suriname','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ST','Sao Tome and Principe','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SV','El Salvador','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SY','Syrian Arab Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SZ','Swaziland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TA','Tahiti','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TC','Turks and Caicos Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TD','Chad','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TF','French Southern Ter.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TG','Togo','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TH','Thailand','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TJ','Tajikistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TK','Ttokelau','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TM','Turkmenistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TN','Tunisia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TO','Tonga','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TP','East Timor','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TT','Trinidad and Tobago','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TV','Tuvalu','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TW','Taiwan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TZ','Tanzania U. Rep.','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UA','Ukraine','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UG','Uganda','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UM','U.S. Minor Outlying Ilands','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('US','United States','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UY','Uruguay','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UZ','Uzbekistan','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Vatican City State','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Holy See','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VC','St. Vincent and Grenadines','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VE','Venezuela','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VG','Virgin Iland (British)','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VI','Virgin Iland (U.S.)','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VN','Viet Nam','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VU','Vanuatu','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WF','Wallis anf Futuna Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WK','Wake Iland','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WS','Samoa West','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YE','Yemen','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YT','Mayotte','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZA','South Africa','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZM','Zambia','Y');\r
+INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZW','Zimbabwe','Y');\r
diff --git a/0.2.1/DOCS/en/doubler/README.txt b/0.2.1/DOCS/en/doubler/README.txt
new file mode 100644 (file)
index 0000000..5a745a0
--- /dev/null
@@ -0,0 +1,23 @@
+Hier ein Beispiel, wie der Verdoppler arbeitet:
+ - 1.000 bis 10.000 Punkte koennen verdoppelte werden.
+ - also 2.0000 bis 20.000 Punkte gibt der Verdoppler raus.
+ - nicht mehr, nicht weniger.
+ - es ist eine prozentuale Gebuehr von 10% (etwas happig, zum besseren
+   Verstaednnis der Rechnung aber okay) eingestellt.
+
+Ein typischer Ablauf:
+1. Mitglied 1 zahlt 1.000 ein und will 2.000 haben
+2. Im Verdoppler landen aber nur 1.000-10% = 900 Punkte
+3. Mitglied 2 zahlt auch 1.000 ein und will auch 2.000 haben
+4. Im Verdoppler landen wieder nur 1.000-10% = 900 Punkte
+5. Das macht somit 1.800 Punkte. reicht nicht fuer Mitglied 1 aus!
+6. Mitglied 3 zahlt auch 1.000 ein und will auch 3.000 haben
+7. Im Verdoppler laden wieder nur 1.000-10% = 900 Punkte
+8. Das macht somit 2.700 Punkte und reicht aus fuer Mitglied 1
+9. Mitglied 1 werden 2.000 Punkte ausbezahlt und im Verdoppler verbleiben 700
+10. Mitglied 4 zahlt .... usw.!
+
+Ihnen als Admin bringen nur die 10% was ein. Die sind futsch/geschreddert und
+somit gibt es immer weniger Punkte im System. Mit Wernis/Klammlose klappt das
+auch. Dann muessen die Mitglieder bei Ihnen die Waehrung einkaufen und Sie
+verdienen etwas dran.
diff --git a/0.2.1/DOCS/en/engine/README.txt b/0.2.1/DOCS/en/engine/README.txt
new file mode 100644 (file)
index 0000000..08f061e
--- /dev/null
@@ -0,0 +1,40 @@
+Deutsche README-Datei fuer die Game-Engine
+==========================================
+
+1. Engine-Modus einstellen
+==========================
+
+Die Game-Engine kann in zwei Modis gesetzt werden: Server- und Client-Modus
+
+--- Server-Modus: ---
+
+- Alle externen Spielescriptes koennen auf die Export-Accounts zugreifen.
+
+- In diesem Modus kann die Engine durchaus einige !!!Gigabytes!!! Traffic
+  generieren. Dies liegt hauptsaechlich daran, dass eben - wenn Sie mehr
+  bekannter geworden sind - viele Spiele von aussen auf sie drauf zugreifen
+  und die Engine mit kleinen Antwort-Paketen antworten muss.
+
+- Nehmen wir an, ein Antwort-Paket ist durchschnittlich 10k gross. So
+  generieren die ersten 300.000 Anfragen "schlappe" 3,7 GB Traffic!
+
+- Diese Last kann keinesfalls ein "normaler" V-Server standhalten und Ihr
+  Hoster wird vorraussichtlich Ihnen im schlimsten Fall kuendigen oder Ihren
+  Server deaktivieren.
+
+- In diesem Modus koennen auch Punkte zwischen dem Export- und dem eigentlichen
+  Mailtausch-Account hin und her transferiert werden.
+
+- Dieser Modus kann auch zum Transferieren von Punkten zwischen zwei
+  Mailtauschs verwendet werden.
+
+--- Client-Modus: ---
+
+- In diesem Modus funktioniert nur das Transferieren von Punkten zwischen dem
+  Export- und dem eigentlichen Mailtausch-Account. Externe Spiele werden mit
+  einer 0 Byte grossen Antwort abgelehnt.
+
+- Die Server-Last ist also deutlich geringer.
+
+- Diesen Modus koennen Sie auch nutzen, um bespielsweise zwischen zwei
+  Mailtauschs Punkte transferieren zu koennen.
diff --git a/0.2.1/DOCS/en/promoter.txt b/0.2.1/DOCS/en/promoter.txt
new file mode 100644 (file)
index 0000000..4630495
--- /dev/null
@@ -0,0 +1,7 @@
+With MXChange you can start a free promotion services. Other webmasters are
+able to join your service and promote their projects over this script. This is
+done by they can order mails (when they have registered) and sending them over
+categories like "Music", "Health", "Computer", "Internet" and so on to other
+members. Other members may want to click on confirmation links within the mails
+to get more points which they can use to promote their own project. This way is
+called an exchange and of course spamming is strictly forbidden.
diff --git a/0.2.1/DOCS/en/rallye/README.txt b/0.2.1/DOCS/en/rallye/README.txt
new file mode 100644 (file)
index 0000000..20fb1c5
--- /dev/null
@@ -0,0 +1,27 @@
+Rallye-Erweiterung
+------------------
+
+- Es kann immer nur eine Rallye zur Zeit laufen (wird aber nur beim Hinzufuegen
+  getestet, beim Editieren muessen Sie pruefen!), mehrere gleichzeitig
+  "ueberfuettert" nur Ihre Mitglieder! ;-)
+
+- Sie koennen beim Hinzufuegen von Rallyes entweder eine kleine Beschreibung
+  (HTML-Code erlaubt) eingeben oder ein Template verknuepfen:
+
+  * Dieses muss sich - wie alle anderen Templates - im Ordner templates/de/html
+    befinden
+  * Der Dateiname muss mit rallye_ anfangen und .tpl aufhoeren.
+  * Das Mittelstueck des Template-Namens sollte nur Buchstaben aus dem US-
+    Alphabet und Unterstriche enthalten und nicht laenger als 255 Zeichen sein.
+
+  Das Beispiel rallye_test.tpl von mir koennen Sie gerne zum Testen verwenden!
+
+- Lassen Sie die Rallye nicht ohne Preise anlaufen, also zuerst deaktiviert
+  (Standardauswahl) hinzufuegen, dann die Preise verknuepfen und schliesslich
+  unter "Rallyes verwalten" die Rallye aktivieren.
+
+- Das "Stechen" (gleiche Anzahl Refs und Punkte, was aber wegen der Punkte
+  selten vorkommt) ist noch nicht implementiert!
+
+- Es werden nur Refs und Punkte aus der ersten Ebene (also direkt geworbene
+  Mitglieder) ausgewertet.
diff --git a/0.2.1/DOCS/en/rewrite/.htaccess b/0.2.1/DOCS/en/rewrite/.htaccess
new file mode 100644 (file)
index 0000000..114ce66
--- /dev/null
@@ -0,0 +1,5 @@
+RewriteEngine  On\r
+\r
+RewriteRule    ^cms/(.*)/wht/(.*)$                             modules.php?module=$1&what=$2                                           [L]\r
+RewriteRule    ^cms/(.*)/act/(.*)$                             modules.php?module=$1&action=$2                                 [L]\r
+RewriteRule    ^cms/(.*)$                                      modules.php?module=$1                                                   [L]\r
diff --git a/0.2.1/DOCS/en/rewrite/README.txt b/0.2.1/DOCS/en/rewrite/README.txt
new file mode 100644 (file)
index 0000000..2c49a4d
--- /dev/null
@@ -0,0 +1,25 @@
+README-Datei zur .htaccess-Datei
+================================
+
+Die in diesem Verzeichnis befindliche .htaccess-Datei muessen Sie evtl. noch
+mit Fehlerbehandlungszeilen erweitern:
+
+ErrorDocument 403 http://www.ihr-server.hier/fehler403.htm
+ErrorDocument 404 http://www.ihr-server.hier/fehler404.htm
+
+Fuegen Sie diese Zeilen am Anfang der .htaccess-Datei ein und passen Sie die
+Adressen an Ihren Server an!
+
+Die nun erweiterte Datei speichern Sie ab und laden Sie diese in das
+Hauptverzeichnis des Mailtausches hoch (also dort, wo sich index.php,
+modules.php usw. befindet).
+
+Wenn Sie beim Aufrufen Ihres Mailtausches Zugriffsfehler bekommen sollten, ist
+meistens die mod_rewrite-Erweiterung von Apache nicht installiert. Lassen Sie
+diese durch den Support Ihres Hosters aktivieren.
+
+Online-Dokumentation dazu gibt es bei Apache:
+
+http://httpd.apache.org/docs/mod/mod_rewrite.html
+
+[-- ENDE DER README-DATEI --]
diff --git a/0.2.1/DOCS/en/rewrite/README_htaccess.de b/0.2.1/DOCS/en/rewrite/README_htaccess.de
new file mode 100644 (file)
index 0000000..2c49a4d
--- /dev/null
@@ -0,0 +1,25 @@
+README-Datei zur .htaccess-Datei
+================================
+
+Die in diesem Verzeichnis befindliche .htaccess-Datei muessen Sie evtl. noch
+mit Fehlerbehandlungszeilen erweitern:
+
+ErrorDocument 403 http://www.ihr-server.hier/fehler403.htm
+ErrorDocument 404 http://www.ihr-server.hier/fehler404.htm
+
+Fuegen Sie diese Zeilen am Anfang der .htaccess-Datei ein und passen Sie die
+Adressen an Ihren Server an!
+
+Die nun erweiterte Datei speichern Sie ab und laden Sie diese in das
+Hauptverzeichnis des Mailtausches hoch (also dort, wo sich index.php,
+modules.php usw. befindet).
+
+Wenn Sie beim Aufrufen Ihres Mailtausches Zugriffsfehler bekommen sollten, ist
+meistens die mod_rewrite-Erweiterung von Apache nicht installiert. Lassen Sie
+diese durch den Support Ihres Hosters aktivieren.
+
+Online-Dokumentation dazu gibt es bei Apache:
+
+http://httpd.apache.org/docs/mod/mod_rewrite.html
+
+[-- ENDE DER README-DATEI --]
diff --git a/0.2.1/DOCS/en/task/README.txt b/0.2.1/DOCS/en/task/README.txt
new file mode 100644 (file)
index 0000000..e7b7947
--- /dev/null
@@ -0,0 +1,6 @@
+Deutsche README-Datei fuer das Task-System
+==========================================
+
+- Sie vermissen im Admin-Bereich die Menuebeschreibungen zu den Hauptmenues?
++ Diese sind nun seit einiger Zeit komplett ausgebaut und werden mit aller
+  Wahrscheinlichkeit auch nicht mehr wiederkommen... Oder vielleicht doch? ;)
diff --git a/0.2.1/DOCS/en/themes/README.txt b/0.2.1/DOCS/en/themes/README.txt
new file mode 100644 (file)
index 0000000..eaac1a9
--- /dev/null
@@ -0,0 +1,64 @@
+Deutsche README-Datei fuer das Theme-System
+===========================================
+
+Diese Doku ist "quick'n'dirty" erstellt, also nicht vollstaendig, sollte aber
+zum Erstellen eigener Themes und Portieren Ihres Designs von aelteren Versionen
+ohne Theme-System (hoffentlich) reichen.
+
+[--- --- --- --- ---]
+
+1. Umsteigen von aelteren Versionen ohne Theme-System
+-----------------------------------------------------
+
+Ich gehe davon aus, dass Sie erstmal das 281'er Patch (in Versionen =>
+0.2.0-pre8 ist es bereits mit enthalten!) eingespielt haben.
+
+Bitte wundern Sie sich also nicht, wenn nicht Ihr Design beim Aufrufen Ihres
+Mailtausches kommt!
+
+Lesen Sie gleich unter 2. weiter!
+
+[--- --- --- --- ---]
+
+2. Erstellen eigener Themes
+---------------------------
+
+Ich nehme mal beispielhaft an, Ihr Mailtausch heisst "XYZ-Mailtausch" (Sie haben
+sich mit Sicherheit einen besseren Namen ausgedacht, als XYZ-Mailtausch...).
+
+Gehen Sie in das Verzeichnis /theme/ und legen Sie dort ein Verzeichnis "xyz"
+(ohne den Anfuehrungszeichen) an. Sie sollten bei der Namensvergabe des
+Verzeichnisses wenn moeglich nur Uni*-kompatible Zeichen verwenden:
+
+a-z und _
+
+Auch sollten Sie keinen Leerschritt verwenden!
+
+Dann kopieren Sie die theme.php aus dem Verzeichnis default in Ihr Verzeichnis
+"xyz", sowie alle Dateien aus /css/ (nicht aus /theme/default/css/ !) und
+/images/ nach /theme/xyz/css/ bzw. /theme/xyz/css/, die alle zu Ihrem Design
+gehoehren sollen.
+
+Dann oeffenen Sie die Datei theme.php aus Ihrem Verzeichnis "xyz" und editieren
+die Daten fuer Ihre Webseite / Namen / EMail-Adresse um. Diese finden Sie
+unterhalb des Kommentarkopfes. Sie heissen wie folgt:
+
+- $THEME_NAME    -  Titel Ihres Design, der in der Auswahlbox erscheinen soll,
+                    nicht laenger als 30 Zeichen! Beispiel "XYZ-Theme"
+
+- $THEME_AUTHOR  -  Nur Ihren vollstaendigen Namen oder Nicknamen (Pseudonym)
+
+- $THEME_EMAIL   - Nur Ihre EMail-Adresse, unter der Sie erreichbar sind.
+                   Beispiel: ihr.name@mein-hoster.de
+
+- $THEME_URL     - Die Homepage-Adresse, unter der Sie erreichbar sind, oder
+                   besser wo Ihr Theme zum Download angeboten wird.
+
+Wichtiges:
+----------
+
+Sie sollten - wenn es geht - das Theme auch unter die GNU GPL stellen, damit es
+zu meinem Hauptscript kompatibel ist. Wieso, beantwortet Ihnen gerne die
+Free Software Foundation: http://www.fsf.org
+
+[ENDE VON README_themes.txt]
diff --git a/0.2.1/admin.php b/0.2.1/admin.php
new file mode 100644 (file)
index 0000000..2320674
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/27/2004 *
+ * ===============                              Last change: 04/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : admin.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Administration area                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Administrationsbereich                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action']))   $GLOBALS['action']      = secureString($_GET['action']);
+if (!empty($_GET['what']))             $GLOBALS['what']        = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "admin"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// Is the script installed?
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Simply redirect... :-)
+       LOAD_URL(URL."/modules.php?module=admin&amp;action=login");
+       // Redirection should be done here
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."/install.php");
+}
+
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/agb.php b/0.2.1/agb.php
new file mode 100644 (file)
index 0000000..a802e0c
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/27/2003 *
+ * ===============                              Last change: 04/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : agb.php                                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Terms Of Usage link                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Allgemeine Geschaeftsbedingungen                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what']))   $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "agb"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// Is the script installed?
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Simply redirect... :-)
+       LOAD_URL(URL."/modules.php?module=index&amp;what=agb");
+       // Redirection should be done here
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."/install.php");
+}
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/beg.php b/0.2.1/beg.php
new file mode 100644 (file)
index 0000000..9d5380c
--- /dev/null
@@ -0,0 +1,256 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/09/2005 *
+ * ===============                              Last change: 01/09/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : beg.php                                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Beg link for members                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bettel-Link fuer Mitglieder                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "beg";
+$GLOBALS['refid']  = 0;
+$CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// Is the script installed?
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Check for userid
+       if (!empty($_GET['uid']))
+       {
+               $uid = 0;
+               if (bigintval($_GET['uid']) != $_GET['uid'])
+               {
+                       if (EXT_IS_ACTIVE("nickname"))
+                       {
+                               // Maybe we have found a nickname?
+                               $result = SQL_QUERY_ESC("SELECT userid, beg_clicks, ref_payout, status, last_online FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' LIMIT 1",
+                                array($_GET['uid']), __FILE__, __LINE__);
+                       }
+                        else
+                       {
+                               // Nickname entered but nickname is not active
+                               $msg = CODE_EXTENSION_PROBLEM;
+                               $uid = -1;
+                               $result = false;
+                       }
+               }
+                else
+               {
+                       // Direct userid
+                       $result = SQL_QUERY_ESC("SELECT userid, beg_clicks, ref_payout, status, last_online FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                        array(bigintval($_GET['uid'])), __FILE__, __LINE__);
+               }
+
+               // Check if locked in so don't pay points
+               $login = false; $status = "failed";
+               if (IS_LOGGED_IN())
+               {
+                       // Logged in user detected!
+                       $login = true;
+               }
+
+               // Check if account was found
+               if ((SQL_NUMROWS($result) == 1) && ($result != false))
+               {
+                       // Found an ID so we simply set it
+                       list($uid, $clicks, $ref_payout, $status, $last) = SQL_FETCHROW($result);
+                       if ($status == "CONFIRMED")
+                       {
+                               // Secure userid
+                               $uid = bigintval($uid);
+
+                               // Calculate beg points
+                               srand((double)microtime() * 10000000000 / time());
+
+                               // Multiply configured values with 100000 and divide with 100000 so we can also handle small values
+                               // If we need more number behind the decimal dot then we just need to increase all these three
+                               // numbers matching to the numbers behind the decimal dot. Simple! ;-)
+                               $POINTS = rand(($CONFIG['beg_points'] * 100000), ($CONFIG['beg_points_max'] * 100000)) / 100000;
+
+                               // Set nickname / userid for the template(s
+                               define('__BEG_UID'   , $_GET['uid']);
+                               define('__BEG_CLICKS', ($clicks + 1));
+                               define('__BEG_BANNER', LOAD_TEMPLATE("beg_banner", true));
+                               define('__BEG_POINTS', TRANSLATE_COMMA($POINTS));
+                       }
+                        else
+                       {
+                               // Other status
+                               $uid = "0";
+                       }
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               if (($uid > 0) && ($CONFIG['beg_uid'] != $uid))
+               {
+                       // Update counter
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET beg_clicks=beg_clicks+1 WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                        array($uid), __FILE__, __LINE__);
+
+                       // Check for last entry for userid w/o IP number
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_beg_ips WHERE (timeout > ".(time() - $CONFIG['beg_timeout'])." OR (timeout > ".(time() - $CONFIG['beg_uid_timeout'])." AND userid=%d)) AND remote_ip='%s' LIMIT 1",
+                        array($uid, getenv('REMOTE_ADDR')), __FILE__, __LINE__);
+                       if ((SQL_NUMROWS($result) == 0) && ($POINTS > 0) && (!$login))
+                       {
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               if (!IS_ADMIN())
+                               {
+                                       // Remember remote address, userid and timestamp for next click
+                                       // but only when there is no admin begging.
+                                       // Admins shall be able to test it!
+                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_beg_ips (userid, remote_ip, timeout) VALUES('%s', '%s', UNIX_TIMESTAMP())",
+                                        array($uid, getenv('REMOTE_ADDR')), __FILE__, __LINE__);
+                               }
+
+                               // Set mode depending on how many mails the member has to confirm
+                               $locked = false;
+                               if (($ref_payout > 0) && ($CONFIG['allow_direct_pay'] == "N")) $locked = true;
+
+                               // Is begging rallye active?
+                               if ($CONFIG['beg_rallye'] == "Y")
+                               {
+                                       // Add points to rallye account
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET beg_points=beg_points+%s WHERE userid=%d LIMIT 1",
+                                        array($POINTS, $uid), __FILE__, __LINE__);
+                               }
+                                else
+                               {
+                                       // Add points to account
+                                       ADD_POINTS_REFSYSTEM($uid, $POINTS, false, "0", $locked, strtolower($CONFIG['beg_mode']));
+                               }
+
+                               // Subtract begged points from member account if the admin has selected one
+                               if ($CONFIG['beg_uid'] > 0)
+                               {
+                                       // Subtract from this account
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+                                        array($POINTS, bigintval($CONFIG['beg_uid'])), __FILE__, __LINE__);
+
+                                       // Update mediadata as well
+                                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                                       {
+                                               // Update database
+                                               MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);
+                                       }
+                               }
+
+                               // Set message
+                               define('__BEG_MSG', LOAD_TEMPLATE("beg_done", true));
+                       }
+                        elseif ($login)
+                       {
+                               // Logged in user found!
+                               define('__BEG_MSG', LOAD_TEMPLATE("beg_login", true));
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+                       }
+                        else
+                       {
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // Clicked received while reload lock is active
+                               define('__BEG_MSG', LOAD_TEMPLATE("beg_failed", true));
+                       }
+
+                       // Include header
+                       require_once(PATH."inc/header.php");
+
+                       // Load final template
+                       LOAD_TEMPLATE("beg_link");
+
+                       // Include footer
+                       require_once(PATH."inc/footer.php");
+               }
+                elseif (($status != "CONFIRMED") && ($status != "failed"))
+               {
+                       // Maybe locked/unconfirmed account?
+                       switch ($status)
+                       {
+                               case "LOCKED"     : $msg = CODE_ID_LOCKED     ; break; // Locked account
+                               case "UNCONFIRMED": $msg = CODE_ID_UNCONFIRMED; break; // Unconfirmed account
+                       }
+               }
+                elseif (($uid == "0") || ($status == "failed"))
+               {
+                       // Inalid or locked account, so let's find out
+                       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' LIMIT 1",
+                        array($_GET['uid']), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Locked account
+                               $msg = CODE_ACCOUNT_LOCKED;
+                       }
+                        else
+                       {
+                               // Invalid nickname! (404)
+                               $msg = CODE_USER_404;
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
+                elseif ($uid = $CONFIG['beg_uid'])
+               {
+                       // Webmaster's ID cannot beg for points!
+                       $msg = CODE_BEG_SAME_AS_OWN;
+               }
+
+               // Reload to index module
+               if ((!empty($msg)) && (!empty($msg))) LOAD_URL(URL."/modules.php?module=index&msg=".$msg);
+       }
+        else
+       {
+               // No userid entered
+               LOAD_URL(URL."/modules.php?module=index");
+       }
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."/install.php");
+}
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/birthday_confirm.php b/0.2.1/birthday_confirm.php
new file mode 100644 (file)
index 0000000..abc3bad
--- /dev/null
@@ -0,0 +1,140 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/03/2004 *
+ * ===============                              Last change: 10/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : birthday_confirm.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Birthday bonus confirmation link                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Geburtstagsgutschrift bestaetigen                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "birthday_confirm"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Script is installed so let's check for his confirmation link...
+       $uid = strip_tags(bigintval($_GET['uid']));
+
+       // Only allow numbers here...
+       $chk = strip_tags(bigintval($_GET['check']));
+
+       // .. only first 32 numbers
+       $chk = substr($chk, 0, 32);
+
+       // Check if link is not clicked so far
+       $result = SQL_QUERY_ESC("SELECT DISTINCT b.points, d.sex, d.surname, d.family, d.status
+FROM "._MYSQL_PREFIX."_user_birthday AS b
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON b.userid=d.userid
+WHERE b.userid=%d AND b.chk_value='%s' LIMIT 1",
+ array($uid, $chk), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Ok, congratulation again! Here's your gift from us...
+               list($GIFT, $salut, $sname, $fname, $status) = SQL_FETCHROW($result);
+               if ($status == "CONFIRMED")
+               {
+                       // Set mode depending on how many mails the member has to confirm
+                       $locked = false;
+                       if (($ref_payout > 0) && ($CONFIG['allow_direct_pay'] == "N")) $locked = true;
+
+                       // Add points to account
+                       ADD_POINTS_REFSYSTEM($uid, $GIFT, false, "0", $locked, strtolower($CONFIG['birthday_mode']));
+
+                       // Remove entry from table
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_birthday WHERE userid=%d LIMIT 1",
+                        array($uid), __FILE__, __LINE__);
+
+                       // Update mediadata if version is 0.0.4 or newer
+                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                       {
+                               // Update database
+                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $GIFT);
+                       }
+
+                       // Transfer data to constants for the template
+                       define('__SALUT', TRANSLATE_SEX($salut));
+                       define('__SNAME', $sname);
+                       define('__FNAME', $fname);
+                       define('__GIFT' , $GIFT);
+
+                       // Load message from template
+                       define('__MSG', LOAD_TEMPLATE("birthday_msg", true));
+               }
+                else
+               {
+                       // Unconfirmed / locked accounts cannot get points
+                       define('__MSG', BIRTHDAY_CANNOT_STATUS_1.TRANSLATE_STATUS($status).BIRTHDAY_CANNOT_STATUS_2);
+               }
+       }
+        else
+       {
+               // Cannot load data!
+               define('__MSG', BIRTHDAY_CANNOT_LOAD_DATA);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Set this because we have no module in URI
+       $GLOBALS['module'] = "birthday_confirm";
+
+       // Include header
+       include(PATH."inc/header.php");
+
+       // Load birthday header template (for your banners, e.g.?)
+       define('__BIRTHDAY_HEADER', LOAD_TEMPLATE("birthday_header", true));
+
+       // Load birthday footer template (for your banners, e.g.?)
+       define('__BIRTHDAY_FOOTER', LOAD_TEMPLATE("birthday_footer", true));
+
+       // Load final template and output it
+       LOAD_TEMPLATE("birthday_confirm");
+
+       // Include footer
+       include(PATH."inc/footer.php");
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."/install.php");
+}
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/click.php b/0.2.1/click.php
new file mode 100644 (file)
index 0000000..8a08363
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/02/2004 *
+ * ===============                              Last change: 06/18/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : click.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Count clicks on a banner and redirect...         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Klicks auf Banner zaehlen und weiterleiten       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "click"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+if (((!empty($_GET['user'])) || (!empty($_GET['reseller']))) && (!empty($_GET['banner']))) {
+       // Update clicks counter...
+       $CLICK = 1;
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_refbanner SET clicks=clicks+1 WHERE id=%d LIMIT 1", array(bigintval($_GET['banner'])), __FILE__, __LINE__);
+       if (SQL_AFFECTEDROWS($link) == 1) {
+               if (!empty($_GET['user'])) {
+                       LOAD_URL(URL."/ref.php?refid=".bigintval($_GET['user']));
+               } else {
+                       LOAD_URL(URL."/shop_reseller.php?reseller=".bigintval($_GET['user']));
+               }
+       }
+       exit();
+} else {
+       // Do nothing for now
+       die();
+}
+//
+?>
diff --git a/0.2.1/confirm.php b/0.2.1/confirm.php
new file mode 100644 (file)
index 0000000..e844c6c
--- /dev/null
@@ -0,0 +1,74 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/13/2003 *
+ * ===============                              Last change: 04/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : confirm.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : Redirection for the confirmation link            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Weiterleitungsscript fuer den Bestaetigungslink  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module to confirm
+$GLOBALS['module'] = "confirm"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// Is the script installed?
+if (defined('mxchange_installed') && (mxchange_installed) && (admin_registered))
+{
+       // Base URL for redirection
+       $URL = URL."/modules.php?module=index&what=confirm&hash=";
+       if (empty($_GET['hash']))
+       {
+               // No refid and we add our refid (don't forget to set $def_refid!)
+               $URL = URL."/modules.php?module=index";
+       }
+        else
+       {
+               // We have an refid here. So we simply add it
+               $URL .= $_GET['hash'];
+       }
+       // Load the URL
+       LOAD_URL($URL);
+       // Redirection should be done here
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."/install.php");
+}
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/css.php b/0.2.1/css.php
new file mode 100644 (file)
index 0000000..cdc3461
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/06/2004 *
+ * ===============                              Last change: 12/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : css.php                                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Image code for multi-purposes                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Code-Bild fuer verschiedene Zwecke               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Deactivate caching system in CSS mode
+define('_OB_CACHING', "old");
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// This is a CSS file loader!
+$CSS = "1"; $GLOBALS['module'] = "css";
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// Set header
+@header("Content-type: text/css");
+
+// Load header
+require_once(PATH."inc/header.php");
+
+// Load CSS code
+require_once(PATH."inc/stylesheet.php");
+
+// Load footer
+require_once(PATH."inc/footer.php");
+
+//
+?>
diff --git a/0.2.1/doubler.php b/0.2.1/doubler.php
new file mode 100644 (file)
index 0000000..a630b2a
--- /dev/null
@@ -0,0 +1,326 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/13/2005 *
+ * ===============                              Last change: 02/13/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : doubler.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : Points doubler                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punkteverdoppler                                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "doubler";
+$GLOBALS['refid'] = 0;
+$CSS = "0";
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// Is the script installed?
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Probe for referral ID
+       if (!empty($_GET['refid'])) $GLOBALS['refid'] = bigintval($_GET['refid']);
+
+       // Probe for nickname extension and if a nickname was supplied by URL
+       $probe_nickname = ((EXT_IS_ACTIVE("nickname")) && (("".round($GLOBALS['refid'])."") != $GLOBALS['refid']));
+       if ($probe_nickname)
+       {
+               // Nickname in URL, so load the ID
+               $result = SQL_QUERY_ESC("SELECT userid, status FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' LIMIT 1",
+                array(bigintval($GLOBALS['refid'])), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Direct userid entered
+               $result = SQL_QUERY_ESC("SELECT userid, status FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array(bigintval($GLOBALS['refid'])), __FILE__, __LINE__);
+       }
+
+       // Load data
+       list($rid, $status_ref) = SQL_FETCHROW($result);
+       $GLOBALS['refid'] = bigintval($rid);
+
+       // Free memory
+       SQL_FREERESULT($result);
+       $uid = 0;
+
+       // If no account was found set default refid and status to CONFIRMED
+       if (empty($GLOBALS['refid'])) { $GLOBALS['refid'] = $CONFIG['def_refid']; $status = "CONFIRMED"; }
+
+       // Begin with doubler script...
+       if (isset($_POST['ok']))
+       {
+               // Secure points (so only integer/double values are allowed
+               $_POST['points'] = bigintval($_POST['points']);
+
+               // Begin with doubling process
+               if ((!empty($_POST['userid'])) && (!empty($_POST['pass'])) && (!empty($_POST['points'])))
+               {
+                       // Probe for nickname extension and if a nickname was entered
+                       $probe_nickname = ((EXT_IS_ACTIVE("nickname")) && (("".round($_POST['userid'])."") != $_POST['userid']));
+                       if ($probe_nickname)
+                       {
+                               // Nickname in URL, so load the ID
+                               $result = SQL_QUERY_ESC("SELECT userid, status, password FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' LIMIT 1",
+                                array($_POST['userid']), __FILE__, __LINE__);
+                       }
+                        else
+                       {
+                               // Direct userid entered
+                               $result = SQL_QUERY_ESC("SELECT userid, status, password FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                array(bigintval($_POST['userid'])), __FILE__, __LINE__);
+                       }
+
+                       // Load data
+                       list($uid, $status, $password) = SQL_FETCHROW($result);
+                       $uid = bigintval($uid);
+
+                       // Free result
+                       SQL_FREERESULT($result);
+
+                       // Remove any dots and unwanted chars from the points
+                       $_POST['points'] = bigintval(round(str_replace(",", ".", $_POST['points'])));
+
+                       // Probe for enough points
+                       $probe_points = (($_POST['points'] >= $CONFIG['doubler_min']) && ($_POST['points'] <= $CONFIG['doubler_max']));
+
+                       // Check all together
+                       if ((!empty($uid)) && ($password == generateHash($_POST['pass'], substr($password, 0, -40))) && ($status == "CONFIRMED") && ($probe_points))
+                       {
+                               // Nickname resolved to a unique userid or direct userid entered by the member
+                               $DOUBLER_UID = $uid;
+
+                               // Calulcate points
+                               $POINTS = GET_TOTAL_DATA($uid, "user_points", "points") - GET_TOTAL_DATA($uid, "user_data", "used_points");
+
+                               // So let's continue with probing his points amount
+                               if (($POINTS - $CONFIG['doubler_left'] - $_POST['points'] * $CONFIG['doubler_charge']) >= 0)
+                               {
+                                       // Enough points are left so let's continue with the doubling process
+                                       // Create doubling "account" width *DOUBLED* points
+                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_doubler (userid, refid, points, remote_ip, timemark, completed, is_ref) VALUES ('%s', '%s', '%s', '".$_SERVER['REMOTE_ADDR']."', UNIX_TIMESTAMP(), 'N', 'N')",
+                                        array($uid, bigintval($GLOBALS['refid']), bigintval($_POST['points'] * 2)), __FILE__, __LINE__);
+
+                                       // Subtract entered points
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+                                        array($_POST['points'], $uid), __FILE__, __LINE__);
+
+                                       // Update mediadata as well
+                                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                                       {
+                                               // Update database
+                                               MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $_POST['points']);
+                                       }
+
+                                       // Add points to "total payed" including charge
+                                       $points = $_POST['points'] - $_POST['points'] * $CONFIG['doubler_charge'];
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET doubler_points=doubler_points+%s WHERE config='0' LIMIT 1",
+                                        array($points), __FILE__, __LINE__);
+                                       $CONFIG['doubler_points'] += $points;
+
+                                       // Destroy cache
+                                       if (GET_EXT_VERSION("cache") >= "0.1.2")
+                                       {
+                                               if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy();
+                                       }
+
+                                       // Add second line for the referral but only when uid != refid
+                                       if (($GLOBALS['refid'] > 0) && ($GLOBALS['refid'] != $uid))
+                                       {
+                                               // Okay add a refid line and apply refid percents
+                                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_doubler (userid, refid, points, remote_ip, timemark, completed, is_ref) VALUES ('%s', '0', '%s', '".$_SERVER['REMOTE_ADDR']."', UNIX_TIMESTAMP(), 'N', 'Y')",
+                                                array(bigintval($GLOBALS['refid']), bigintval($_POST['points'] * 2 * $CONFIG['doubler_ref'])), __FILE__, __LINE__);
+
+                                               // And that's why we dont't want to you more than one referral level of doubler-points. ^^^
+                                       }
+
+                                       // Update usage counter
+                                       $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET doubler_counter=doubler_counter+1 WHERE config='0' LIMIT 1", __FILE__, __LINE__);
+                                       $CONFIG['doubler_counter']++;
+
+                                       // Set constant
+                                       define('__DOUBLER_MSG', LOAD_TEMPLATE("doubler_reflink", true, $_POST['userid']));
+                               }
+                                else
+                               {
+                                       // Not enougth points left
+                                       define('__ERROR_MSG', DOUBLER_FORM_NO_POINTS_LEFT);
+                               }
+
+                       }
+                        elseif ($status == "CONFIRMED")
+                       {
+                               // Account is unconfirmed!
+                               define('__ERROR_MSG', DOUBLER_FORM_WRONG_PASS);
+                       }
+                        elseif ($status == "UNCONFIRMED")
+                       {
+                               // Account is unconfirmed!
+                               define('__ERROR_MSG', DOUBLER_FORM_STATUS_UNCONFIRMED);
+                       }
+                        elseif ($status == "LOCKED")
+                       {
+                               // Account is locked by admin / holiday!
+                               define('__ERROR_MSG', DOUBLER_FORM_STATUS_LOCKED);
+                       }
+                        elseif ($_POST['points'] < $CONFIG['doubler_min'])
+                       {
+                               // Not enougth points entered
+                               define('__ERROR_MSG', DOUBLER_FORM_POINTS_MIN);
+                       }
+                        elseif ($_POST['points'] > $CONFIG['doubler_max'])
+                       {
+                               // Too much points entered
+                               define('__ERROR_MSG', DOUBLER_FORM_POINTS_MAX);
+                       }
+                        elseif ($probe_nickname)
+                       {
+                               // Cannot resolv nickname -> userid
+                               define('__ERROR_MSG', DOUBLER_FORM_404_NICKNAME);
+                       }
+                        else
+                       {
+                               // Wrong password or account not found
+                               define('__ERROR_MSG', DOUBLER_FORM_404_MEMBER);
+                       }
+               }
+                elseif (empty($_POST['userid']))
+               {
+                       // Login not entered
+                       define('__ERROR_MSG', DOUBLER_FORM_404_LOGIN);
+               }
+                elseif (empty($_POST['pass']))
+               {
+                       // Password not entered
+                       define('__ERROR_MSG', DOUBLER_FORM_404_PASSWORD);
+               }
+                elseif (empty($_POST['points']))
+               {
+                       // points not entered
+                       define('__ERROR_MSG', DOUBLER_FORM_404_POINTS);
+               }
+       }
+
+       // Set messages to nothing
+       if (!defined('__DOUBLER_MSG')) define('__DOUBLER_MSG', "");
+       if (!defined('__ERROR_MSG'))   define('__ERROR_MSG'  , "");
+
+       // Shall I check for points immediately?
+       if ($CONFIG['doubler_send_mode'] == "DIRECT") require(PATH."inc/doubler_send.php");
+
+       // Output header
+       include(PATH."inc/header.php");
+
+       // Banner in text
+       define('__DOUBLER_BANNER', LOAD_TEMPLATE("doubler_banner", true));
+
+       // Load header/footer templates
+       define('__DOUBLER_HEADER', LOAD_TEMPLATE("doubler_header", true));
+       define('__DOUBLER_FOOTER', LOAD_TEMPLATE("doubler_footer", true));
+
+       if (!empty($uid))
+       {
+               // Transfer userid/nickname to constant
+               define('__REFID', $uid);
+       }
+        elseif (!empty($GLOBALS['refid']))
+       {
+               // Transfer userid/nickname to constant
+               define('__REFID', $GLOBALS['refid']);
+       }
+        else
+       {
+               // Transfer default refid to constant
+               define('__REFID', $CONFIG['def_refid']);
+       }
+
+       // Percent values etc.
+       define('__CHARGE_VALUE', TRANSLATE_COMMA($CONFIG['doubler_charge'] * 100));
+       define('__REF_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_ref'] * 100));
+       define('__TOTAL_VALUE' , TRANSLATE_COMMA($CONFIG['doubler_points']));
+       define('__MIN_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_min']));
+       define('__MAX_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_max']));
+
+       // Text "Enter login"
+       if (EXT_IS_ACTIVE("nickname"))
+       {
+               // Choose login/nickname
+               define('DOUBLER_ENTER_LOGIN', GUEST_ENTER_LOGIN_NICKNAME);
+       }
+        else
+       {
+               // Simple login ID
+               define('DOUBLER_ENTER_LOGIN', GUEST_ENTER_LOGIN);
+       }
+
+       // Which mail-send-mode did the admin setup?
+       switch ($CONFIG['doubler_send_mode'])
+       {
+       case "DIRECT":
+               define('DOUBLER_PAYOUT_TIME', DOUBLER_PAYOUT_TIME_DIRECT);
+               break;
+
+       case "RESET":
+               define('DOUBLER_PAYOUT_TIME', DOUBLER_PAYOUT_TIME_RESET);
+               break;
+       }
+
+       // Generate table with already payed out doubles
+       define('__DOUBLER_PAYOUT_HISTORY', DOUBLER_GENERATE_TABLE("0", "Y", "N", "DESC"));
+
+       // Generate timemark
+       define('__TIMEOUT_MARK', CREATE_FANCY_TIME($CONFIG['doubler_timeout']));
+
+       // Usage counter
+       define('__DOUBLER_COUNTER', $CONFIG['doubler_counter']);
+
+       // Points left to doubler
+       define('__LEFT_VALUE', TRANSLATE_COMMA(DOUBLER_GET_TOTAL_POINTS_LEFT()));
+
+       // Output neccessary form for this
+       LOAD_TEMPLATE("doubler_index");
+
+       // Output footer
+       include(PATH."inc/footer.php");
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."/install.php");
+}
+
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/img.php b/0.2.1/img.php
new file mode 100644 (file)
index 0000000..94878c1
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/12/2003 *
+ * ===============                              Last change: 10/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : img.php                                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Image code for multi-purposes                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Code-Bild fuer verschiedene Zwecke               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "img"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       if (!empty($_GET['code']))
+       {
+               // Generate image
+               GENERATE_IMAGE(bigintval($_GET['code']));
+       }
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL("install.php");
+}
+
+// Really all done here... ;-)
+die();
+
+//
+?>
diff --git a/0.2.1/inc/.htaccess b/0.2.1/inc/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/.secret/.a37fde8c5ab1752c8dd327eb8b32b7dadd936de52b0e5c2d0 b/0.2.1/inc/.secret/.a37fde8c5ab1752c8dd327eb8b32b7dadd936de52b0e5c2d0
new file mode 100644 (file)
index 0000000..503c23d
--- /dev/null
@@ -0,0 +1 @@
+8df386b9d36be1fd48c3a4958260e072194a87e9e9
\ No newline at end of file
diff --git a/0.2.1/inc/.secret/.deba26cfafe1cb6cc264c05daaee48d821c4c2d5e0d7c6aa8 b/0.2.1/inc/.secret/.deba26cfafe1cb6cc264c05daaee48d821c4c2d5e0d7c6aa8
new file mode 100644 (file)
index 0000000..ec121e8
--- /dev/null
@@ -0,0 +1 @@
+3b742878f776b62d0b85d4e490712b3616f7ecf27
\ No newline at end of file
diff --git a/0.2.1/inc/.secret/.htaccess b/0.2.1/inc/.secret/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/autopurge.php b/0.2.1/inc/autopurge.php
new file mode 100644 (file)
index 0000000..52ac704
--- /dev/null
@@ -0,0 +1,450 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/29/2004 *
+ * ===============                              Last change: 11/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : autopurge.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Automatical purging of outdated mail links       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auto-Loeschung von veralteten Mail-Links         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+if (($CONFIG['auto_purge_active'] == "Y") && ($CONFIG['auto_purge'] > 0))
+{
+       // First calculate the timestamp
+       if (function_exists('CREATE_TIME_SELECTIONS'))
+       {
+               $PURGE = time() - $CONFIG['auto_purge'];
+       }
+        else
+       {
+               $PURGE = time() - $CONFIG['auto_purge'] * 24 * 60 * 60;
+       }
+
+       // Init variables
+       $admin_points = "0";
+
+       // Then check for outdated mail order. We don't delete them just the confirmation links will be deleted.
+       $result = SQL_QUERY_ESC("SELECT s.id, s.userid, s.pool_id, t.price
+FROM "._MYSQL_PREFIX."_user_stats AS s
+LEFT JOIN "._MYSQL_PREFIX."_payments AS t
+ON s.payment_id=t.id
+WHERE s.timestamp_ordered <= %s ORDER BY s.userid",
+        array(bigintval($PURGE)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Start deleting procedure
+               $uid = "0"; $points = "0";
+               while(list($mid, $sender, $pool, $price) = SQL_FETCHROW($result))
+               {
+                       // Check if confirmation links are purged or not
+                       $result_links = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d LIMIT 1",
+                        array(bigintval($mid)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result_links) == 1)
+                       {
+                               // Free memory
+                               SQL_FREERESULT($result_links);
+
+                               // At least one link was found, enougth to pay back the points
+                               if (($uid != $sender) && ($uid > 0) && ($points > 0))
+                               {
+                                       // Directly add points back to senders account
+                                       AUTOPURGE_ADD_POINTS($uid, $points);
+                                       $points = "0";
+                               }
+                               // Add points
+                               $uid = $sender; $points += $price; $admin_points += $price;
+
+                               // Remove confirmation links from queue
+                               $result_del = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d",
+                                array(bigintval($mid)), __FILE__, __LINE__);
+
+                               // Update status of order
+                               $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='DELETED' WHERE id=%d LIMIT 1",
+                                array(bigintval($pool)), __FILE__, __LINE__);
+                       }
+               }
+
+               // Add last points to last user account
+               if ($points > 0) AUTOPURGE_ADD_POINTS($uid, $points);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Is the 'bonus' extension installed and activated?
+       if (EXT_IS_ACTIVE("bonus", true))
+       {
+               // Check for bonus campaigns
+               $result = SQL_QUERY_ESC("SELECT id, points FROM "._MYSQL_PREFIX."_bonus WHERE data_type='SEND' AND timestamp <= %s ORDER BY id",
+                array(bigintval($PURGE)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) > 0)
+               {
+                       // Start deleting procedure
+                       $points = "0";
+                       while (list($bid, $price) = SQL_FETCHROW($result))
+                       {
+                               // Check if confirmation links are purged or not
+                               $result_links = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%d",
+                                array(bigintval($bid)), __FILE__, __LINE__);
+                               if (SQL_NUMROWS($result_links) > 0)
+                               {
+                                       // At least one link was found, enougth to pay back the points
+                                       $points += $price * SQL_NUMROWS($result_links);
+
+                                       // Free memory
+                                       SQL_FREERESULT($result_links);
+
+                                       // Remove confirmation links from queue
+                                       $result_del = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%d",
+                                        array(bigintval($bid)), __FILE__, __LINE__);
+
+                                       // Update status of order
+                                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='DELETED' WHERE id=%d LIMIT 1",
+                                        array(bigintval($bid)), __FILE__, __LINE__);
+                               }
+                       }
+
+                       // Add points to jackpot
+                       ADD_JACKPOT($points);
+
+                       // Add points for the admin
+                       $admin_points += $points;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+
+       // Add points from deleted accounts to jackpot, but here just add to notify mail
+       if ($admin_points > 0)
+       {
+               // Send mail to admin
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_SUBJECT, "admin_autopurge_points", TRANSLATE_COMMA($points), "0");
+               }
+                else
+               {
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_points", TRANSLATE_COMMA($points), "0");
+                       SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_SUBJECT, $msg);
+               }
+       }
+}
+
+// Shall I look for inactive accounts and autopurge inactive accounts?
+if ($CONFIG['ap_inactive'] == "Y")
+{
+       // Ok, let's have a look...
+       $since = bigintval(time() - $CONFIG['ap_in_since']);
+       $EXCLUDE_LIST = " AND d.userid != c.def_refid";
+
+       // Check for more extensions
+       if (EXT_IS_ACTIVE("beg"))     $EXCLUDE_LIST .= " AND d.userid != c.beg_uid";
+       if (EXT_IS_ACTIVE("bonus"))   $EXCLUDE_LIST .= " AND d.userid != c.bonus_uid";
+       if (EXT_IS_ACTIVE("doubler")) $EXCLUDE_LIST .= " AND d.userid != c.doubler_uid";
+
+       // Check for new holiday extension
+       if (GET_EXT_VERSION("holiday") >= "0.1.3")
+       {
+               $EXCLUDE_LIST .= " AND d.holiday_active = 'N'";
+       }
+
+       // Check for all accounts
+       $result_inactive = SQL_QUERY_ESC("SELECT DISTINCT d.userid, d.email, d.last_online
+FROM "._MYSQL_PREFIX."_user_data AS d, "._MYSQL_PREFIX."_config AS c
+WHERE d.status='CONFIRMED' AND d.joined < %s AND d.last_online < %s AND d.ap_notified < %s
+".$EXCLUDE_LIST."
+ORDER BY d.userid", array($since, $since, $since), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result_inactive) > 0)
+       {
+               // Prepare variables and constants...
+               $UIDs = "";
+               define('__INACTIVE_SINCE', ($CONFIG['ap_in_since'] / 60 / 60));
+               define('__INACTIVE_TIME' , ($CONFIG['ap_in_time']  / 60 / 60));
+
+               // Mark found accounts as inactive and send an email
+               while(list($uid, $email, $last) = SQL_FETCHROW($result_inactive))
+               {
+                       // Remember userids for the admin
+                       $UIDs .= $uid.", ";
+
+                       // Get date/time from timestamp
+                       $last = MAKE_DATETIME($last, "0");
+
+                       // Load mail template
+                       $msg = LOAD_EMAIL_TEMPLATE("member_autopurge_inactive", $last, bigintval($uid));
+                       SEND_EMAIL($email, AUTOPURGE_MEMBER_INACTIVE_SUBJECT, $msg);
+
+                       // Update this account
+                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET ap_notified=UNIX_TIMESTAMP() WHERE userid=%d LIMIT 1",
+                        array(bigintval($uid)), __FILE__, __LINE__);
+               }
+
+               // Remove last comma
+               $UIDs = str_replace(", ", "\n", substr($UIDs, 0, -2));
+
+               // Send mail notification to admin
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_INACTIVE_SUBJECT, "admin_autopurge_inactive", $UIDs, "");
+               }
+                else
+               {
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_inactive", $UIDs, "");
+                       SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_INACTIVE_SUBJECT, $msg);
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_inactive);
+
+       // Now let's have a look for inactive accounts we want to delete we newly use the same exclude list
+       // here for e.g. excluding holiday users
+       $time = bigintval(time() - $CONFIG['ap_in_time']);
+       $result_inactive = SQL_QUERY_ESC("SELECT d.userid, d.email, d.last_online
+FROM "._MYSQL_PREFIX."_user_data AS d, "._MYSQL_PREFIX."_config AS c
+WHERE status='CONFIRMED' AND joined < %s AND last_online< %s AND ap_notified < %s
+".$EXCLUDE_LIST."
+ORDER BY userid",
+        array($since, $since, $time), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_inactive) > 0)
+       {
+               // Prepare variable...
+               $UIDs = "";
+
+               // Delete inactive accounts
+               while (list($uid, $email, $last) = SQL_FETCHROW($result_inactive))
+               {
+                       // Remember userids for the admin
+                       $UIDs .= $uid.", ";
+
+                       // Get date/time from timestamp
+                       $last = MAKE_DATETIME($last, "0");
+
+                       // Finnaly delete this inactive account
+                       DELETE_USER_ACCOUNT(bigintval($uid), LOAD_EMAIL_TEMPLATE("member_autopurge_delete", $last, ""));
+               }
+
+               // Remove last comma
+               $UIDs = str_replace(", ", "\n", substr($UIDs, 0, -2));
+
+               // Send mail notification to admin
+               if ($CONFIG['ap_un_mail'] == "Y")
+               {
+                       if (GET_EXT_VERSION("admins") >= "0.4.1")
+                       {
+                               SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_DELETE_SUBJECT, "admin_autopurge_delete", $UIDs, "");
+                       }
+                        else
+                       {
+                               $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_delete", $UIDs, "");
+                               SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_DELETE_SUBJECT, $msg);
+                       }
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_inactive);
+}
+
+// Shall I auto-purge unconfirmed accounts?
+if ($CONFIG['ap_unconfirmed'] == "Y")
+{
+       // Init variables and find unconfirmed accounts which I shall auto-purge
+       $time = bigintval(time() - $CONFIG['ap_un_time']);
+       $result_uncon = SQL_QUERY_ESC("SELECT userid, email, joined FROM "._MYSQL_PREFIX."_user_data WHERE status='UNCONFIRMED' AND joined < %s ORDER BY userid",
+        array($time), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_uncon) > 0)
+       {
+               // Prepare variable...
+               $UIDs = "";
+               define('__UNCONFIRMED_TIME' , ($CONFIG['ap_un_time']  / 60 / 60));
+
+               // Delete inactive accounts
+               while (list($uid, $email, $joined) = SQL_FETCHROW($result_uncon))
+               {
+                       // Remember userids for the admin
+                       $UIDs .= $uid.", ";
+
+                       // Get date/time from timestamp
+                       $joined = MAKE_DATETIME($joined, "0");
+
+                       // Finnaly delete this inactive account
+                       DELETE_USER_ACCOUNT($uid, LOAD_EMAIL_TEMPLATE("member_autopurge_unconfirmed", $joined, ""));
+               }
+
+               // Remove last comma
+               $UIDs = str_replace(", ", "\n", substr($UIDs, 0, -2));
+
+               // Send mail notification to admin
+               if ($CONFIG['ap_un_mail'] == "Y")
+               {
+                       if (GET_EXT_VERSION("admins") >= "0.4.1")
+                       {
+                               SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_UNCONFIRMED_SUBJECT, "admin_autopurge_unconfirmed", $UIDs, "");
+                       }
+                        else
+                       {
+                               $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_unconfirmed", $UIDs, "");
+                               SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_UNCONFIRMED_SUBJECT, $msg);
+                       }
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_uncon);
+}
+
+// Check version (must be > 0.0)
+if ((GET_EXT_VERSION("task") > "0.0") && ($CONFIG['ap_tasks'] == "Y"))
+{
+       // Purge deleted tasks (no notification to admin)
+       $since = bigintval(time() - $CONFIG['ap_tasks_time']);
+       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE status='DELETED' AND task_created <= %s",
+        array($since), __FILE__, __LINE__);
+       $DELETED = SQL_AFFECTEDROWS();
+
+       if (($DELETED > 0) && ($CONFIG['ap_tasks_mail'] == "Y"))
+       {
+               // Send out email to admin
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_TASKS_SUBJECT, "admin_autopurge_tsks", $DELETED, "");
+               }
+                else
+               {
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_tsks", $DELETED, "");
+                       SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_TASKS_SUBJECT, $msg);
+               }
+       }
+}
+
+// Search for mails from deleted members?
+if ($CONFIG['ap_del_mails'])
+{
+       // Okay, let's check for them...
+       $since = bigintval(time() - $CONFIG['ap_dm_timeout']);
+       $result_mails = SQL_QUERY_ESC("SELECT sender FROM "._MYSQL_PREFIX."_pool WHERE data_type='DELETED' AND timestamp <= %s ORDER BY sender",
+        array($since), __FILE__, __LINE__);
+
+       // Reset counter...
+       $DELETED = 0;
+
+       // Do we have "purged" mails?
+       if (SQL_NUMROWS($result_mails) > 0)
+       {
+               // Okay, check for their sender's
+               while(list($sender) = SQL_FETCHROW($result_mails))
+               {
+                       // Check now...
+                       $fount = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", array(bigintval($sender)), __FILE__, __LINE__));
+                       if ($found == 0)
+                       {
+                               // Okay we found some mails!
+                               $result_remove = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_pool WHERE sender=%d",
+                                array(bigintval($sender)), __FILE__, __LINE__);
+                               $DELETED += SQL_AFFECTEDROWS();
+
+                               // Reset query (to prevent possible errors) ...
+                               $since = bigintval(time() - $CONFIG['ap_dm_timeout']);
+                               $result_mails = SQL_QUERY_ESC("SELECT sender FROM "._MYSQL_PREFIX."_pool WHERE data_type='DELETED' AND timestamp <= %s ORDER BY sender",
+                                array($since), __FILE__, __LINE__);
+                       }
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_mails);
+
+       // Now let's check for stats entries as well
+       $since = bigintval(time() - $CONFIG['ap_dm_timeout']);
+       $result_mails = SQL_QUERY_ESC("SELECT sender FROM "._MYSQL_PREFIX."_pool WHERE data_type='DELETED' AND timestamp <= %s ORDER BY sender",
+        array($since), __FILE__, __LINE__);
+
+       // Do we have "purged" mails?
+       if (SQL_NUMROWS($result_mails) > 0)
+       {
+               // Okay, check for their sender's
+               while(list($sender) = SQL_FETCHROW($result_mails))
+               {
+                       // Check now...
+                       $found = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", array(bigintval($sender)), __FILE__, __LINE__));
+                       if ($found == 0)
+                       {
+                               // Okay we found some mails!
+                               $result_remove = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_stats WHERE sender=%d", array(bigintval($sender)), __FILE__, __LINE__);
+                               $DELETED += SQL_AFFECTEDROWS();
+
+                               // Reset query (to prevent possible errors) ...
+                               $since = bigintval(time() - $CONFIG['ap_dm_timeout']);
+                               $result_mails = SQL_QUERY_ESC("SELECT sender FROM "._MYSQL_PREFIX."_user_stats WHERE data_type='DELETED' AND timestamp_send <= %s ORDER BY sender",
+                                array($since), __FILE__, __LINE__);
+                       }
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_mails);
+
+       // Do we have deleted mails and the admin want's to receive a notification
+       if (($DELETED > 0) && ($CONFIG['ap_dm_notify'] == "Y"))
+       {
+               // Send out email to admin
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT, "admin_autopurge_del_mails", $DELETED, "");
+               }
+                else
+               {
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_del_mails", $DELETED, "");
+                       SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT, $msg);
+               }
+       }
+}
+
+if (EXT_IS_ACTIVE("rallye"))
+{
+       // Check expired rallyes (hard-coded 3 days limit for displaying expired rallyes!)
+       require_once(PATH."inc/libs/rallye_functions.php");
+       RALLYE_DELETE_EXPIRED_RALLYES();
+}
+//
+if (EXT_IS_ACTIVE("bonus"))
+{
+       // Check for expired turbo bonus lines
+       require_once(PATH."inc/libs/bonus_functions.php");
+       BONUS_PURGE_EXPIRED_TURBO_BONUS();
+}
+//
+?>
diff --git a/0.2.1/inc/cache/.htaccess b/0.2.1/inc/cache/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/config.php b/0.2.1/inc/config.php
new file mode 100644 (file)
index 0000000..97a49d3
--- /dev/null
@@ -0,0 +1,160 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 04/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : config.php                                       *
+ * -------------------------------------------------------------------- *
+ * Short description : Your configuration data (MySQL)                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ihre Konfigurationsdaten (MySQL)                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY'))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+/************************************************************************
+ *      PLEASE DO NOT EDIT THE COMMENTS! install.php NEEDS THEM!        *
+ ************************************************************************/
+
+if (function_exists('date_default_timezone_set')) {
+       // CFG: TIME-ZONE
+       @date_default_timezone_set("Europe/Berlin");
+}
+
+// Most of these constants are old and deprecated. We don't use them either.
+// You can still feel free to use them in your templates / scripts if you like :-)
+define('VERSION', "v0.2.1");
+define('AUTHOR' , "Roland H&auml;der");
+define('TITLE', "MXChange - Mail Exchange");
+define('COPY', "&copy; 2003 - 2008, by <A href=\"http://www.mxchange.org\" target=\"_blank\" rel=\"external\" title=\"{!TITLE!} {!VERSION!}\">Roland H&auml;der</A>");
+
+// CFG: ERROR_REPORTING
+@error_reporting(0);
+
+// CFG: REGISTER-GLOBALS
+@import_request_variables('');
+
+// CFG: SITE-KEY
+define('SITE_KEY', "gg42ny8-4yng23498-mf423igum-mtu248utn42-mf4839gun43");
+
+// CFG: DATE-KEY
+define('DATE_KEY', date("d-m-Y (l-F-T)", time()));
+
+// CFG: DEFAULT-LANGUAGE
+define('DEFAULT_LANG', "de");
+
+// CFG: NULLPASS-WARNING
+define('warn_no_pass', true);
+
+// CFG: WRITE-FOOTER
+define('WRITE_FOOTER', true);
+
+// CFG: OUTPUT-MODE
+define('OUTPUT_MODE', "render");
+
+// CFG: MAIN_TITLE
+define('MAIN_TITLE', "Your mail-exchanger title");
+
+// CFG: SLOGAN
+define('SLOGAN', "Your cool slogan here");
+
+// Auto-detection...
+$URL = "http://".getenv('SERVER_NAME').dirname($_SERVER['PHP_SELF']);
+while (substr($URL, -1, 1) == "/") { $URL = substr($URL, 0, -1); }
+$PATH = substr(dirname(__FILE__), 0, -3);
+
+// CFG: HOST-URL (without trailing '/' !)
+define('URL', $URL);
+
+// CFG: SERVER-PATH
+define('PATH', $PATH);
+
+// CFG: WEBMASTER
+define('WEBMASTER', "you@some-hoster.tld.invalid");
+
+// CFG: INSTALLED
+define('mxchange_installed', false);
+
+// CFG: ADMIN-SETUP
+define('admin_registered', false);
+
+// CFG: FRAMESET
+define('frameset_active', false);
+
+// CFG: DEBUG-MODE (if enabled all mails will be *displayed* and *not* send!)
+define('DEBUG_MODE', false);
+
+// When we are not installing
+if (!defined('mxchange_installing')) define('mxchange_installing', false);
+
+// Language stuff (default is german)
+require_once(PATH."inc/language.php");
+
+// We need general functions and database stuff here
+require_once(PATH."inc/functions.php");
+require_once(PATH."inc/mysql-manager.php");
+
+// Your MySQL data (we don't like M$ SQL ;-) )
+$MySQL = array(
+       // CFG: MYSQL-HOST
+       'host'     => "localhost",
+       // CFG: MYSQL-DBASE
+       'dbase'    => "db",
+       // CFG: MYSQL-LOGIN
+       'login'    => "user",
+       // CFG: MYSQL-PASSWORD
+       'password' => "pass",
+);
+
+// CFG: MYSQL-PREIFX
+define('_MYSQL_PREFIX', "mxchange");
+
+// CFG: DATABASE-TYPE
+define('_DB_TYPE', "mysql3");
+
+// Lead-Code data
+define('LEAD_CODE_ENABLED', true);
+define('LEAD_EXPIRY_TIME' , (30*24*60*60)); // == 30 days
+
+// SMTP-Subsystem (keep all empty to use legacy mail() command!)
+define('SMTP_HOSTNAME', "");
+define('SMTP_USER'    , "");
+define('SMTP_PASSWORD', "");
+
+// SSL cookies? (enable only if you have SSL, URLs will begin with https://)
+define('SSL_COOKIES', false);
+
+// CFG: BACKLINK (Enable backlink to mxchange.org in footer? rel=external is set!)
+define('ENABLE_BACKLINK', true);
+
+// Connect to the MySQL database...
+require_once(PATH."inc/mysql-connect.php");
+
+//
+?>
diff --git a/0.2.1/inc/databases.php b/0.2.1/inc/databases.php
new file mode 100644 (file)
index 0000000..4e453ed
--- /dev/null
@@ -0,0 +1,129 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 05/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : databases.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Definitions and arrays (hard-coded databases)    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Definitionen und Datenfelder (hart-codertiert)   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// System-wide return codes
+define('CODE_WRONG_PASS'       ,  "1");
+define('CODE_WRONG_ID'         ,  "2");
+define('CODE_ID_LOCKED'        ,  "3");
+define('CODE_ID_UNCONFIRMED'   ,  "4");
+define('CODE_UNKNOWN_STATUS'   ,  "5");
+define('CODE_NO_COOKIES'       ,  "6");
+define('CODE_CNTR_FAILED'      ,  "8");
+define('CODE_LOGOUT_DONE'      ,  "8");
+define('CODE_LOGOUT_FAILED'    ,  "9");
+define('CODE_URL_TLOCK'        , "10");
+define('CODE_URL_FOUND'        , "11");
+define('CODE_OVERLENGTH'       , "12");
+define('CODE_SUBJ_URL'         , "13");
+define('CODE_BLIST_URL'        , "14");
+define('CODE_NO_RECS_LEFT'     , "15");
+define('CODE_INVALID_TAGS'     , "16");
+define('CODE_MORE_POINTS'      , "18");
+define('CODE_COOKIES_DISABLED' , "18");
+define('CODE_DATA_INVALID'     , "19");
+define('CODE_POSSIBLE_INVALID' , "20");
+define('CODE_ACCOUNT_LOCKED'   , "21");
+define('CODE_USER_404'         , "22");
+define('CODE_STATS_404'        , "23");
+define('CODE_ALREADY_CONFIRMED', "24");
+define('CODE_ERROR_MAILID'     , "25");
+define('CODE_EXTENSION_PROBLEM', "26");
+define('CODE_MORE_RECEIVERS1'  , "28");
+define('CODE_MORE_RECEIVERS2'  , "28");
+define('CODE_MORE_RECEIVERS3'  , "29");
+define('CODE_INVALID_URL'      , "30");
+define('CODE_MENU_NOT_VALID'   , "31");
+define('CODE_LOGIN_FAILED'     , "32");
+
+// Full version string: /([0-9]){1}\.([0-9]){1}\.([0-9]){1}(-(alpha|beta|pre|rc([1-3]))([0-9]+))?/
+// If you understand regular expressions ^^^ you may know how I versionize... ;-)
+define('FULL_VERSION', "0.2.1-FINAL");
+
+// Replacement strings
+$REPLACER = array(
+       10 => "%uid%",                  // User-ID
+       11 => "%vorname%",              // Surname
+       12 => "%nachname%",             // Family name
+       13 => "%anrede%",               // Salutation
+);
+//
+// One day
+define('ONE_DAY', 60*60*24);
+
+//
+// Timestamp for yesterday, today ... all at 00:00 am
+define('START_YDAY', MAKE_TIME(0, 0, 0, time() - ONE_DAY));
+define('START_TDAY', MAKE_TIME(0, 0, 0, time()));
+
+$COOKIES = substr(URL, strpos(substr(URL, 8), "/") + 8);
+if ((strpos($COOKIES, "/") == "0") && (strpos(substr(URL, 8), "/") > 0))
+{
+       // Script was installed into a sub directory
+       if (substr($COOKIES, -1) != "/") $COOKIES .= "/";
+}
+ else
+{
+       // No more sub directories added to URL
+       $COOKIES = "/";
+}
+
+// Cookie-Path ( for lame servers... ;-) )
+define('COOKIE_PATH', $COOKIES);
+
+// Base directory for access logfiles
+define('LOGS_BASE', "logs");
+
+// Base directory for usage statistics
+define('USAGE_BASE', "usage");
+
+// Server-URL (DO NOT CHANGE THIS OR YOU CANNOT CHECK FOR UPDATES/EXTENSIONS!)
+define('SERVER_URL', "http://www.mxchange.org");
+
+// This current patch level
+define('CURR_PATCH_LEVEL', "514");
+
+// Take a prime number which is long (if you know a longer one please try it out!)
+define('_PRIME', 591623);
+
+// Calculate with the prime number (for code generation)
+define('_ADD', (_PRIME * _PRIME / (pi() * $CONFIG['code_length'] + 1)));
+
+//
+?>
diff --git a/0.2.1/inc/db/.htaccess b/0.2.1/inc/db/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/db/lib-mysql3.php b/0.2.1/inc/db/lib-mysql3.php
new file mode 100644 (file)
index 0000000..5d2cfd9
--- /dev/null
@@ -0,0 +1,274 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/29/2004 *
+ * ===============                              Last change: 08/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : lib.php                                          *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// SQL queries
+function SQL_QUERY($sql_string, $F, $L, $compile=false)
+{
+       global $link, $CSS, $CONFIG, $OK;
+
+       // Run SQL command
+       $result = @mysql_query($sql_string, $link)
+        or ADD_FATAL($F." (".$L."):".mysql_error()."<BR>
+".MYSQL_QUERY_STRING."<BR>
+".$sql_string);
+
+       if (($CSS != "1") && ($CSS != "-1") && (DEBUG_MODE) && (DEBUG_SQL))
+       {
+               //
+               // Debugging stuff...
+               //
+               $fp = @fopen(PATH."debug.log", 'a') or mxchange_die("Cannot write debug.log!");
+               if (!isset($OK)) {
+                       // Write first entry
+                       fwrite($fp, "Module=".$GLOBALS['module']."\n");
+                       $OK = true;
+               }
+               fwrite($fp, $F."(LINE=".$L."|NUM=".SQL_NUMROWS($result)."|AFFECTED=".SQL_AFFECTEDROWS()."): ".str_replace('\r', '', str_replace('\n', " ", $sql_string))."\n");
+               fclose($fp);
+       }
+
+       // Count DB hits
+       if (!isset($CONFIG['db_hits']))
+       {
+               // Count in dummy variable
+               $CONFIG['db_hits'] = 0;
+       }
+        else
+       {
+               // Count to config array
+               $CONFIG['db_hits']++;
+       }
+       return $result;
+}
+
+// SQL num rows
+function SQL_NUMROWS($result)
+{
+       if ($result != false)
+       {
+               $lines = @mysql_num_rows($result);
+               if (empty($lines)) $lines = "0";
+
+       }
+        else
+       {
+               // No resource given, no lines found!
+               $lines = "0";
+       }
+       return $lines;
+}
+
+// SQL affected rows
+function SQL_AFFECTEDROWS($lnk="x", $F="dummy", $L="dummy")
+{
+       global $link;
+       // $lnk will be ignored for now!
+       $lines = @mysql_affected_rows($link);
+       return $lines;
+}
+
+// SQL fetch row
+function SQL_FETCHROW($result)
+{
+       $DATA = array();
+       $DATA = @mysql_fetch_row($result);
+       return $DATA;
+}
+
+// SQL fetch array
+function SQL_FETCHARRAY($res=false, $nr=0, $remove_numerical=true)
+{
+       // Is a result resource set?
+       if (!$res) return false;
+
+       // Initialize array
+       $row = array();
+
+       // Load row from database
+       $row = @mysql_fetch_array($res);
+
+       // Return only arrays here
+       if (is_array($row))
+       {
+               // Shall we remove numerical data here automatically?
+               if ($remove_numerical)
+               {
+                       // So let's remove all numerical elements to save memory!
+                       $max = count($row);
+                       for ($idx = 0; $idx < ($max / 2); $idx++)
+                       {
+                               // Remove entry
+                               unset($row[$idx]);
+                       }
+               }
+
+               // Return row
+               return $row;
+       }
+        else
+       {
+               // Return a false here...
+               return false;
+       }
+}
+
+// SQL result
+function SQL_RESULT($res, $row, $field)
+{
+       $result = @mysql_result($res, $row, $field);
+       return $result;
+}
+// SQL connect
+function SQL_CONNECT($host, $login, $password, $F, $L)
+{
+       $connect = @mysql_connect($host, $login, $password) or ADD_FATAL($F." (".$L."):".mysql_error());
+       return $connect;
+}
+// SQL select database
+function SQL_SELECT_DB($DB, $link, $F, $L)
+{
+       $DB = @mysql_select_db($DB, $link) or ADD_FATAL($F." (".$L."):".mysql_error());
+       return $DB;
+}
+// SQL close link
+function SQL_CLOSE($link, $F, $L)
+{
+       global $CONFIG, $CACHE, $CFG_CACHE;
+       if ((GET_EXT_VERSION("cache") >= "0.0.7") && (isset($CONFIG['db_hits'])) && (isset($CONFIG['cache_hits'])) && (is_object($CACHE)))
+       {
+               // Update counter for db/cache
+               $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET db_hits='".$CONFIG['db_hits']."', cache_hits='".$CONFIG['cache_hits']."' WHERE config='0' LIMIT 1", __FILE__, __LINE__);
+
+               // Update cache here
+               if (GET_EXT_VERSION("cache") >= "0.1.2")
+               {
+                       if ($CACHE->cache_file("config", true))
+                       {
+                               // Replace data
+                               $CACHE->cache_replace("cache_hits", $CONFIG['cache_hits'], "0", $CFG_CACHE);
+                               $CACHE->cache_replace("db_hits"   , $CONFIG['db_hits']   , "0", $CFG_CACHE);
+                       }
+               }
+       }
+
+       // Close database link
+       $close = @mysql_close($link) or ADD_FATAL($F." (".$L."):".mysql_error());
+       return $close;
+}
+// SQL free result
+function SQL_FREERESULT($result)
+{
+       $res = @mysql_free_result($result);
+       return $res;
+}
+// SQL string escaping
+function SQL_QUERY_ESC($qstring, $data, $file, $line, $run=true, $strip=true)
+{
+       global $link;
+       $eval = "\$query = sprintf(\"".$qstring."\"";
+       foreach ($data as $var)
+       {
+               if (!empty($var))
+               {
+                       if ($strip) {
+                               $eval .= ", SQL_ESCAPE(\"".strip_tags($var)."\")";
+                       } else {
+                               $eval .= ", SQL_ESCAPE(\"".$var."\")";
+                       }
+               }
+                else
+               {
+                       $eval .= ", ''";
+               }
+       }
+       $eval .= ");";
+       //
+       // Debugging
+       //
+       //$fp = fopen(PATH."escape_debug.log", 'a') or mxchange_die("Cannot write debug.log!");
+       //fwrite($fp, $file."(".$line."): ".str_replace('\r', '', str_replace('\n', " ", $eval))."\n");
+       //fclose($fp);
+       eval($eval);
+       if ($run)
+       {
+               // Run SQL query (default)
+               return SQL_QUERY($query, $file, $line);
+       }
+        else
+       {
+               // Return secured string
+               return $query;
+       }
+}
+// Get ID from last INSERT command
+function SQL_INSERTID()
+{
+       return @mysql_insert_id();
+}
+// Escape a string for the database
+function SQL_ESCAPE($str)
+{
+       global $link;
+       if (!is_resource($link)) {
+               // Fall-back to addslashes() when there is no link
+               return addslashes($str);
+       }
+
+       if (function_exists('mysql_real_escape_string')) {
+               // The new and improved version
+               return mysql_real_escape_string($str, $link);
+       } elseif (function_exists('mysql_escape_string')) {
+               // The obsulete function
+               return mysql_escape_string($str, $link);
+       } else {
+               // If nothing else works
+               return addslashes($str);
+       }
+}
+// SELECT query string from table, columns and so on... ;-)
+function SQL_RESULT_FROM_ARRAY ($table, $columns, $idRow, $id) {
+       // Prepare the SQL statement
+       $SQL = "SELECT ".implode(", ", $columns)." FROM "._MYSQL_PREFIX."_".$table." WHERE ".$idRow."=%d LIMIT 1";
+
+       // Return the result
+       return SQL_QUERY_ESC($SQL, array(bigintval($id)), __FILE__, __LINE__);
+}
+//
+?>
diff --git a/0.2.1/inc/db/lib.php b/0.2.1/inc/db/lib.php
new file mode 100644 (file)
index 0000000..6bc4e73
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/31/2004 *
+ * ===============                              Last change: 08/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : lib.php                                          *
+ * -------------------------------------------------------------------- *
+ * Short description : SQL abstraction layer                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : SQL-Typ auswaehlen                               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Select MySQL 3 as default database type
+if (_DB_TYPE == "_DB_TYPE") define('_DB_TYPE', "mysql3");
+
+// Create include file name
+$INC = PATH."inc/db/lib-"._DB_TYPE.".php";
+
+if (file_exists($INC))
+{
+       // Include abstraction layer
+       require_once($INC);
+}
+ else
+{
+       // Bye, bye...
+       die("Cannot load database abstraction layer! R.I.P.");
+}
+
+//
+?>
diff --git a/0.2.1/inc/doubler_send.php b/0.2.1/inc/doubler_send.php
new file mode 100644 (file)
index 0000000..374a8b1
--- /dev/null
@@ -0,0 +1,203 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/16/2005 *
+ * ===============                              Last change: 01/21/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : doubler_send.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Send's out mails for doubled points              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sendet Mails bei vergueteter Verdoppelung aus    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Initialize variables
+$jackpot = "0"; $user = "0";
+
+// Get total points of the doubler itself
+$DOUBLER_POINTS = DOUBLER_GET_TOTAL_POINTS_LEFT();
+if ($DOUBLER_POINTS == 0)
+{
+       // Exit here to prevent some SQL errors (SQL_QUERY_ESC doen't insert zeros! We need to fix this...)
+       return;
+}
+
+// If not currently doubled set it to zero
+unset($_GET['DOUBLER_UID']);
+unset($_POST['DOUBLER_UID']);
+unset($_COOKIE['DOUBLER_UID']);
+if (empty($DOUBLER_UID)) $DOUBLER_UID = "0";
+
+// Check for doubles which we can pay out
+$min = bigintval($CONFIG['doubler_min'] * 2);
+$result_total = SQL_QUERY_ESC("SELECT DISTINCT d.id, d.userid, d.points, d.remote_ip, d.timemark
+FROM "._MYSQL_PREFIX."_doubler AS d
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS u
+ON d.userid=u.userid
+WHERE u.status='CONFIRMED' AND d.points <= %s AND d.points >= %s AND d.completed='N' AND d.is_ref='N'
+ORDER BY d.timemark", array($DOUBLER_POINTS, $min), __FILE__, __LINE__);
+
+// Check for accounts with limitation
+$result_main = SQL_QUERY_ESC("SELECT DISTINCT d.id, d.userid, d.points, d.remote_ip, d.timemark
+FROM "._MYSQL_PREFIX."_doubler AS d
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS u
+ON d.userid=u.userid
+WHERE u.status='CONFIRMED' AND d.points <= %s AND d.points >= %s AND d.completed='N' AND d.is_ref='N'
+ORDER BY d.timemark
+LIMIT %s", array($DOUBLER_POINTS, $min, $CONFIG['doubler_max_sent']), __FILE__, __LINE__);
+
+if (((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == "Y")) || ((SQL_NUMROWS($result_main) == $CONFIG['doubler_group_sent']) && ($CONFIG['doubler_sent_all'] == "N")))
+{
+       // Switch to matching SQL resource
+       $result_load = $result_main;
+       if ((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == "Y")) $result_load = $result_total;
+
+       // At least one account was found
+       while(list($id, $uid, $points, $ip, $time) = SQL_FETCHROW($result_load))
+       {
+               // Only double when points are enougth!
+               if ($DOUBLER_POINTS >= $points)
+               {
+                       // Check for his ref points
+                       $result_ref = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_doubler WHERE refid=%d AND completed='N' AND is_ref='Y'",
+                        array(bigintval($uid)), __FILE__, __LINE__);
+                       list($ref) = SQL_FETCHROW($result_ref);
+
+                       // Free memory
+                       SQL_FREERESULT($result_ref);
+
+                       // Zero refid when empty (might be helpful!)
+                       if (empty($ref)) $ref = 0;
+                       if (($ref > 0) && ($DOUBLER_UID == $uid) && (!empty($ref)))
+                       {
+                               // Referral points found so add them and set line(s) to completed='Y'
+                               $points += $ref;
+                               $result_ref = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE refid=%d AND completed='N' AND is_ref='Y'",
+                                array(bigintval($uid)), __FILE__, __LINE__);
+                       }
+                        else
+                       {
+                               // No referral points found
+                               $ref = "0";
+                       }
+
+                       // Exclude webmaster from doubling...
+                       if ($uid != $CONFIG['doubler_uid'])
+                       {
+                               // Add points
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth='0' LIMIT 1",
+                                array($points, bigintval($uid)), __FILE__, __LINE__);
+
+                               // Update mediadata as well
+                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                               {
+                                       // Update database
+                                       MEDIA_UPDATE_ENTRY(array("total_points"), "add", $points);
+                               }
+                       }
+
+                       // Set entry as "payed"
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+
+                       $OK = false;
+                       // Check for jackpot inclusion in doubling process
+                       if (($jackpot > 0) && ($jackpot >= $points) && ($CONFIG['doubler_jackpot'] == "Y"))
+                       {
+                               // Subtract points from jackpot
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1",
+                                array($points), __FILE__, __LINE__);
+                               $jackpot -= $jackpot;
+
+                               // Okay, done!
+                               $OK = true;
+                       }
+
+                       // Exclude also webmaster's ID in taking points from webmaster's account
+                       if (($user > 0) && ($user >= $points) && (!$OK) && ($CONFIG['doubler_uid'] > 0) && ($uid != $CONFIG['doubler_uid']))
+                       {
+                               // Add points to used points
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid='' LIMIT 1",
+                                array($points, $CONFIG['doubler_uid']), __FILE__, __LINE__);
+
+                               // Update mediadata as well
+                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                               {
+                                       // Update database
+                                       MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points);
+                               }
+
+                               // Okay, done!
+                               $OK = true;
+                       }
+
+                       // Update doubler's account only when others are not updated
+                       if (!$OK)
+                       {
+                               // Add points to used doubler points
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET doubler_used=doubler_used+%s WHERE config='0' LIMIT 1",
+                                array($points), __FILE__, __LINE__);
+
+                               // Destroy cache
+                               if (GET_EXT_VERSION("cache") >= "0.1.2")
+                               {
+                                       if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy();
+                               }
+                       }
+
+                       // Update variables to prevent errors
+                       $CONFIG['doubler_used'] += $points;
+                       $DOUBLER_POINTS -= $points;
+
+                       // Prepare array
+                       $content = array(
+                               // Doubler transmission ID
+                               'id'     => $id,
+                               // Doubled points
+                               'points' => TRANSLATE_COMMA($points),
+                               // Timemark
+                               'when'   => MAKE_DATETIME($time, "2"),
+                               // IP number when the member submitted the doubling form
+                               'ip'     => $ip,
+                       );
+
+                       // Load mail template and send mail away...
+                       $msg = LOAD_EMAIL_TEMPLATE("member_doubler", $content, $uid);
+                       SEND_EMAIL($uid, DOUBLER_MEMBER_SUBJECT, $msg);
+               }
+       }
+}
+
+// Free memory
+SQL_FREERESULT($result_total);
+SQL_FREERESULT($result_main);
+
+//
+?>
diff --git a/0.2.1/inc/extensions.php b/0.2.1/inc/extensions.php
new file mode 100644 (file)
index 0000000..893a5a1
--- /dev/null
@@ -0,0 +1,564 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/25/2004 *
+ * ===============                              Last change: 09/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : extensions.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Extension management                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Erweiterungen-Management                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function EXTENSION_REGISTER($ext_name, $id, $dry_run=false)
+{
+       global $NOTES, $CONFIG, $INC_POOL;
+       // We want to register an extension and registration status is by default "failed" (= false)
+       $EXT_LOAD_MODE = "register"; $ret = false; $SQLs = array();
+       $INC_POOL = array();
+
+       // This shall never do a non-admin user!
+       if (!IS_ADMIN()) return false;
+
+       // Is this extension already installed?
+       if (EXT_IS_ACTIVE($ext_name)) return false;
+
+       // Generate file name
+       $file = sprintf(PATH."inc/extensions/ext-%s.php", $ext_name);
+
+       // Does this extension exists?
+       if (file_exists($file) && is_readable($file))
+       {
+               // Extension was found so we can load it in registration mode
+               require($file);
+
+               // And run possible updates
+               $EXT_LOAD_MODE = "update"; $EXT_UPDATE_DEPENDS = "";
+               foreach ($EXT_VER_HISTORY as $EXT_VER)
+               {
+                       require($file);
+                       if (((GET_EXT_VERSION("sql_patches") != "") && ($CONFIG['verbose_sql'] == "Y")) || (!EXT_IS_ACTIVE("sql_patches")))
+                       {
+                               if (!empty($UPDATE_NOTES))
+                               {
+                                       // Update notes found
+                                       $NOTES .= "<STRONG>v".$EXT_VER.":</STRONG><BR>".$UPDATE_NOTES."<BR><BR>\n";
+                                       $UPDATE_NOTES = "";
+                               }
+                                elseif (($EXT_VER == "0.0") || ($EXT_VER == "0.0.0"))
+                               {
+                                       // Initial release
+                                       $NOTES .= "<STRONG>v".$EXT_VER.":</STRONG><BR>".INITIAL_RELEASE."<BR><BR>\n";
+                               }
+                                else
+                               {
+                                       $NOTES .= "<STRONG>v".$EXT_VER.":</STRONG><BR><I>".NO_UPDATE_NOTES."</I><BR><BR>\n";
+                               }
+                       }
+               }
+
+               // Does this extension depends on an outstanding update of another update?
+               if (!empty($EXT_UPDATE_DEPENDS))
+               {
+                       // Backup SQL commands and clear current
+                       $SQLs2 = $SQLs;  $SQLs = array(); $test = false;
+
+                       // Backup language as well
+                       $LANG_BCK = $EXT_LANG_PREFIX;
+
+                       // Load required extension also in update mode
+                       $file = sprintf(PATH."inc/extensions/ext-%s.php", $EXT_UPDATE_DEPENDS);
+
+                       // Check for required file
+                       if (file_exists($file) && is_readable($file))
+                       {
+                               // File exists so let's load it
+                               $VER_BACKUP = $EXT_VERSION;
+                               require($file);
+                               $EXT_VERSION = $VER_BACKUP;
+
+                               // If versions mismatch update extension first
+                               $ext_ver = GET_EXT_VERSION($EXT_UPDATE_DEPENDS);
+                               if (empty($ext_ver))
+                               {
+                                       // Extension not registered so far so first load task's ID...
+                                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE task_type='EXTENSION' AND subject LIKE '[%s:]%%' LIMIT 1",
+                                        array($EXT_UPDATE_DEPENDS), __FILE__, __LINE__);
+                                       if (SQL_NUMROWS($result) == 1)
+                                       {
+                                               // Task found so load task's ID and register extension...
+                                               list($task) = SQL_FETCHROW($result);
+                                               SQL_FREERESULT($result);
+                                               $test = EXTENSION_REGISTER($EXT_UPDATE_DEPENDS, $task, $dry_run);
+                                       }
+                               }
+                                elseif ($ext_ver != $EXT_VERSION)
+                               {
+                                       // Ok, update this extension now
+                                       EXTENSION_UPDATE(basename($file), $EXT_UPDATE_DEPENDS, $ext_ver, $dry_run);
+                                       $test = true;
+                               }
+                                else
+                               {
+                                       // Nothing to register / update before...
+                                       $test = true;
+                               }
+                       }
+                        else
+                       {
+                               // Required file for update does not exists!
+                               $test = true;
+                               // But this is fine for the first time...
+                       }
+
+                       // Finally restore previous SQLs
+                       $SQLs = $SQLs2; unset($SQLs2);
+                       $EXT_LANG_PREFIX = $LANG_BCK;
+               }
+                else
+               {
+                       // Does not depend on an other extension
+                       $test = true;
+               }
+
+               // Does everthing before wents ok?
+               if ($test)
+               {
+                       // "Dry-run-mode" activated?
+                       if (!$dry_run)
+                       {
+                               // Are there any SQL commands to run?
+                               if (count($SQLs) > 0)
+                               {
+                                       foreach ($SQLs as $sql)
+                                       {
+                                               $sql = trim($sql);
+                                               // Run SQL command
+                                               if (!empty($sql))
+                                               {
+                                                       // Run SQLs without compiling them...
+                                                       $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                                               }
+                                       }
+                               }
+
+                               // Check for added include files
+                               if (count($INC_POOL > 0))
+                               {
+                                       // Loads every include file
+                                       foreach ($INC_POOL as $inc)
+                                       {
+                                               require_once($inc);
+                                       }
+                               }
+
+                               // Register extension
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_extensions (ext_name, ext_lang_file, ext_active, ext_version) VALUES ('%s', '%s', 'N', '%s')",
+                                array($ext_name, $EXT_LANG_PREFIX, $EXT_VERSION), __FILE__, __LINE__);
+
+                               // Update task management
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",
+                                array(bigintval($id)), __FILE__, __LINE__);
+
+                               // In normal mode return a true on success
+                               $ret = true; unset($SQLs);
+                       }
+                        else
+                       {
+                               // Rewrite SQL command to keep { and } inside
+                               foreach ($SQLs as $key=>$sql)
+                               {
+                                       $sql = str_replace('{', "&#123;", str_replace('}', "&#125;", $sql));
+                                       $SQLs[$key] = $sql;
+                               }
+
+                               // In  "dry-run" mode return array with all SQL commands
+                               $ret = $SQLs;
+
+                               // Remove all SQL commands
+                               unset($SQLs);
+                       }
+               }
+                else
+               {
+                       // No, an error occurs while registering extension :-(
+                       $ret = false;
+               }
+       }
+        elseif (($id > 0) && (!empty($ext_name)))
+       {
+               // Remove task from system when id and extension's name is valid
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE id=%d AND status='NEW' LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+       }
+       // Return status code
+       return $ret;
+}
+//
+function EXTENSION_RUN_SQLS($id, $EXT_LOAD_MODE)
+{
+       global $CACHE;
+       // This shall never do a non-admin user!
+       if (!IS_ADMIN()) return false;
+
+       // Get extension's name
+       $result = SQL_QUERY_ESC("SELECT ext_name FROM "._MYSQL_PREFIX."_extensions WHERE id=%d LIMIT 1",
+        array(bigintval($id)), __FILE__, __LINE__);
+       list($ext_name) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+       if (empty($ext_name)) return false;
+
+       // Load extension in detected mode
+       $file = sprintf(PATH."inc/extensions/ext-%s.php", $ext_name); $SQLs = array();
+       if (file_exists($file) && is_readable($file)) require($file);
+       if ((is_array($SQLs) && (sizeof($SQLs) > 0)))
+       {
+               // Run SQL commands...
+               foreach ($SQLs as $sql) {
+                       // Trim spaces away which we don't need
+                       $sql = trim($sql);
+
+                       // Is there still an SQL query?
+                       if (!empty($sql)) {
+                               // Run SQL command
+                               $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                       }
+               }
+
+               // Remove cache file(s) if extension is active
+               if (EXT_IS_ACTIVE("cache")) {
+                       // Remove cache filer
+                       if ($CACHE->cache_file("extensions", true)) $CACHE->cache_destroy();
+                       if ($CACHE->cache_file("mod_reg", true))    $CACHE->cache_destroy();
+                       if ($CACHE->cache_file("config", true))     $CACHE->cache_destroy();
+               }
+       }
+}
+//
+function EXT_IS_ACTIVE ($ext_name, $ignore_admin=false, $ignore_cache=false)
+{
+       global $EXTENSIONS, $CONFIG;
+
+       // Extensions are all inactive during installation
+       if ((!mxchange_installed) || (mxchange_installing) || (empty($ext_name))) return false;
+
+       // Extension's file name will also be checked
+       $FILE = PATH."inc/extensions/ext-".$ext_name.".php";
+       if ((!file_exists($FILE)) && (!is_readable($FILE))) return false;
+       //* DEBUG: */ echo "*".$ext_name."*<BR>";
+
+       // Failed is the default
+       $ret = false;
+       if ((!empty($EXTENSIONS['ext_active'][$ext_name])) && (!$ignore_cache))
+       {
+               // Load from cache
+               $active = $EXTENSIONS['ext_active'][$ext_name];
+
+               // Count cache hits
+               if (isset($CONFIG['cache_hits'])) $CONFIG['cache_hits']++;
+       }
+        else
+       {
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT ext_active FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",
+                array($ext_name), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 0)
+               {
+                       // Extension was not found!
+                       return false;
+               }
+               list($active) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Write cache array
+               $EXTENSIONS['ext_active'][$ext_name] = $active;
+       }
+
+       // Is this extension activated? (For admins we always have active extensions...)
+       $inc = sprintf(PATH."inc/extensions/ext-%s.php", $ext_name);
+       // Shorter way
+       return (
+               (
+                       ($active == "Y") || (
+                               (IS_ADMIN()) &&
+                               (!$ignore_admin) &&
+                               (!empty($active))
+                       )
+               ) && (
+                       file_exists($inc)
+               ) && (
+                       is_readable($inc)
+               )
+       );
+}
+//
+function GET_EXT_VERSION ($ext_name)
+{
+       global $EXTENSIONS, $CONFIG;
+       // Extensions are all inactive during installation
+       if ((!mxchange_installed) || (mxchange_installing)) return "";
+
+       // Is the cache written?
+       if (!empty($EXTENSIONS['ext_version'][$ext_name]))
+       {
+               // Load data from cache
+               $ret = $EXTENSIONS['ext_version'][$ext_name];
+
+               // Count cache hits
+               if (isset($CONFIG['cache_hits'])) $CONFIG['cache_hits']++;
+       }
+        else
+       {
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT ext_version FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",
+                array($ext_name), __FILE__, __LINE__);
+               list($ret) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Set cache
+               $EXTENSIONS['ext_version'][$ext_name] = $ret;
+       }
+       return $ret;
+}
+//
+function EXTENSION_UPDATE($file, $ext, $EXT_VER, $dry_run=false)
+{
+       // This shall never do a non-admin user!
+       global $CACHE, $CONFIG, $NOTES; $SQLs = array();
+       if ((!IS_ADMIN()) || (empty($ext))) return false;
+
+       // Load extension in update mode
+       $EXT_LOAD_MODE = "update"; $EXT_UPDATE_DEPENDS = ""; $NOTES = "";
+       include(PATH."inc/extensions/".$file);
+       if (!empty($EXT_UPDATE_DEPENDS))
+       {
+               // Update another extension first!
+               $test = EXTENSION_UPDATE(("ext-".$EXT_UPDATE_DEPENDS.".php"), $EXT_UPDATE_DEPENDS, GET_EXT_VERSION($EXT_UPDATE_DEPENDS), $dry_run);
+       }
+
+       // Check if version is updated
+       if ((($EXT_VERSION != $EXT_VER) || ($dry_run)) && (is_array($EXT_VER_HISTORY)))
+       {
+               // Search for starting point
+               $start = array_search($EXT_VER, $EXT_VER_HISTORY);
+               $NOTES = "";
+
+               // And load SQL queries in order of version history
+               for ($idx = ($start + 1); $idx < sizeof($EXT_VER_HISTORY); $idx++)
+               {
+                       // Remove old SQLs array to prevent possible bugs
+                       if (!$dry_run) { unset($SQLs); $SQLs = array(); }
+
+                       // Set version
+                       $EXT_VER = $EXT_VER_HISTORY[$idx];
+
+                       // Include again...
+                       include(PATH."inc/extensions/".$file);
+
+                       // Add notes
+                       if ($CONFIG['verbose_sql'] == "Y")
+                       {
+                               $EXT_VER = $EXT_VER_HISTORY[$idx];
+                               if (!empty($UPDATE_NOTES))
+                               {
+                                       // Update notes found
+                                       $NOTES .= "<STRONG>v".$EXT_VER.":</STRONG><BR>".$UPDATE_NOTES."<BR><BR>\n";
+                                       $UPDATE_NOTES = "";
+                               }
+                                elseif ($EXT_VER == "0.0")
+                               {
+                                       // Initial release
+                                       $NOTES .= "<STRONG>v".$EXT_VER.":</STRONG><BR>".INITIAL_RELEASE."<BR><BR>\n";
+                               }
+                                else
+                               {
+                                       $NOTES .= "<STRONG>v".$EXT_VER.":</STRONG><BR><I>".NO_UPDATE_NOTES."</I><BR><BR>\n";
+                               }
+                       }
+
+                       // Run SQLs
+                       if ((is_array($SQLs)) && (!$dry_run))
+                       {
+                               // Run SQL commands
+                               foreach ($SQLs as $sql)
+                               {
+                                       $sql = trim($sql);
+                                       if (!empty($sql))
+                                       {
+                                               // Run SQL command...
+                                               $result = SQL_QUERY($sql, __FILE__, __LINE__, false);
+                                       }
+                               }
+                       } elseif (GET_EXT_VERSION("sql_patches") == "") {
+                               // Remove SQLs if extension is not installed
+                               $SQLs = array();
+                       }
+               }
+
+               if (!$dry_run)
+               {
+                       // In normal mode insert task and update extension's version...
+                       $ext_subj = "[UPDATE-".$ext."-".$EXT_VERSION.":] ".ADMIN_UPDATE_EXT_SUBJ;
+
+                       // Create task
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE subject='%s' LIMIT 1",
+                        array($ext_subj), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 0)
+                       {
+                               // Task not created so it's a brand-new extension which we need to register and create a task for!
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, userid, status, task_type, subject, text, task_created) VALUES ('%s', '0', 'NEW', 'EXTENSION_UPDATE', '%s', '%s', UNIX_TIMESTAMP())",
+                                array(GET_ADMIN_ID(SQL_ESCAPE($_COOKIE['admin_login'])), $ext_subj, addslashes($NOTES)), __FILE__, __LINE__);
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+
+                       // Update extension's version
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_version='%s' WHERE ext_name='%s' LIMIT 1",
+                        array($EXT_VERSION, $ext), __FILE__, __LINE__);
+
+                       // Update cache
+                       if (EXT_IS_ACTIVE("cache"))
+                       {
+                               if ($CACHE->cache_file("extensions", true) == true) $CACHE->cache_destroy();
+                               if ($CACHE->cache_file("config", true) == true)     $CACHE->cache_destroy();
+                               if ($CACHE->cache_file("mod_reg", true) == true)    $CACHE->cache_destroy();
+                       }
+
+                       // Remove array
+                       unset($SQLs);
+               }
+                else
+               {
+                       // In "dry-run" mode return array with SQL commands
+                       return $SQLs;
+               }
+       }
+}
+//
+function EXTENSION_VERBOSE_TABLE($SQLs, $title=ADMIN_SQLS_EXECUTED_ON_REMOVAL, $dashed="", $switch=false, $WIDTH="480")
+{
+       global $CONFIG;
+
+       $S = false; $SW = 2; $i = 1;
+       $OUT = "";
+       if ((is_array($SQLs)) && (GET_EXT_VERSION("sql_patches")) && ($CONFIG['verbose_sql'] == "Y"))
+       {
+               $OUT  = "<DIV align=\"center\">
+<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"".$WIDTH."\" align=\"center\"".$dashed.">
+<TR>
+  <TD colspan=\"2\" align=\"center\" class=\"admin_title bottom2\" height=\"24\">
+    <STRONG>".$title.":</STRONG>
+  </TD>
+</TR>\n";
+               foreach ($SQLs as $idx=>$sql)
+               {
+                       $sql = trim($sql);
+                       if (!empty($sql))
+                       {
+                               $S = true;
+                               $OUT .= "<TR>
+  <TD class=\"switch_sw".(3 - $SW)." bottom2\" style=\"padding-left: 2px\" width=\"30\">".$i.".</TD>
+  <TD class=\"switch_sw".(3 - $SW)." bottom2\" style=\"padding-left: 5px; padding-right: 5px\">
+    ".$sql."
+  </TD>
+</TR>\n";
+                               if ($switch) $SW = 3 - $SW;
+                               $i++;
+                       }
+               }
+       }
+
+       if ((!$S) && (GET_EXT_VERSION("sql_patches")) && ($CONFIG['verbose_sql'] == "Y"))
+       {
+               // No addional SQL commands to run
+               $OUT .= "<TR>
+  <TD colspan=\"2\" align=\"center\" class=\"switch_sw2 bottom2\" height=\"24\">
+    <FONT class=\"admin_note\">".ADMIN_NO_ADDIONAL_SQLS."</FONT>
+  </TD>
+</TR>\n";
+       }
+
+       if (!empty($OUT)) {
+               // Add missing close-table tag
+               $OUT .= "</TABLE>
+</DIV>\n";
+       }
+       return $OUT;
+}
+//
+function GET_EXT_NAME($id)
+{
+       $ret = "";
+       global $EXTENSIONS, $CONFIG;
+       if (!empty($EXTENSIONS['ext_id'][$id]))
+       {
+               // Load from cache
+               $ret = $EXTENSIONS['ext_id'][$id];
+
+               // Count cache hits
+               $CONFIG['cache_hits']++;
+       }
+        else
+       {
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT ext_name FROM "._MYSQL_PREFIX."_extensions WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($ret) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+       return $ret;
+}
+//
+function GET_EXT_ID($name)
+{
+       $ret = "0";
+       global $EXTENSIONS, $CONFIG;
+       if ((isset($EXTENSIONS['ext_id'])) && (is_array($EXTENSIONS['ext_id'])))
+       {
+               // Load from cache
+               $ret = array_search($name, $EXTENSIONS['ext_id']);
+
+               // Count cache hits
+               $CONFIG['cache_hits']++;
+       }
+        else
+       {
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",
+                array($name), __FILE__, __LINE__);
+               list($ret) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+       return $ret;
+}
+//
+?>
diff --git a/0.2.1/inc/extensions/.htaccess b/0.2.1/inc/extensions/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/extensions/ext- b/0.2.1/inc/extensions/ext-
new file mode 100644 (file)
index 0000000..526c2a6
--- /dev/null
@@ -0,0 +1,96 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/25/2004 *
+ * ================                             Last change: 09/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-                                             *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+
+       // Load CSS file?
+       $EXT_CSS = "Y";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               $SQLs[] = "";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       unset($DUMMY);
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "xxx";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-active.php b/0.2.1/inc/extensions/ext-active.php
new file mode 100644 (file)
index 0000000..b385faa
--- /dev/null
@@ -0,0 +1,137 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/03/2004 *
+ * ================                             Last change: 11/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-active.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : "Last active users"                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : "Zuletzt aktiv gewesenen Mitglieder              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.8";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, sort, visible, locked) VALUES ('main', 'active', 'Heute Online', 10, 'N', 'Y')";
+
+       // Load CSS file?
+       $EXT_CSS = "Y";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE what='active' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_active' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='N', locked='N' WHERE what='active' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='N', locked='Y' WHERE what='active' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD active_limit bigint(20) not null default '10'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('setup', 'config_active', 'Aktiv-Liste', 'Einstellungen an der Aktiv-Liste (<STRONG>Heute Online</STRONG> im Gastbereich) vornehmen.', 8)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Aktiven-Liste im Gastbereich ist nun einschr&auml;nkbar.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['active_limit'] = $DUMMY['active_limit']; // Only display X most active users for today
+       unset($DUMMY);
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "active";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-admins.php b/0.2.1/inc/extensions/ext-admins.php
new file mode 100644 (file)
index 0000000..bc2522d
--- /dev/null
@@ -0,0 +1,293 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/11/2004 *
+ * ================                             Last change: 10/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-admins.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Administrator management                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Admin-Accountsverwaltung                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version of this extension
+$EXT_VERSION = "0.6.9";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1", "0.2", "0.3", "0.3.1", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7", "0.4.8", "0.4.9", "0.5.0", "0.5.1", "0.5.2", "0.5.3", "0.5.4", "0.5.5", "0.5.6", "0.5.7", "0.5.8", "0.5.9", "0.6.0", "0.6.1", "0.6.2", "0.6.3", "0.6.4", "0.6.5", "0.6.6", "0.6.7", "0.6.8", "0.6.9");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='admins' LIMIT 1";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('admins', '', 'Admin-Management', 'Administratoren anlegen, l&ouml;schen oder Passwort/E-Mail Adresse &auml;ndern.', '1')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('admins', 'admins_add', 'Admin hinzuf&uuml;gen', 'Neuen Admin-Account anlegen', '0')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('admins', 'admins_edit', 'Admin-Account &auml;ndern', 'Bestehende Admin-Accounts bearbeiten: E-Mail-Adresse, Passwort und/oder Login-Name &auml;ndern.', '1')";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='admins' LIMIT 5";
+       $SQLs[] = "DROP TABLE "._MYSQL_PREFIX."_admins_acls";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP admins_default_acl";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins DROP default_acl";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.2": // SQL queries for v0.2
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('admins', 'admins_contact', 'Admin kontaktieren', 'Kontaktiert einen Admin per Mail oder Nachricht (nur wenn messaging-Erweiterung installiert ist).', '2')";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "F&uuml;gt den Men&uuml;punkt &quot;Admin kontaktieren&quot; hinzu.";
+               break;
+
+       case "0.3": // SQL queries for v0.3
+               // Add admin menu
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('admins', 'config_admins', 'ACL einstellen', 'Richten Sie Zugriffskontrollzeilen f&uuml;r jeden Admin individuell ein, um ihm nur bestimmte Bereiche des Admin-Bereiches zug&auml;nglich zu machen oder zu sperren.', '4')";
+
+               // Which is the default setting when you create a new admin login?
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD admins_default_acl enum('deny', 'allow') not null default 'deny'";
+
+               // Default is deny everything
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins ADD default_acl enum('deny', 'allow') not null default 'deny'";
+
+               // But allow current admin everything (THIS SHALL BE YOU!)
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admins SET default_acl='allow' WHERE login='".$_COOKIE['admin_login']."' LIMIT 1";
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admins_acls";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_admins_acls (
+id bigint(20) not null auto_increment,
+admin_id bigint(20) not null default '0',
+action_menu varchar(255) not null default '',
+what_menu varchar(255) not null default '',
+access_mode enum('deny', 'allow') not null default 'deny',
+KEY (admin_id),
+PRIMARY KEY (id)
+) TYPE=MyISAM";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sogn. ACLs werden hinzugef&uuml;gt: <STRONG>A</STRONG>ccess <STRONG>C</STRONG>ontrol <STRONG>L</STRONG>ines sind zu deutsch Zugriffkontrollzeilen, mit denen Sie einstellen k&ouml;nnen, was welcher Admin machen darf oder nicht.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins_acls MODIFY id bigint(20) not null auto_increment";
+               break;
+
+       case "0.4.0": // SQL queries for v0.4.0
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admins_mails";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_admins_mails (
+id bigint(20) not null auto_increment,
+admin_id bigint(20) not null default '0',
+mail_template varchar(255) not null,
+KEY (admin_id),
+PRIMARY KEY (id)
+) TYPE=MyISAM";
+               $SQLs[] = "INSERT INTO  "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('admins', 'admins_mails', 'Admin-Mails', 'Stellen Sie hier ein, welcher Admin welche Mail erhalten soll. Sie k&ouml;nnen dies (derzeit) jedoch erst, wenn einmal die Mail versendet wurde!', '5')";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Kontrollieren Sie, welche Mails welcher Admin oder alle (admin_id=0) bekommen soll oder im UserLog (admin_id=-1) verzeichnet werden soll. Standartm&auml;ssig wird weiter an alle versendet.";
+               break;
+
+       case "0.4.1": // SQL queries for v0.4.1
+               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admins_mails WHERE mail_template LIKE '% %'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Admins-Mails-Tabelle geleert.";
+
+       case "0.4.4": // SQL queries for v0.4.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "&amp;admin= in &amp;amp;admin= umgewandelt.";
+               break;
+
+       case "0.4.5": // SQL queries for v0.4.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitet auf Cache-System";
+               break;
+
+       case "0.4.6": // SQL queries for v0.4.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit cache-Erweiterung gefixt. Der Admin-Bereich war permanent gesperrt.";
+               break;
+
+       case "0.4.7": // SQL queries for v0.4.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es wurde die Zeitmarke der Cache-Datei admins.cache mit ber&uuml;cksichtigt.";
+               break;
+
+       case "0.4.8": // SQL queries for v0.4.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.4.9": // SQL queries for v0.4.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.5.0": // SQL queries for v0.5.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.5.1": // SQL queries for v0.5.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Cache wird endlich gel&oumlscht, wenn Admin entfernt wird.";
+               break;
+
+       case "0.5.2": // SQL queries for v0.5.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "L&ouml;schen von Admin-Accounts repariert und HTML-Code ausgelagert in Templates.";
+               break;
+
+       case "0.5.3": // SQL queries for v0.5.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.5.4": // SQL queries for v0.5.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.";
+               break;
+
+       case "0.5.5": // SQL queries for v0.5.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkt Admin-Mails korregiert: SQL-Anweisung war fehlerhaft; und HTML-Code in Templates ausgelagert.";
+               break;
+
+       case "0.5.6": // SQL queries for v0.5.6
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='admins_contct' WHERE what='admins_contact' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Namenskonflikt zwischen den Erweiterungen <STRONG>admins</STRONG> und (kommender) <STRONG>contact</STRONG>.";
+               break;
+
+       case "0.5.7": // SQL queries for v0.5.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Links wegen <STRONG>what=admins_contct</STRONG> ge&auml;ndert.";
+               break;
+
+       case "0.5.8": // SQL queries for v0.5.8
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='admins_contct' WHERE what='admins_contact' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ein Punkt in der Versionsnummernliste verhinderte das 0.5.6-Update.";
+               break;
+
+       case "0.5.9": // SQL queries for v0.5.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
+               break;
+
+       case "0.6.0": // SQL queries for v0.6.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link in &quot;ACL Einstellen&quot; zum Admin-Kontaktformular korregiert.";
+               break;
+
+       case "0.6.1": // SQL queries for v0.6.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Speichern von Admin-Accounts klappt wieder.";
+               break;
+
+       case "0.6.2": // SQL queries for v0.6.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bitte verschieben Sie die admins-Templates (Ordner: ".PATH."/templates/de/emails/) in den neuen Order admins!";
+               break;
+
+       case "0.6.3": // SQL queries for v0.6.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.6.4": // SQL queries for v0.6.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit der Rechtevererbung beseitigt: Geben Sie nun ein Hauptmen&uuml; frei (Allow), dann kann der Admin auch die Untermen&uuml;s erreichen. Zudem k&ouml;nnen Sie gezielte Untermen&uuml;s im freigegeben Hauptmen&uuml; dennoch sperren.";
+               break;
+
+       case "0.6.5": // SQL queries for v0.6.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.6.6": // SQL queries for v0.5.6
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='admins_contct' WHERE what='admins_contact' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Namenskonflikt zwischen den Erweiterungen <STRONG>admins</STRONG> und (kommender) <STRONG>contact</STRONG>.";
+               break;
+
+       case "0.6.7": // SQL queries for v0.6.7
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins ADD la_mode enum('global', 'OLD', 'NEW') not null default 'global'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Namenskonflikt zwischen den Erweiterungen <STRONG>admins</STRONG> und (kommender) <STRONG>contact</STRONG>. Beseitigung eines Fehlers <STRONG>HTTP_POSR_VARS</STRONG> beim &Auml;ndern von Administratoren.";
+               break;
+
+       case "0.6.8": // SQL queries for v0.6.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "<STRONG>setcookie()</STRONG> mit @-Zeichen gegen ungewollte Ausgaben abgesichert.";
+               break;
+
+       case "0.6.9": // SQL queries for v0.6.9
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title = 'Admin-Management' WHERE action = 'admins' AND what='' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Verwaltung nach Management umbenannt.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "admins";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-admintheme1.php b/0.2.1/inc/extensions/ext-admintheme1.php
new file mode 100644 (file)
index 0000000..53c0a64
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/13/2004 *
+ * ================                             Last change: 12/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-admintheme1.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Admin menu thmeme #1                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Adminmenue - Theme #1                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // Remove all other themes
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_extensions WHERE ext_name LIKE 'admintheme%'";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='stats' WHERE what='usr_online' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='stats' WHERE what='email_stats' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='misc' WHERE what='maintenance' LIMIT 1";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "admintheme";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-admintheme_default.php b/0.2.1/inc/extensions/ext-admintheme_default.php
new file mode 100644 (file)
index 0000000..97517cc
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/13/2004 *
+ * ================                             Last change: 12/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-admintheme_default.php                       *
+ * -------------------------------------------------------------------- *
+ * Short description : Default menu theme in admin area                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Standart-Menuesystem (Adminbereich)              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // Remove all other menu themes
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_extensions WHERE ext_name LIKE 'admintheme%'";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='misc' WHERE what='usr_online' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='stats' WHERE what='email' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='setup' WHERE what='maintenance' LIMIT 1";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "admintheme";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-autopurge.php b/0.2.1/inc/extensions/ext-autopurge.php
new file mode 100644 (file)
index 0000000..1a0d6bd
--- /dev/null
@@ -0,0 +1,294 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/29/2004 *
+ * ================                             Last change: 01/07/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-autopurge.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Automatical purging of outdated mail links       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auto-Loeschung von veralteten Mail-Links         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.4.0";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_pool modify data_type enum('TEMP','SEND','NEW','ADMIN','ACTIVE','DELETED') not null default 'TEMP'";
+       if (EXT_IS_ACTIVE("bonus"))
+       {
+               $SQLs[] = "alter table "._MYSQL_PREFIX."_bonus modify data_type enum('NEW','QUEUE','SEND','DELETED') not null default 'NEW'";
+       }
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_pool modify data_type enum('TEMP','SEND','NEW','ADMIN','ACTIVE') not null default 'TEMP'";
+       if (EXT_IS_ACTIVE("bonus"))
+       {
+               $SQLs[] = "alter table "._MYSQL_PREFIX."_bonus modify data_type enum('NEW','QUEUE','SEND') not null default 'NEW'";
+       }
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP autopurge_inactive";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP autopurge_unconfirmed";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP ap_inactive_since";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP ap_inactive_time";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP ap_unconfirmed_time";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='setup' AND what='config_autopurge' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='user' AND what='list_autopurge' LIMIT 1";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP ap_notified";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.1": // SQL queries for v0.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD autopurge_inactive enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD autopurge_unconfirmed enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_inactive_since bigint(20) not null default '2592000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_inactive_time bigint(20) not null default '25200'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_unconfirmed_time bigint(20) not null default '432000'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_autopurge', 'Auto-L&ouml;schung', 'Automatisch inaktive oder nicht best&auml;tigte Accounts l&ouml;schen.', '12')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('user', 'list_autopurge', 'Inaktive finden', 'Lassen Sie sich vor dem t&auml;glichen Reset anzeigen, welche Mitglieder als inaktiv erkannt werden und welche gel&ouml;scht werden.', '10')";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD ap_notified bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Automatisches L&ouml:schen von inaktiven bzw. nicht best&auml;tigten Accounts hinzugef&uuml;gt.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Automatisches L&ouml;schen von als zu l&ouml;schen markierte Tasks hinzugef&uuml;gt.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <FONT class=\"admin_failed\">Warning: Missing argument 2 for create_timestamp_from_selections() in ".PATH."inc/libs/pro_functions.php on line 227</FONT> behoben.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+
+               $UPDATE_NOTES = "Anstelle von <STRONG>ref_depth</STRONG> wurde <STRONG>level</STRONG> programmiert.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD autopurge_tasks enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_tasks_time bigint(20) not null default '".(60*60*24*7)."'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bereinigung von zu l&ouml;schenden Aufgaben klappt wieder. Zeitlimit f&uuml;r genanntes kann eingestellt werden (Default = 7 Tage).<BR><BR><U>Bitte aktualisieren Sie auch die Admin-Templates!</U>";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_in_notify enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_un_notify enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_tasks_notify enum('Y', 'N') not null default 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mail wird bei L&ouml;schung von Aufgaben ausgesendet.<BR><BR><U>Bitte aktualisieren Sie auch die Admin-Templates!</U>";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Diverse angebundene Erweiterungen gefixt.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Betreffzeile f&uuml;r gel&ouml;schte Aufgaben korregiert.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung bleibt wegen integrierten Schalters immer aktiv.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Auto-L&ouml;schung von Best&auml;tigungslinks kann unter &quot;Sonstige Einstellungen&quot; abgeschaltet werden (0 setzen!)";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Jackpot beseitigt ({!POINTS!} wurden nicht gutgeschrieben.)";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum Mitgliedsprofil in Funktion <U>ADMIN_USER_PROFILE_LINK()</U> ausgelagert.";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum Mitgliedsprofil in Funktion <U>ADMIN_USER_PROFILE_LINK()</U> ausgelagert.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mailbetreffs korregiert.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Template <u>admin_config_autopurge_pro.tpl</u> ist &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Datumsformat festgelegt auf ausf&uuml;hrlich.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_del_mails enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_dm_notify enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_dm_timeout bigint(20) not null default '86400'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Von bereits gel&ouml;schten Mitgliedern die Mails l&ouml;schen integriert.";
+               break;
+
+       case "0.3.4": // SQL queries for v0.3.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler mit <STRONG>timestamp_send</STRONG> (Zeile 308) beseitigt.";
+               break;
+
+       case "0.3.5": // SQL queries for v0.3.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler mit <STRONG>ap_del_emails</STRONG> (Einstellungen im Admin-Bereich) beseitigt.";
+               break;
+
+       case "0.3.6": // SQL queries for v0.3.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die Accounts der Standart-Referral-ID, der Bonus-ID, Bettellink-ID und der Verdoppler-ID werden nun nicht mehr gel&ouml;scht und tauchen auch unterhalb der Inaktiven-Liste nicht mehr auf.";
+               break;
+
+       case "0.3.7": // SQL queries for v0.3.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.3.8": // SQL queries for v0.3.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.3.9": // SQL queries for v0.3.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "if-Anweisungen auf Funktion <STRONG>empty()</STRONG> umgestellt. Unter <STRONG>Auto-L&ouml;schung</STRONG> finden Sie nun auch die Einstellungen zu Mailbest&auml;tigungs wieder. Zudem werden keine Urlauber (neue Urlaubsschaltung beachtet) mehr als inaktiv erkannt.";
+               break;
+
+       case "0.4.0": // SQL queries for v0.4.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       // Transfer all to the $CONFIG array...
+       $CONFIG['ap_inactive']    = $DUMMY['autopurge_inactive'];    // Autopurge inactive accounts (yes/no)
+       $CONFIG['ap_unconfirmed'] = $DUMMY['autopurge_unconfirmed']; // Autopurge unconfirmed accounts (yes/no)
+       $CONFIG['ap_tasks']       = $DUMMY['autopurge_tasks'];       // Autopurge out-dated tasks (yes/no)
+       $CONFIG['ap_in_mail']     = $DUMMY['ap_in_notify'];          // Send email to admin when purging inactive accounts (yes/no)
+       $CONFIG['ap_un_mail']     = $DUMMY['ap_un_notify'];          // Send email to admin when purging unconfirmed accounts (yes/no)
+       $CONFIG['ap_tasks_mail']  = $DUMMY['ap_tasks_notify'];       // Send email to admin when purging out-dated tasks (yes/no)
+       $CONFIG['ap_in_since']    = $DUMMY['ap_inactive_since'];     // Timeout for confirmed accounts when they become inactive (seconds)
+       $CONFIG['ap_in_time']     = $DUMMY['ap_inactive_time'];      // Timeout for inactive accounts when they are automatically deleted (seconds)
+       $CONFIG['ap_un_time']     = $DUMMY['ap_unconfirmed_time'];   // Timeout for unconfirmed accounts when they are automatically deleted (seconds)
+       $CONFIG['ap_tasks_time']  = $DUMMY['ap_tasks_time'];         // Timeout for out-dated tasks
+       $CONFIG['ap_del_mails']   = $DUMMY['ap_del_mails'];          // Autopurge mails from deleted users?
+       $CONFIG['ap_dm_notify']   = $DUMMY['ap_dm_notify'];          // Send email to admin when purging mails from deleted users (yes/no)
+       $CONFIG['ap_dm_timeout']  = $DUMMY['ap_dm_timeout'];         // Timeout for mails from deleted users
+
+       // Save some RAM...
+       unset($DUMMY);
+
+       // Do we have a daily-reset-run?
+       if (defined('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1))
+       {
+               // Yes, we have. So let's auto-purge some campaigns, inactive users and unconfirmed accounts
+               $INC_POOL[] = PATH."inc/autopurge.php";
+       }
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "autopurge";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "Y";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-bank.php b/0.2.1/inc/extensions/ext-bank.php
new file mode 100644 (file)
index 0000000..1781350
--- /dev/null
@@ -0,0 +1,199 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/28/2007 *
+ * ================                             Last change: 05/31/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-bank.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : A little bank account                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ein einfaches Bankaccount                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0";
+
+// Auto-set extension version
+if (!isset($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_accounts";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bank_accounts (
+id bigint(20) not null auto_increment,
+uid bigint(20) not null default '0',
+account_created bigint(20) not null default '0',
+account_locked bigint(20) not null default '0',
+locked_reason tinytext,
+status enum('NEW', 'ACTIVE', 'LOCKED') not null default 'NEW',
+account_balance double(20,5) not null default '0.00000',
+output_mode enum('LOGIN', 'EMAIL', 'DISABLED'),
+pin varchar(50) not null default '',
+tan_mode enum('NORMAL', 'INDEXED'),
+tan_list_status enum('PENDING', 'ACTIVE', 'INVALID', 'LOCKED') not null default 'PENDING',
+tan_key varchar(50) not null default '',
+month_transfered bigint(20) not null default '0',
+last_tan varchar(5) not null default '00000',
+last_tan_stamp bigint(20) not null default '0',
+last_tan_purpose tinytext,
+account_type enum('CHECK', 'SAVING') not null default 'CHECK',
+overdraft_credit double(20,5) not null default '0.00000',
+PRIMARY KEY (id),
+UNIQUE KEY (pin),
+INDEX `uid_type` (uid, account_type),
+INDEX (account_created),
+INDEX (account_locked),
+INDEX (last_tan_stamp)
+) TYPE=MyISAM";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_transfers";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bank_transfers (
+id bigint(20) not null auto_increment,
+to_account_id bigint(20) not null default '0',
+from_account_id bigint(20) not null default '0',
+points_amount double(20,5) not null default '0.00000',
+day_bookkeeping char(4) not null default '0000',
+day_available char(4) not null default '0000',
+transfer_purpose tinytext,
+PRIMARY KEY (id),
+INDEX (to_account_id, from_account_id),
+INDEX (day_bookkeeping, day_available)
+) TYPE=MyISAM";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_packages";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bank_packages (
+id bigint(20) not null auto_increment,
+title varchar(255) not null default '',
+description tinytext,
+account_fee double(20,5) not null default '0.00000',
+free_transfers int(7) not null default '0',
+transfer_fee double(20,5) not null default '0.00000',
+available varchar(8) not null default '19700101',
+output_system_mode enum('LOGIN', 'EMAIL', 'DISABLED'),
+package_active enum('Y', 'N') not null default 'N',
+free_months_no_fee tinyint(3) not null default '0',
+interest_plus float(7,5) not null default '0.00000',
+interest_minus float(7,5) not null default '0.00000',
+first_payment double(20,5) not null default '0.00000',
+free_account_income double(20,5) not null default '0.00000',
+free_account_stuff tinytext null,
+tan_lock tinyint(3) not null default '0',
+PRIMARY KEY (id)
+) TYPE=MyISAM";
+       // free_account_stuff will be a list of columns of the table _bank_packages
+       // what the member shall get for the specified income. output_system_mode
+       // must be extended with the mode you get for free: output_system_mode:LOGIN
+       // should be fine. More than one entry and not DISABLED ;) are not supported.
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_tanlist";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bank_tanlist (
+id bigint(20) not null auto_increment,
+idx tinyint(3) not null default '0',
+account_id bigint(20) not null default '0',
+tan varchar(50) not null default '',
+used enum('Y', 'N') not null default 'N',
+PRIMARY KEY (id),
+UNIQUE (account_id, tan)
+) TYPE=MyISAM";
+
+       // Admin menu queries
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', '', 'Bank-Accounts', 'Verwalten Sie hier alle Bank-Accounts Ihrer Mitglieder, sowie Angebotspakete und &Uuml;berweisungen.', 6)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'add_bank_package', 'Angebotspaket hinzuf&uuml;gen', 'Neues Angebotspaket erstellen.', 1)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'list_bank_package', 'Angebotspakete auflisten', 'Listet alle erstellten Angebotspakete auf.', 2)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'edit_bank_package', 'Angebotspaket &auml;ndern', 'Nach Auswahl eines Angebotspaketes k&ouml;nnen Sie dieses hier ver&auml;ndern. Bitte beachten Sie, dass Ihre Mitglieder keine Mail dabei erhalten!', 3)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'lock_bank_package', 'Angebotspaket ent-/sperren', 'Nehmen Sie Angebotspakete zur tempor&auml;ren &Uuml;berarbeitung zuvor heraus, dann k&ouml;nnen Sie in Ruhe dr&uuml;ber nachdenken und Berechnungen anstellen. Freigabe ist hier auch m&ouml;glich.', 4)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'del_bank_package', 'Angebotspaket l&ouml;schen', 'Nach Auswahl eines Angebotspaketes k&ouml;nnen Sie mit abschliessender Best&auml;tigung Angebotspakete ganz l&ouml;schen. Bitte beachten Sie, dass dies nur m&ouml;glich ist, wenn auch alle Accounts dieses nicht mehr nutzen!', 5)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'add_bank_account', 'Konto anlegen', 'Legen Sie hier Konten f&uuml;r die Mitglieder an (falls dieses nicht zurecht kommt).', 6)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'list_bank_account', 'Konten auflisten', 'Auflistung aller Konto oder eines ausw&auuml;hlbaren Mitglieds.', 7)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'edit_bank_account', 'Konto &auml;ndern', '&Auml;ndern Sie hier bestehende Konten, z.B. den Dispositionskredit usw. PINs und TANs sind hier nicht &auml;nderbar! Best&auml;tigungsmails sind optional versendbar.', 8)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'lock_bank_account', 'Konto ent-/sperren', 'Sperren Sie hier Konten bei Bedarf. Auch das Freischalten ist hier m&ouml;glich. Eine Benachrichtigung per Mail wird dann an das Mitglied ausgesendet.', 9)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'del_bank_account', 'Konto l&ouml;schen', 'L&ouml;schen von Konten mit Best&auml;tigungsmail. Wenn Sie ein Mitglieder-Account l&ouml;schen, so m&uuml;ssen Sie derzeit seine angelegten Konten auch l&ouml;schen!', 10)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'send_bank_tanlist', 'TAN-Liste aussenden', 'Listet zuerst Anfragen von Mitgliedern auf, die eine neue (i)TAN-Liste ben&ouml;tigen auf, anschliessend kann die Liste dann ausgesendet werden.', 11)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'lock_bank_tanlist', 'TAN-Liste ent-/sperren', 'Bestehende TAN-Listen k&ouml;nnen auf Kundenwunsch hin gesperrt und wieder entsperrt werden. Dies passiert auch, wenn der Kunde x-mal (siehe Angebotspakete) eine verkehrte TAN eingegeben hat. Einzelne TANs sind nicht ent-/sperrbar.', 12)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('bank', 'list_bank_trans', '&Uuml;berweisungen auflisten', 'Nach Auswahl eines Mitgliedes und einem Konto (ben&ouml;tgt JavaScript!) k&ouml;nnen Sie seitenweise die &Uuml;berweisungen durchschauen.', 13)";
+
+       // Member menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('bank', '', 'Bank-Account', 'N', 'Y', 3)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('bank', 'bank_infos', 'Angebotspakete', 'N', 'Y', 1)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('bank', 'bank_create', 'Konto anlegen', 'N', 'Y', 2)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('bank', 'bank_deposit', 'Einzahlen', 'N', 'Y', 3)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('bank', 'bank_withdraw', 'Auszahlen', 'N', 'Y', 4)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('bank', 'bank_output', 'Kontoauszug', 'N', 'Y', 5)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('bank', 'bank_change', 'Paket wechseln', 'N', 'Y', 6)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('bank', 'bank_remove', 'K&uuml;ndigen', 'N', 'Y', 7)";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_accounts";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_transfers";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_packages";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bank_tanlist";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='bank' LIMIT 14";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE action='bank' LIMIT 8";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='bank' LIMIT 8";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='N', locked='Y' WHERE action='bank' LIMIT 8";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               $SQLs[] = "";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "bank";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-beg.php b/0.2.1/inc/extensions/ext-beg.php
new file mode 100644 (file)
index 0000000..02e74e1
--- /dev/null
@@ -0,0 +1,321 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/25/2004 *
+ * ================                             Last change: 09/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-beg.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : Begging link                                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bettel-Link                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.2.5";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('setup', 'config_beg', 'Bettel-Link', 'IP-Sperre, {!POINTS!}-Verg&uuml;tung usw. k&ouml;nnen Sie hier einstellen.', 10)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, sort, visible, locked) VALUES ('main', 'beg', '{!POINTS!} erbetteln!', 4, 'Y', 'Y')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('main', 'beg', 'Ihr Bettel-Link', 6, 'Y', 'Y')";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_timeout bigint(20) not null default '600'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_uid_timeout bigint(20) not null default '1800'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_points double(20,5) not null default '0.00100'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD beg_clicks bigint(20) not null default '0'";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_beg_ips";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_beg_ips (
+id bigint(20) not null auto_increment,
+userid bigint(20) not null default '0',
+remote_ip varchar(15) not null default '0.0.0.0',
+timeout varchar(10) not null default '',
+KEY (userid),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+
+       // Load CSS file?
+       $EXT_CSS = "Y";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_beg' OR what='list_beg' LIMIT 2";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE what='beg' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='beg' OR what='beg2' LIMIT 2";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_beg_ips";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE what='beg' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='beg' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', admin_only='N', mem_only='N' WHERE module='beg' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE what='beg' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE what='beg' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='Y' WHERE module='beg' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_points_max double(20,5) not null default '0.10000'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Maximale Obergrenze an {!POINTS!} einstellbar (Standart: 0,1 {!POINTS!})";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "&Uuml;berlange Kommastellen bei Punktangaben aus Bettellink und Gastbereich entfernt und Admin-Templates repariert (&quot;Unbekannte Spalte <U>beg_points_ma</U>&quot;).";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Im Mitgliedsmen&uuml; wurde die Beschreibung aus dem Gastmen&uuml; verwendet.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_uid bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ein Mitgliedsaccount (empfehlenswert ist Ihr eigenes!) kann zum Abbuchen der {!POINTS!} verwendet werden. Template <U>admin_config_beg.tpl</U> (und pro!) nicht vergessen, zu aktualisieren.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_ip_timeout bigint(20) not null default '1800'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Zeitsperre gegen die selbe IP-Nummer hinzugef&uuml;gt.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bitte verschieben Sie die beg-Templates (Ordner: ".PATH."/templates/".GET_LANGUAGE()."/html/) in den neuen Order beg!";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.1.2":
+               // Get current month
+               $curr = date("m", time());
+               if (strlen($curr) == 1) $curr = "0".$curr;
+               if ($curr == "00") $curr = "12";
+
+               // SQL queries for v0.1.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_mode enum('DIRECT', 'REF') not null default 'REF'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_month char(2) not null default '".$curr."'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_ranks tinyint(4) not null default '10'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_active enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_rallye enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD beg_points double(21,5) not null default '0.00000'";
+               $VIS = "N"; $LOCKED = "Y";
+               if (EXT_IS_ACTIVE("beg")) { $VIS = "Y"; $LOCKED = "N"; }
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('main', 'beg2', 'Bettel-Rallye', '".$VIS."', '".$LOCKED."', '7')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('user', 'list_beg', 'Bettel-Rallye', 'Listet alle Teilnehmer der monatlichen Bettel-Rallye auf.', '12')";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Optionale Bettel-Rallye m&ouml;glich. Und die erbettelten {!POINTS!} k&ouml;nnen entweder nur dem bettelndem Mitglied direkt oder auch seinem Werber gutgeschrieben werden k&ouml;nnen.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erbettelte {!POINTS!} werden nach Deaktivierung der Bettel-Rallye gel&ouml;scht.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Rechtlichen Hinweis im Mitgliedsbereich vergessen (<STRONG>member_list_beg.tpl</STRONG>); Template <STRONG>member_beg_404.tpl</STRONG> fehlte!";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title='Bettellink/-rallye', descr='IP-Sperre, {!POINTS!}-Verg&uuml;tung und auch die Bettel-Rallye k&ouml;nnen Sie hier einstellen.' WHERE what='config_beg' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlendes Template im Admin-Bereich hinzugef&uuml;gt. Im Admin-Bereich Hinweis hinzugef&uuml;gt, wenn Bettel-Rallye inaktiv ist. Bitte Script inc/monthly_beg.php l&ouml;schen!";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es wurden immer dem ersten bettelndem Mitglied die {!POINTS!} gutgeschrieben.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_ral_en_notify enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_ral_di_notify enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_new_mem_notify enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_notify_bonus  double(20,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_notify_wait bigint(20) not null default '30'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD beg_ral_notify bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD beg_ral_en_notify bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD beg_ral_di_notify bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die Mitglieder k&ouml;nnen nun optional automatisch &uuml;ber eine aktivierte und/oder deaktivierte Bettel-Rallye informiert werden. Beide Benachrichtigungen k&ouml;nnen Sie unter <STRONG>Einstellungen --&gt; Bettel-Link/-rallye</STRONG> seperat ein- und ausschalten! Zudem ist eine Sperre gegen eingeloggte Mitglieder eingebaut, die das Klicken auf den eigenen Bettel-Link etwas erschweren soll.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler im t&auml;glichen Reset beseitigt.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bei ".POINTS."-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <STRONG>unknown column &#39;uid&#39;</STRONG> beseitigt.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD beg_include_own enum('Y', 'N') not null default 'N'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Eigene User-ID von Bettel-Rallye ausschliessbar.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abfrage des Account-Status eingebaut. Es k&ouml;nnen nur best&auml;tigte Accounts betteln.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='extras', sort='1' WHERE what='beg' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='rals', sort='3', title='Bettel-Rallye' WHERE what='beg2' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['beg_timeout']        = $DUMMY['beg_timeout'];        // Global timeout
+       $CONFIG['beg_uid_timeout']    = $DUMMY['beg_uid_timeout'];    // Timeout for one userid
+       $CONFIG['beg_ip_timeout']     = $DUMMY['beg_ip_timeout'];     // Timeout for one IP number
+       $CONFIG['beg_points']         = $DUMMY['beg_points'];         // Minimum beggable points
+       $CONFIG['beg_points_max']     = $DUMMY['beg_points_max'];     // Maximum beggable points
+       $CONFIG['beg_uid']            = $DUMMY['beg_uid'];            // Account to subtract begged points from
+       $CONFIG['beg_mode']           = $DUMMY['beg_mode'];           // Payment mode: direct or over referral system?
+       $CONFIG['beg_month']          = $DUMMY['beg_month'];          // Current month
+       $CONFIG['beg_ranks']          = $DUMMY['beg_ranks'];          // Maximum member who will win
+       $CONFIG['beg_active']         = $DUMMY['beg_active'];         // Only active members can win?
+       $CONFIG['beg_rallye']         = $DUMMY['beg_rallye'];         // Is the begging rallye activated?
+       $CONFIG['beg_ral_en_notify']  = $DUMMY['beg_ral_en_notify'];  // Notify members on enabled rallye?
+       $CONFIG['beg_ral_di_notify']  = $DUMMY['beg_ral_di_notify'];  // Notify members on disabled rallye?
+       $CONFIG['beg_notify_bonus']   = $DUMMY['beg_notify_bonus'];   // When points are > 0 and bonus extension is installed, a bonus mail with this amount of points will be send instead of an enable-notification!
+       $CONFIG['beg_new_mem_notify'] = $DUMMY['beg_new_mem_notify']; // Notify members on disabled rallye?
+       $CONFIG['beg_notify_wait']    = $DUMMY['beg_notify_wait'];    // Time to wait in seconds for bonus mails
+       $CONFIG['beg_include_own']    = $DUMMY['beg_include_own'];    // Include webmaster's own userid in rallye?
+       unset($DUMMY);
+
+       // Remove old entries
+       $OLD = $CONFIG['beg_timeout'];
+       if ($CONFIG['beg_uid_timeout'] > $OLD) $OLD = $CONFIG['beg_uid_timeout'];
+       $result_ext = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_beg_ips WHERE timeout < ".(time() - $OLD - 60*60), __FILE__, __LINE__);
+
+       if (defined('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1))
+       {
+               // Daily reset was run so let's check if begging rallye is active
+               if ($CONFIG['beg_rallye'] == "Y")
+               {
+                       // Check for our winers
+                       $INC_POOL[] = PATH."inc/monthly/monthly_beg.php";
+               }
+                else
+               {
+                       // Reset begging points
+                       $INC_POOL[] = PATH."inc/reset/reset_beg.php";
+               }
+       }
+
+       // Check for beg rallye is active and send mails out
+       if (($CONFIG['beg_rallye'] == "Y") && ($CONFIG['beg_new_mem_notify'] == "Y"))
+       {
+               // Include file for sending out mails
+               $INC_POOL[] = PATH."inc/mails/beg_mails.php";
+       }
+
+       // Return code for the URL
+       define('CODE_BEG_SAME_AS_OWN', 100);
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "beg";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-birthday.php b/0.2.1/inc/extensions/ext-birthday.php
new file mode 100644 (file)
index 0000000..fe51e4f
--- /dev/null
@@ -0,0 +1,212 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/23/2004 *
+ * ================                             Last change: 06/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-birthday.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Sends out happy-birthday mails                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Versendet Geburtstagsmails an die Mitglieder     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.3.8";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1", "0.2", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD birthday_sent varchar(10) NOT NULL default '0'";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP birthday_sent";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP birthday_points";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_birthday";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_birthday' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.1": // SQL queries for v0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wenn t&auiml;glicher Reset war, wird eine ben&ouml;tigte Include-Datei nicht mehr von daily-reset.php eingebunden, sondern von der Erweiterungsdatei selber.";
+               break;
+
+       case "0.2": // SQL queries for v0.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD birthday_points bigint(20) not null default '0'";
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_birthday";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_user_birthday (
+id bigint(20) not null auto_increment,
+userid bigint(20) not null default '0',
+points bigint(20) not null default '0',
+chk_value varchar(255) not null default '',
+KEY(userid),
+PRIMARY KEY(id)
+) Type=MyISAM";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_birthday', 'Geburtstagsmails', 'Stellen Sie hier ein, ob die Mitglieder {!POINTS!} (nicht automatisch) gutgeschrieben kommen sollen oder nicht.', 9)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es kann nun eine Gutschrift an die Geburtstagmail angeh&auml;ngt werden. Diese wird erst beim Klick auf einen Best&auml;tigungslink gutgeschrieben.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abstand zwischen ausgesendeter Geburtstagsmails auf 364 Tage erh&ouml;ht.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Laden der birthday_mails.php &quot;intelligenter&quot; per Datenfeld und Lade-Schleife in load_extensions.php realisiert.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate am Script <U>birtday_confirm.php</U> durchgef&uuml;hrt.";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vergessenes _OB_CACHING gesetzt.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ausgabe des generierten HTML-Codes nach <U>inc/footer.php</U> verlagert.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wort <STRONG>Punkte</STRONG> dynamisiert.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bitte verschieben Sie die birthday-Templates (Ordner: ".PATH."/templates/".GET_LANGUAGE()."/html/) in den neuen Order birthday!";
+               break;
+
+       case "0.3.4": // SQL queries for v0.3.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.3.5": // SQL queries for v0.3.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.3.6": // SQL queries for v0.3.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD birthday_mode enum('DIRECT', 'REF') not null default 'DIRECT'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD birthday_active enum('Y', 'N') not null default 'N'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Verg&uuml;tungsmodus des Geburtstagsbonus einstellbar.";
+               break;
+
+       case "0.3.7": // SQL queries for v0.3.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Im Script <STRONG>inc/birthday_mails.php</STRONG> hat sich ein Zeichen mit dem Code 160 eingeschlichen, welches einen <STRONG>Parser Error</STRONG> verursachte, aber wie eine gew&ouml;hnliche Leerstelle aussah.";
+               break;
+
+       case "0.3.8": // SQL queries for v0.3.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Hash-Erstellung von <STRONG>md5()</STRONG> auf bessere Funktion <STRONG>generateHash()</STRONG> umgestellt.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+
+       // Copy config to main array
+       $CONFIG['birthday_points'] = $DUMMY['birthday_points'];
+       $CONFIG['birthday_mode']   = $DUMMY['birthday_mode'];
+       $CONFIG['birthday_active'] = $DUMMY['birthday_active'];
+
+       // Save some RAM...
+       unset($DUMMY);
+
+       if ((defined('__DAILY_RESET')) && ($CONFIG['birthday_points'] > 0))
+       {
+               // Daily reset was run and we shall pay points so we start checking for members who
+               // has a birthday for today
+               $INC_POOL[] = PATH."inc/mails/birthday_mails.php";
+       }
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "birthday";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-bonus.php b/0.2.1/inc/extensions/ext-bonus.php
new file mode 100644 (file)
index 0000000..4520b24
--- /dev/null
@@ -0,0 +1,603 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/04/2004 *
+ * ================                             Last change: 06/13/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-bonus.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Bonus pages                                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bonus-Seiten                                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version of this extension
+$EXT_VERSION = "0.8.6";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1.6", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7", "0.4.8", "0.4.9", "0.5.0", "0.5.1", "0.5.2", "0.5.3", "0.5.4", "0.5.5", "0.5.6", "0.5.7", "0.5.8", "0.5.9", "0.6.0", "0.6.1", "0.6.2", "0.6.3", "0.6.4", "0.6.5", "0.6.6", "0.6.7", "0.6.8", "0.6.9", "0.7.0", "0.7.1", "0.7.2", "0.7.3", "0.7.4", "0.7.5", "0.7.6", "0.7.7", "0.7.8", "0.7.9", "0.8.0", "0.8.1", "0.8.2", "0.8.3", "0.8.4", "0.8.5", "0.8.6");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu VALUES (NULL,'email','send_bonus','Bonusmail senden',5,'Versenden Sie hier Bonus-Mails an alle Mitglieder oder nur an alle aus einer Kategorie. Es spielt keine Rolle, wie viele Mails bereits versendet worden, Sie k&ouml;nnen hier immer senden.')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu VALUES (NULL,'main','bonus','Bonuspunkte',7,'Y','Y','',0)";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bonus (
+id bigint(20) NOT NULL auto_increment,
+cat_id bigint(20) NOT NULL default '0',
+subject varchar(255) NOT NULL default '',
+text longblob NOT NULL,
+receivers longblob NOT NULL,
+points bigint(20) NOT NULL default '0',
+time tinyint(4) NOT NULL default '0',
+data_type enum('NEW','QUEUE','SEND') NOT NULL default 'NEW',
+timestamp varchar(10) NOT NULL default '0',
+url varchar(255) NOT NULL default '',
+target_send bigint(20) NOT NULL default '0',
+clicks bigint(20) not null default '0',
+mails_sent bigint(20) not null default '0',
+KEY(cat_id),
+PRIMARY KEY  (id)
+)TYPE=MyISAM";
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_links modify link_type enum('NORMAL','BONUS') not null default 'NORMAL'";
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_links add bonus_id bigint not null default '0'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_links ADD INDEX (bonus_id)";
+
+       // Run this SQL when html or html_mail extension is installed
+       if (EXT_IS_ACTIVE("html_mail")) $SQLs[] = "alter table "._MYSQL_PREFIX."_bonus add html_msg enum('Y','N') not null default 'N'";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='bonus' OR what='config_bonus' OR what='send_bonus' OR what='list_bonus' LIMIT 4";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='bonus' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE action='bonus' LIMIT 1";
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_links modify link_type enum('NORMAL') not null default 'NORMAL'";
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_links drop bonus_id";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_urls";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_customer";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_turbo";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='main' AND what='bonus' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE action='bonus' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', admin_only='N', mem_only='N' WHERE module='show_bonus' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE action='main' AND what='bonus' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE action='bonus' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='Y' WHERE module='show_bonus' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Paid-Links wurden verschoben in die Erweiterung <STRONG>paidlinks</STRONG>.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_bonus SET target_send=mails_sent WHERE target_send='0' AND mails_sent>0 AND receivers != ''";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einf&uuml;gen der Buchung gessetzt. Bitte laden Sie sich dazu - wenn nicht bereits geschehen - alle Patches bis mindestens Patch 240 unter <A href=\"".URL."/modules.php?module=admin&amp;what=updates\">Updates pr&uuml;fen</A> herunter.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_bonus' LIMIT 1";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu VALUES (NULL,'setup','config_bonus','Bonus-{!POINTS!}',8,'Richten Sie Bonus-{!POINTS!} ein, die beim x&#39;ten Klick auf die Mail verbucht werden sollen. Beispiele: Der 1. Klick sollte mehr {!POINTS!} zus&auml;tzlich bekommen, als der 10. Klick.')";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD login_bonus double(20,3) not null default '10.000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD turbo_bonus double(20,3) not null default '100.000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD login_timeout bigint(20) not null default '86400'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD turbo_rates varchar(255) not null default '50;20;10'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_ranks tinyint(4) not null default '10'";
+               // Use actual month for this update
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD last_bonus_month char(2) not null default '".date("m", time())."'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD login_bonus double(20,3) not null default '0.000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD turbo_bonus double(20,3) not null default '0.000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_stats ADD bonus_stats enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='Y' WHERE ext_name='bonus' AND ext_has_css='N' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Login-Bonus und Turbo-Klick-Bonus intergriert.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_turbo";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bonus_turbo (
+id bigint(20) NOT NULL auto_increment,
+userid bigint(20) NOT NULL default '0',
+mail_id bigint(20) NOT NULL default '0',
+bonus_id bigint(20) NOT NULL default '0',
+level bigint(20) NOT NULL default '0',
+points double(20,3) NOT NULL default '0.000',
+timemark varchar(32) NOT NULL default '0',
+PRIMARY KEY(id),
+KEY mail_id (mail_id),
+KEY bonus_id (bonus_id),
+KEY userid (userid)
+) TYPE=MyISAM";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Turbo-Bonus wird in Tabelle gez&auml;hlt f&uuml;r Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE action='main' AND what='bonus' LIMIT 1";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu VALUES (NULL,'main','bonus','Aktiv-Rallye',7,'Y','Y','',0)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Aktiv-Rallye mit Klick-Verg&uuml;tung hinzugef&uuml;gt.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_urls";
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_customer";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Tabellen <U>"._MYSQL_PREFIX."_bonus_urls</U> und <U>"._MYSQL_PREFIX."_bonus_customer</U> entfernt, da dies bald von der Erweiterung <U>paidlinks</U> erledigt wird.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Turbo-Bonus klappt wieder (dies sind {!POINTS!} die an die schnellsten Klicker verg&uuml;tet werden!)";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_bonus SET timestamp='0' WHERE timestamp='0000000000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_bonus_turbo CHANGE points points double(22,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config CHANGE turbo_bonus turbo_bonus double(22,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config CHANGE login_bonus login_bonus double(22,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE turbo_bonus turbo_bonus double(22,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE login_bonus login_bonus double(22,5) not null default '0.00000'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "5 Nachkommastellen implementiert";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate am Script <U>show_bonus.php</U> durchgef&uuml;hrt.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.3.4": // SQL queries for v0.3.4
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('user', 'list_bonus', 'Aktiv-Rallye-Teilnehmer', 'Listet alle Mitglieder auf, die einen Aktiv-Bonus haben und zeigt die derzeit m&ouml;glichen Gewinner an.', 10)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link <U>Aktiv-Rallye-Teilnehmer</U> hinzugef&uuml;gt, inklusive manuelle Vorbereitung der Verg&uuml;tung.";
+               break;
+
+       case "0.3.5": // SQL queries for v0.3.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_mode enum('UID', 'JACKPOT', 'ADD') not null default 'ADD'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_uid bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Der Login-Bonus Aktiv-Bonus (= Klick-Bonus) k&ouml;nnen nun zuerst von einem Mitgliederaccount (das sollte Ihres sein!), vom Jackpot abgezogen oder einfach dazuadiert werden.";
+               break;
+
+       case "0.3.6": // SQL queries for v0.3.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die sp&auml;teste Zeitmarke f&uuml;r die Auswertung angezeigt.";
+               break;
+
+       case "0.3.7": // SQL queries for v0.3.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitglieder-Account auw&auml;hlbar, von dem die {!POINTS!} f&uuml;r den Aktiv- und Login-Bonus abgebucht werden.";
+               break;
+
+       case "0.3.8": // SQL queries for v0.3.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ausgabe des generierten HTML-Codes nach <U>inc/footer.php</U> verlagert.";
+               break;
+
+       case "0.3.9": // SQL queries for v0.3.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Variablen gefixt.";
+               break;
+
+       case "0.4.0": // SQL queries for v0.4.0
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_timeout bigint(20) not null default '".(ONE_DAY * 7)."'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_lines bigint(20) not null default '10'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Automatisches L&ouml;schen von Turbo-Bonus-Zeilen ("._MYSQL_PREFIX."_bonus_turbo) und begrenzte Anzahl von Eintr&auml;gen hinzugef&uuml;gt.";
+               break;
+
+       case "0.4.1": // SQL queries for v0.4.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Verg&uuml;tung des Aktiv-Bonus repariert.";
+               break;
+
+       case "0.4.2": // SQL queries for v0.4.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <U>admin_list_bonus.tpl</U> korregiert.";
+               break;
+
+       case "0.4.3": // SQL queries for v0.4.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Verbesserung des Versandes von  HTML-Bonus-Mails.";
+               break;
+
+       case "0.4.4": // SQL queries for v0.4.4
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_order double(20,5) not null default '15.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_ref double(20,5) not null default '100.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_stats double(20,5) not null default '5.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_active enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_order double(20,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_ref double(20,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_stats double(20,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_stats ADD is_stats enum('Y', 'N') not null default 'N'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bonus-{!POINTS!} f&uuml;r: Mailbestellung, Referral-Werbung (bei Best. der EMail-Adresse) und wenn 100% Klickrate jeder Mailbuchung erreicht wurde.<br>Template <u>admin_config_bonus_pro.tpl</u> ist &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!<br>Eingestellte Bonus-{!POINTS!} f&uuml;r Rank 2 war um eins verschoben.";
+               break;
+
+       case "0.4.5": // SQL queries for v0.4.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abzug vom Bonus-Account integriert.";
+               break;
+
+       case "0.4.6": // SQL queries for v0.4.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Rank 2 bekommt nun auch seine {!POINTS!} gutgeschrieben.";
+               break;
+
+       case "0.4.7": // SQL queries for v0.4.7
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_user_data SET login_bonus=0, turbo_bonus=0,bonus_ref=0,bonus_order=0,bonus_stats=0";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die Aktiv-Rallye wurde nicht auf 0 {!POINTS!} gesetzt. Dieser Fehler ist nun behoben. Allerdings ist mit diesem Update auch die Aktiv-Rallye zur&uuml;ckgesetzt worden.";
+               break;
+
+       case "0.4.8": // SQL queries for v0.4.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "In <U>inc/monthly_bonus.php</U> fehlte ein Punkt; Fehler besseitigt.";
+               break;
+
+       case "0.4.9": // SQL queries for v0.4.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Login-Bonus wird mit angezeigt.";
+               break;
+
+       case "0.5.0": // SQL queries for v0.5.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit <STRONG>is_hundred</STRONG> beim t&auml;glichen Reset beseitigt.";
+               break;
+
+       case "0.5.1": // SQL queries for v0.5.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit <STRONG>bonus_stats / Zeile 31</STRONG> beim t&auml;glichen Reset beseitigt.";
+               break;
+
+       case "0.5.2": // SQL queries for v0.5.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.5.3": // SQL queries for v0.5.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Speichern der Aktiv-{!POINTS!} f&uuml;r Platz 2 bis <STRONG>x</STRONG> korregiert.";
+               break;
+
+       case "0.5.4": // SQL queries for v0.5.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Variablenfehler in <STRONG>inc/monthly_bonus.php</STRONG> behoben.";
+               break;
+
+       case "0.5.5": // SQL queries for v0.5.5
+               // Get previous month
+               $prev = date("m", time()) - 1;
+               if (strlen($prev) == 1) $prev = "0".$prev;
+               if ($prev == "00") $prev = "12";
+
+               // Reset monthly active rallye
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_config SET last_bonus_month='".$prev."' WHERE config='0' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Weitere Variablenfehler in <STRONG>inc/monthly_bonus.php</STRONG> haben daf&uuml;r gesorgt, dass die monatliche Aktiv-Rallye nicht ausgesch&uuml;ttet wurde. Mit diesem Update wurde die Aussch&uuml;ttung initialisiert. Ihre Mitglieder bekommen voraussichtlicht nichts doppelt verg&uuml;tet.";
+               break;
+
+       case "0.5.6": // SQL queries for v0.5.6
+               // Get current month
+               $curr = date("m", time());
+               if (strlen($curr) == 1) $curr = "0".$curr;
+               if ($curr == "00") $curr = "12";
+
+               // Generate timemark...
+               $mark = mktime(0, 0, 0, $curr, 1, date("Y", time()));
+
+               // Update accounts which are not active last months
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_user_data
+SET turbo_bonus=0, login_bonus=0, bonus_order=0, bonus_stats=0, bonus_ref=0
+WHERE last_online < ".$mark." ORDER BY userid";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit &quot;nach oben gerutsch&quot;.";
+               break;
+
+       case "0.5.7": // SQL queries for v0.5.7
+               break;
+
+       case "0.5.8": // SQL queries for v0.5.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit <STRONG>is_hundred</STRONG> beim t&auml;glichen Reset endlich beseitigt.";
+               break;
+
+       case "0.5.9": // SQL queries for v0.5.9
+               $UPDATE_NOTES = "Fehlermeldung <STRONG>/home/verzeichnis/html/inc/stats_bonus.php (42):You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' WHERE userid='59' LIMIT 1' at line 1</STRONG> beseitigt.";
+               break;
+
+       case "0.6.0": // SQL queries for v0.6.0
+               $UPDATE_NOTES = "SQL-Fehlermeldung in <STRONG>inc/monthly_bonus.php</STRONG> beseitigt.";
+               break;
+
+       case "0.6.1": // SQL queries for v0.6.1
+               $UPDATE_NOTES = "Versand von Bonus-Mails repariert.";
+               break;
+
+       case "0.6.2": // SQL queries for v0.6.2
+               $UPDATE_NOTES = "L&ouml;schen von bereits gel&ouml;schten Mails wird nun abgelehnt.";
+               break;
+
+       case "0.6.3": // SQL queries for v0.6.3
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.6.4": // SQL queries for v0.6.4
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title='Aktiv-Rallye' WHERE what='config_bonus' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Der Men&uuml;punkt &quot;Bonus-{!POINTS!}&quot; unter Einstellungen wird nach &quot;Aktiv-Rallye umbenannt. Und die Aktiv-Rallye konnte aufgrund eines Template-Fehlers nicht gespeichert werden.";
+               break;
+
+       case "0.6.5": // SQL queries for v0.6.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_stats ADD bonus_stats enum('Y', 'N') not null default 'N'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler mit bonus_stats beseitigt.";
+               break;
+
+       case "0.6.6": // SQL queries for v0.6.6
+               $UPDATE_NOTES = "Template-Fehler beseitigt im Admin-Bereich.";
+               break;
+
+       case "0.6.7": // SQL queries for v0.6.7
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.6.8": // SQL queries for v0.6.8
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_bonus SET data_type='SEND' WHERE data_type != 'SEND' AND data_type != 'DELETED' AND receivers='' AND target_send='0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empf&auml;nderauswahl nicht ber&uuml;cksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitber&uuml;cksichtigt.";
+               break;
+
+       case "0.6.9": // SQL queries for v0.6.9
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_order_yn enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_ref_yn enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_stats_yn enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_login_yn enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_click_yn enum('Y', 'N') not null default 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es k&ouml;nnen nun auch die folgenden Verg&uuml;tungen bei der Auswertung der monatlichen Aktiv-Rallye mit ber&uuml;cksichtigt werden: Mailbest&auml;tigung (war vorher schon), Login-, Mailbuchung, Referral und Statistik-Bonus (100% Klickrate erreicht).";
+               break;
+
+       case "0.7.0": // SQL queries for v0.7.0
+               $UPDATE_NOTES = "Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.";
+               break;
+
+       case "0.7.1": // SQL queries for v0.7.1
+               $UPDATE_NOTES = "Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis ber&uuml;cksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.";
+               break;
+
+       case "0.7.2": // SQL queries for v0.7.2
+               $UPDATE_NOTES = "Die Verg&uuml;tung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!";
+               break;
+
+       case "0.7.3": // SQL queries for v0.7.3
+               $UPDATE_NOTES = "Gutgeschriebene Bonus-{!POINTS!} werden nach Deaktivierung der Aktiv-Rallye gel&ouml;scht.";
+               break;
+
+       case "0.7.4": // SQL queries for v0.7.4
+               $UPDATE_NOTES = "Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<STRONG>member_bonus.tpl</STRONG>)";
+               break;
+
+       case "0.7.5": // SQL queries for v0.7.5
+               $UPDATE_NOTES = "Im Admin-Bereich Hinweis hinzugef&uuml;gt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php l&ouml;schen!";
+               break;
+
+       case "0.7.6": // SQL queries for v0.7.6
+               $UPDATE_NOTES = "Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu ber&uuml;cksichtigen Boni wurden diese bei der Sortierung der User-IDs nicht ber&uuml;cksichtig.";
+               break;
+
+       case "0.7.7": // SQL queries for v0.7.7
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_en_notify enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_di_notify enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_new_mem_notify enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_notify_points double(20,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_notify_wait bigint(20) not null default '30'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_ral_notify bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_ral_en_notify bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_ral_di_notify bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Optionale automatische Benachrichtigung &uuml;ber aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.";
+               break;
+
+       case "0.7.8": // SQL queries for v0.7.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler im t&auml;glichen Reset beseitigt.";
+               break;
+
+       case "0.7.9": // SQL queries for v0.7.9
+               $UPDATE_NOTES = "Dollarzeichen fehlte in <STRONG>inc/reset/reset_bonus.php</STRONG>, Zeile 39";
+               break;
+
+       case "0.8.0": // SQL queries for v0.8.0
+               $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.";
+               break;
+
+       case "0.8.1": // SQL queries for v0.8.1
+               $UPDATE_NOTES = "Bei ".POINTS."-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.";
+               break;
+
+       case "0.8.2": // SQL queries for v0.8.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_include_own enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_bonus ADD is_notify enum('Y', 'N') not null default 'N'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Eigene User-ID von Aktiv-Rallye ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.";
+               break;
+
+       case "0.8.3": // SQL queries for v0.8.3
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='rals', sort='2', title='Aktiv-Rallye' WHERE what='bonus' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.8.4": // SQL queries for v0.8.4
+               $UPDATE_NOTES = "Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.";
+               break;
+
+       case "0.8.5": // SQL queries for v0.8.5
+               $UPDATE_NOTES = "CSS-Klassenname gefixt in Templates.";
+               break;
+
+       case "0.8.6": // SQL queries for v0.8.6
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['login_bonus']          = $DUMMY['login_bonus'];          // Bonus points for successfull logins
+       $CONFIG['turbo_bonus']          = $DUMMY['turbo_bonus'];          // Bonus points for the fastest clicker, No. 1
+       $CONFIG['bonus_rates']          = $DUMMY['turbo_rates'];          // Points for clicker no. 2 to x
+       $CONFIG['bonus_ranks']          = $DUMMY['bonus_ranks'];          // Total ranks who can win
+       $CONFIG['login_timeout']        = $DUMMY['login_timeout'];        // Time in seconds between two logins
+       $CONFIG['bonus_month']          = $DUMMY['last_bonus_month'];     // Last month where click-bonus are "paid"
+       $CONFIG['bonus_mode']           = $DUMMY['bonus_mode'];           // Mode for adding points for login/click bonus
+       $CONFIG['bonus_uid']            = $DUMMY['bonus_uid'];            // Member account to take points from
+       $CONFIG['bonus_lines']          = $DUMMY['bonus_lines'];          // Number of lines to display in show_bonus.php
+       $CONFIG['bonus_timeout']        = $DUMMY['bonus_timeout'];        // Auto-Purge timeout for bonus lines in mxchange_bonus_turbo
+       $CONFIG['bonus_order']          = $DUMMY['bonus_order'];          // Bonus points for ordering mails
+       $CONFIG['bonus_ref']            = $DUMMY['bonus_ref'];            // Bonus points for "making" a referral
+       $CONFIG['bonus_stats']          = $DUMMY['bonus_stats'];          // Bonus points for 100% clickrate in mail stats
+       $CONFIG['bonus_active']         = $DUMMY['bonus_active'];         // De/activate bonus active rallye
+       $CONFIG['bonus_order_yn']       = $DUMMY['bonus_order_yn'];       // Include order bonus in analysis?
+       $CONFIG['bonus_ref_yn']         = $DUMMY['bonus_ref_yn'];         // Include referral bonus in analysis?
+       $CONFIG['bonus_stats_yn']       = $DUMMY['bonus_stats_yn'];       // Include statistics bonus in analysis?
+       $CONFIG['bonus_login_yn']       = $DUMMY['bonus_login_yn'];       // Include login bonus in analysis?
+       $CONFIG['bonus_click_yn']       = $DUMMY['bonus_click_yn'];       // Include "mailid" bonus in analysis?
+       $CONFIG['bonus_en_notify']      = $DUMMY['bonus_en_notify'];      // Notify members about enabled active rallye?
+       $CONFIG['bonus_di_notify']      = $DUMMY['bonus_di_notify'];      // Notify members about disabled active rallye?
+       $CONFIG['bonus_new_mem_notify'] = $DUMMY['bonus_new_mem_notify']; // Notify members about disabled active rallye?
+       $CONFIG['bonus_notify_points']  = $DUMMY['bonus_notify_points'];  // Bonus points for the enable-notification mail? 0 = disable!
+       $CONFIG['bonus_notify_wait']    = $DUMMY['bonus_notify_wait'];    // Time to wait in seconds for bonus mails
+       $CONFIG['bonus_include_own']    = $DUMMY['bonus_include_own'];    // Include webmaster's own userid in active rallye?
+       unset($DUMMY);
+
+       if (defined('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1))
+       {
+               // Daily reset was run so let's check if active rallye is activated
+               if ($CONFIG['bonus_active'] == "Y")
+               {
+                       // Run active rallye
+                       if($CONFIG['bonus_stats'] > 0) $INC_POOL[] = PATH."inc/stats_bonus.php";
+                       $INC_POOL[] = PATH."inc/monthly/monthly_bonus.php";
+               }
+                else
+               {
+                       // Reset points
+                       $INC_POOL[] = PATH."inc/reset/reset_bonus.php";
+               }
+       }
+
+       // Check for bonus rallye is active and send mails out
+       if (($CONFIG['bonus_active'] == "Y") && ($CONFIG['bonus_new_mem_notify'] == "Y"))
+       {
+               // Include file for sending out mails
+               $INC_POOL[] = PATH."inc/mails/bonus_mails.php";
+       }
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "bonus";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-cache.php b/0.2.1/inc/extensions/ext-cache.php
new file mode 100644 (file)
index 0000000..1a86aa2
--- /dev/null
@@ -0,0 +1,224 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/11/2004 *
+ * ================                             Last change: 10/11/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-cache.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Caching system for SQL tables on hard disc       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Caching-System zum Auslagern von SQL-Tabellen    *
+ *                     auf der Festplatte des Servers                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.7";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_update bigint(20) not null default '3600'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_path varchar(255) not null default 'cache/'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_tested tinyint(1) not null default '0'";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_cache', 'Cache-Einstellungen', 'Update-Interval des Caches usw. k&ouml;nnen Sie hier &auml;ndern.', 9)";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_cache' OR what='cache_stats' LIMIT 2";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP cache_update";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP cache_path";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP cache_tested";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es wurde die Zeitmarke der Cache-Datei extensions.cache mit ber&uuml;cksichtigt. Dies hatte die Folge, dass wenn bei einem Gast die Datei aktualisiert wurde, nur aktivierte und nicht die deaktivierten mit geladen wurden. Folglich fiehlen einfach ein paar Erweiterungen aus.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Cache-Update repariert.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               if (EXT_IS_ACTIVE("cache"))
+               {
+                       // Check for cache when extension is already installed
+                       if ($CACHE->cache_file("extensions", true)) $CACHE->cache_destroy();
+               }
+               $UPDATE_NOTES = "Spalte &quot;keep_active&quot; ist hinzugef&uuml;gt. Cache wurde reinitialisiert.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Registrierung der Cache-Erweiterung repariert";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Validierung der Cache-Datei admins.cache integriert.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD db_hits bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_hits bigint(20) not null default '0'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('stats', 'cache_stats', 'DB-Cache', 'Auf Cache und gesamte Datenbank registrierte Anfragen anzeigen.', 4)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Hits auf den Cache werden gez&auml;hlt.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Das Umschreiben der Cache-Daten hat eine Fehlermeldung <STRONG>Falsches Passwort!</STRONG> im Admin-Bereich verursacht.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Interne Datenfeld-Management korregiert und Cache-Statistiken korregiert.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit fehlender admins-Erweiterung beseitigt.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <STRONG>Division durch 0</STRONG> repariert in den DB-Cache Statistiken.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die Tabelen <STRONG>"._MYSQL_PREFIX."_config</STRONG>, <STRONG>"._MYSQL_PREFIX."_refsystem</STRONG>, <STRONG>"._MYSQL_PREFIX."_refdepths</STRONG> und <STRONG>"._MYSQL_PREFIX."_mod_reg</STRONG> werden nun auch ausgelagert.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_admins enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_acls enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_exts enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_config enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_modreg enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_refdepth enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_refsys enum('Y', 'N') not null default 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Alle cache-baren Tabellen sind nun einzelnt ein- bzw. ausschaltbar. Falls die eine oder andere ausgelagerte Tabelle also Fehler verursachen sollte, so k&ouml;nnen Sie diese hier abschalten. Beachten Sie aber bitte, dass dann mehr Abfragen an die Datenbank gestellt wird und dies bedeutend mehr Zeit braucht, als nur die Daten aus einem Datenfeld zu laden, das sich im Speicher aufh&auml;lt.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <STRONG>Division durch 0</STRONG> repariert in <STRONG>inc/load_cache.php</STRONG>.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Weitere Fehler im System beseitigt.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Probleme w&auuml;hrend des Installationsvorganges beseitigt.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "CSS-Klassenname gefixt in Templates.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+
+       // Load config and destroy dummy array
+       $CONFIG['cache_update']   = $DUMMY['cache_update'];   // Last time the cache files are been re-created
+       $CONFIG['cache_path']     = $DUMMY['cache_path'];     // Relative path for the cache files to 'inc/'
+       $CONFIG['cache_tested']   = $DUMMY['cache_tested'];   // Says if cache path is tested or not
+       $CONFIG['db_hits']        = $DUMMY['db_hits'];        // Counted hits on the database (all!)
+       $CONFIG['cache_hits']     = $DUMMY['cache_hits'];     // Counted hits on the cache arrays in memory
+       $CONFIG['cache_admins']   = $DUMMY['cache_admins'];   // Is the table '_admins' cacheable?
+       $CONFIG['cache_acls']     = $DUMMY['cache_acls'];     // Is the table '_admins_acls' cacheable?
+       $CONFIG['cache_exts']     = $DUMMY['cache_exts'];     // Is the table '_extensions' cacheable?
+       $CONFIG['cache_config']   = $DUMMY['cache_config'];   // Is the table '_config' cacheable?
+       $CONFIG['cache_modreg']   = $DUMMY['cache_modreg'];   // Is the table '_mod_reg' cacheable?
+       $CONFIG['cache_refdepth'] = $DUMMY['cache_refdepth']; // Is the table '_refdepths' cacheable?
+       $CONFIG['cache_refsys']   = $DUMMY['cache_refsys'];   // Is the table '_refsystem' cacheable?
+       unset($DUMMY);
+
+       // Create instance on class
+       if ($CACHE_FILE != "init")
+       {
+               // Initialize cache system only when it's needed
+               $CACHE = new mxchange_cache($CONFIG['cache_update'], PATH."inc/".$CONFIG['cache_path'], $CONFIG['cache_tested']);
+               if ($CACHE->ret != "done")
+               {
+                       // Failed to initialize cache sustem
+                       ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_INITIALIZE);
+               }
+       }
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "cache";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-country.php b/0.2.1/inc/extensions/ext-country.php
new file mode 100644 (file)
index 0000000..17b9b8e
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/30/2005 *
+ * ================                             Last change: 04/30/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-country.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Country code management                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Laendercode-Management                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.4";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_countries";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_countries (
+id bigint(20) not null auto_increment,
+code char(2) not null default 'DE',
+descr varchar(255) not null default 'Deutschland',
+is_active enum('Y', 'N') not null default 'N',
+KEY(code),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_countries (code, descr, is_active) VALUES ('DE', 'Deutschland', 'Y')";
+
+       // Admin menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('country', '', 'L&auml;ndercodes verwalten', 'Stellen Sie hier L&auml;ndercodes ein, damit auch internationale Mitglieder sich zu Ihrem ".MT_WORD." anmelden k&ouml;nnen.', 8)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('country', 'list_country', 'Verwalten', 'Hinzuf&uuml;gen, &Auml;ndern und L&ouml;schen von L&auml;ndercodes.', 1)";
+
+       // Add entry to user table
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD country_code bigint(20) not null default '1'";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_countries";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='country' LIMIT 2";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "SQL-Dateien hinzugef&uuml;gt, die Sie mit z.B. phpMyAdmin einspielen k&ouml;nnen. (DOCS/country/README.de lesen!)";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "country";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "Y";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-demo.php b/0.2.1/inc/extensions/ext-demo.php
new file mode 100644 (file)
index 0000000..264b3ab
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/16/2004 *
+ * ================                             Last change: 07/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-demo.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Demo mode extension                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Demo-Modus Erweiterung                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.1";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "demo";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-doubler.php b/0.2.1/inc/extensions/ext-doubler.php
new file mode 100644 (file)
index 0000000..4695476
--- /dev/null
@@ -0,0 +1,279 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/03/2005 *
+ * ================                             Last change: 02/03/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-doubler.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Double points                                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punkte verdoppeln                                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.6";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // Doubler table
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_doubler";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_doubler (
+id bigint(20) not null auto_increment,
+userid bigint(20) not null default '0',
+refid bigint(20) not null default '0',
+points double(20,5) not null default '0.00000',
+remote_ip varchar(15) not null default '0.0.0.0',
+timemark varchar(10) not null default '',
+completed enum('Y', 'N') not null default 'N',
+is_ref enum('Y', 'N') not null default 'N',
+KEY(refid),
+KEY(userid),
+PRIMARY KEY(id)
+)TYPE=MYISAM";
+
+       //
+       // --- SETTINGS ---
+       //
+       // Minimum points to double
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_min double(20,5) not null default '100.00000'";
+       // Maximum points to double
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_max double(20,5) not null default '10000.00000'";
+       // Points left on users account after doubling
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_left bigint(20) not null default '1000'";
+       // Charge for doubling points which goes to the webmaster (shreddered in fact!)
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_charge float(7,3) not null default '0.030'";
+       // Referral percents
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_ref float(7,3) not null default '0.020'";
+       // Shall I use the jackpot to take points from? (Y/N, default=Y)
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_jackpot enum('Y', 'N') not null default 'Y'";
+       // A user account to take points from (default: 0->none)
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_uid bigint(20) not null default '0'";
+       // Total payed out points from your doublers
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_points double(20,5) not null default '0.00000'";
+       // Sending mode of mails (immediately/daily reset)
+       // --> This also means who fast the doubled points will be payed out!
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_send_mode enum('DIRECT', 'RESET') not null default 'DIRECT'";
+       // Timeout for entries to be purged (default: one week)
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_timeout bigint(20) not null default '".(60*60*24*7)."'";
+       // Number of newest entries to display
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_display_new tinyint(3) not null default '10'";
+       // Number of entries which will be payed out soon
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_display_pay tinyint(3) not null default '10'";
+       // Number of entries which are already payed out
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_display_old tinyint(3) not null default '10'";
+       // Points used by every member
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD doubler_points double(20,5) not null default '0.00000'";
+       // Counter for usage of the doubler
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_counter bigint(20) not null default '0'";
+
+       //
+       // --- MENU SYSTEMS ---
+       //
+       // Admin menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('doubler', '', '{!POINTS!}-Verdoppler', 'Einstellungen und Eintr&auml;ge auflisten.', 4)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('doubler', 'list_doubler', 'Auflisten', 'Eintr&auml;ge aus der Verdiensttabelle auflisten', 1)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('doubler', 'config_doubler', 'Einstellungen', 'Prozentuale Geb&uuml;hr usw. einstellen.', 2)";
+
+       // Guest menu (informations / default doubler link)
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, sort, visible, locked) VALUES ('main', 'doubler', 'Verdoppeln!', 3, 'Y', 'Y')";
+
+       // Member menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('main', 'doubler', 'Verdoppeln!', 'Y', 'Y', 7)";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_doubler";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='doubler' LIMIT 3";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE what='doubler' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='doubler' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='doubler' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE what='doubler' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', admin_only='N', mem_only='N' WHERE module='doubler' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE what='doubler' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE what='doubler' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='Y' WHERE module='doubler' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit User-ID behoben!";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Total used points
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_used double(20,5) not null default '0.00000'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Geb&uuml;hr wird vom Verdoppler-Pott abgezogen.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Drei SQL-Fehler beseitigt.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Shall I use the doubler's account to take points from? (Y/N, default=Y)
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_own enum('Y', 'N') not null default 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = POINTS."-Guthaben des Verdopplers kann optional nicht mit einbezogen werden.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Counter-Stand und noch zum Verdoppeln &uuml;brige {!POINTS!} in Templates eingebunden. Auflistung in Admin-Bereich komplettiert.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_config SET doubler_used=doubler_used+(SUM(d.points)*c.doubler_charge)
+FROM "._MYSQL_PREFIX."_doubler AS d, "._MYSQL_PREFIX."_config AS c
+WHERE d.completed='N'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_max_sent tinyint(4) not null default '1'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_group_sent tinyint(4) not null default '1'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_sent_all enum('Y', 'N') not null default 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Geb&uuml;hrenabzug wird beim Einzahlen abgezogen (wurde von Auszahlung abgezogen) und maximal bei Auszahlung zu kontrollierende Accounts einstellbar.<br>Template <u>admin_config_doubler_pro.tpl</u> ist &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.<BR><BR>Minus-Guthaben des Verdoppler-Accounts repariert und Mitgliedsmail erweitert mit Transaktionsummer und IP-Nummer.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bitte verschieben Sie die doubler-Templates (Ordner: ".PATH."/templates/".GET_LANGUAGE()."/html/) in den neuen Order doubler!";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Zwei SQL-Fehler in <STRONG>inc/doubler_send.php</STRONG> beseitigt.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='extras', sort='4' WHERE what='doubler' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Hash-Erstellung von <STRONG>md5()</STRONG> auf bessere Funktion <STRONG>generateHash()</STRONG> umgestellt.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['doubler_charge']      = $DUMMY['doubler_charge'];
+       $CONFIG['doubler_jackpot']     = $DUMMY['doubler_jackpot'];
+       $CONFIG['doubler_own']         = $DUMMY['doubler_own'];
+       $CONFIG['doubler_uid']         = $DUMMY['doubler_uid'];
+       $CONFIG['doubler_points']      = $DUMMY['doubler_points'];
+       $CONFIG['doubler_used']        = $DUMMY['doubler_used'];
+       $CONFIG['doubler_send_mode']   = $DUMMY['doubler_send_mode'];
+       $CONFIG['doubler_timeout']     = $DUMMY['doubler_timeout'];
+       $CONFIG['doubler_display_new'] = $DUMMY['doubler_display_new'];
+       $CONFIG['doubler_display_pay'] = $DUMMY['doubler_display_pay'];
+       $CONFIG['doubler_display_old'] = $DUMMY['doubler_display_old'];
+       $CONFIG['doubler_ref']         = $DUMMY['doubler_ref'];
+       $CONFIG['doubler_min']         = $DUMMY['doubler_min'];
+       $CONFIG['doubler_max']         = $DUMMY['doubler_max'];
+       $CONFIG['doubler_left']        = $DUMMY['doubler_left'];
+       $CONFIG['doubler_counter']     = $DUMMY['doubler_counter'];
+       $CONFIG['doubler_max_sent']    = $DUMMY['doubler_max_sent'];
+       $CONFIG['doubler_group_sent']  = $DUMMY['doubler_group_sent'];
+       $CONFIG['doubler_sent_all']    = $DUMMY['doubler_sent_all'];
+       unset($DUMMY);
+
+       if ((defined('__DAILY_RESET')) && ($CONFIG['doubler_send_mode'] == "RESET"))
+       {
+               // So let's check for points
+               $INC_POOL[] = PATH."inc/doubler_send.php";
+       }
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "doubler";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-holiday.php b/0.2.1/inc/extensions/ext-holiday.php
new file mode 100644 (file)
index 0000000..87849df
--- /dev/null
@@ -0,0 +1,250 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/17/2004 *
+ * ================                             Last change: 01/13/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-holiday.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Holiday requests from members                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ferienantraege von Mitgliedern                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.2.1";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // Create database
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_holidays";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_user_holidays (
+id bigint(20) not null auto_increment,
+userid bigint(20) not null default '0',
+holiday_start varchar(10) not null default '0',
+holiday_end varchar(10) not null default '0',
+comments longblob not null,
+KEY (userid),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+
+       // Add default values to config
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD holiday_max bigint(20) not null default '30'";
+
+       // Add member menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('main', 'holiday', 'Urlaubsschaltung', '4', 'Y', 'Y')";
+
+       // Add admin menus
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('holiday', '', 'Urlaubsmanagement', '4', 'Hier k&ouml;nnen Sie Urlaubsschaltungen Ihrer Mitglieder auflisten oder auch wieder aufheben.')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('holiday', 'list_holiday', 'Auflisten', '1', 'Alle Urlaubsschaltungen auflisten.')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('holiday', 'del_holiday', 'Urlaub beenden', '2', 'Urlaubsschaltungen aufheben. Geben Sie bitte mehr als nur &quot;Verstoss gegen unsere AGBs&quot; ein!')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('holiday', 'config_holiday', 'Einstellungen', '3', 'Maximale Tage f&uuml;r Urlaub usw. einstellen.')";
+
+       // Remove 0 max mails per day
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_max_receive WHERE value='0' LIMIT 1";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_holidays";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='holiday' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='holiday' LIMIT 4";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_max_receive WHERE value='0' LIMIT 1";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_max_receive (value, comment) VALUES('0', 'Urlaub')";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='main' AND what='holiday' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE action='main' AND what='holiday' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum Mitgliedsprofil in Funktion <U>ADMIN_USER_PROFILE_LINK()</U> ausgelagert.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern der Urlaubsanfrage korregiert.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD holiday_active enum('Y', 'N') not null default 'N'";
+               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_max_receive WHERE value='0' LIMIT 1";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD holiday_lock bigint(20) not null default '".(60*60*24*2)."'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die Mitglieder-Accounts werden nicht mehr gesperrt, sondern nur auf <STRONG>Urlaub</STRONG> geschaltet. Lassen Sie sich nicht davon verwirren, dass sie &quot;freigegeben&quot; sind!";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD holiday_mode enum('DIRECT', 'RESET') not null default 'RESET'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Urlaubsschaltung wird erst Abends um 00:00 Uhr aktiv und nicht durch die Beantragung. Dies kann nun auch auf direkte Umstellung eingestellt werden.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD holiday_mode enum('DIRECT', 'RESET') not null default 'RESET'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD holiday_activated bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Tabellenspalte hinzugef&uuml;gt.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "if-Anweisungen auf Funktion <STRONG>empty()</STRONG> umgestellt.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu_las (la_id, la_action, la_what) VALUES ('member', '', 'list_holiday')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu_las (la_id, la_action, la_what) VALUES ('member', '', 'del_holiday')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu_las (la_id, la_action, la_what) VALUES ('config', '', 'config_holiday')";
+
+               // Depends on sql_patches (or you have to execute these both SQL statements by phpMyAdmin
+               $EXT_UPDATE_DEPENDS = "sql_patches";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung in's neue Men&uuml;system integriert.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='account', sort='2', title='In Urlaub' WHERE what='holiday' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title = 'Urlaubsmanagement' WHERE action = 'holiday' AND what='' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       // Copy data to config array
+       $CONFIG['holiday_max']  = $DUMMY['holiday_max'];  // Maximum days for holiday
+       $CONFIG['holiday_lock'] = $DUMMY['holiday_lock']; // Lock deactivation in member area for X seconds
+       $CONFIG['holiday_mode'] = $DUMMY['holiday_mode']; // Mode for activating holiday
+       unset($DUMMY);
+
+       // Do we have a daily-reset-run?
+       if (((defined('__DAILY_RESET')) && ($CONFIG['holiday_mode'] == "RESET")) || ($CONFIG['holiday_mode'] == "DIRECT"))
+       {
+               // Ok, let's check for finished holidays and unlock those accounts
+               $INC_POOL[] = PATH."inc/reset/reset_holiday.php";
+       }
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "holiday";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-html_mail.php b/0.2.1/inc/extensions/ext-html_mail.php
new file mode 100644 (file)
index 0000000..167cf4b
--- /dev/null
@@ -0,0 +1,174 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/22/2004 *
+ * ================                             Last change: 05/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-html_mail.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : HTML mails with default mail() routine           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : HTML-Mails mit Standart mail()-Routine           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.5";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.51", "0.0.52", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_data add html enum('Y','N') not null default 'Y'";
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_bonus add html_msg enum('Y','N') not null default 'N'";
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_pool add html_msg enum('Y','N') not null default 'N'";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('main', 'html_mail', 'HTML-Empfang', '3', 'Y', 'Y')";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_data drop html";
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_bonus drop html_msg";
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_pool drop html_msg";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE action='main' AND what='html_mail' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='main' AND what='html_mail' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE action='main' AND what='html_mail' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Der erstellte HTML-Code wird noch kompiliert (eigene HTML-Codes umgewandelt).";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+
+       // Define all arrary variables as global!
+       global $HTML_TAGS, $URL_ENDS, $VALID_EMAI_CHARS;
+
+       // Valid HTML tags (only simple and no attributes!)
+       $HTML_TAGS = array(
+               "b",
+               "i",
+               "u",
+               "ol",
+               "ul",
+               "li",
+               "strong",
+               "center",
+               "left",
+               "right",
+               "br",
+       );
+
+       // URL ends which are used to indentify the end of an URL or email link
+       // Don't use these chars in links... ;-)
+       //
+       $URL_ENDS = array(
+               " ",
+               "\n",
+               "\r",
+               ")",
+       );
+
+       // Valid email chars (without @, or do you want to have another @ inside your email addy?)
+       $VALID_EMAIL_CHARS = array(
+               'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
+               't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
+               'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',   '-', '.', '_', '0', '1',
+               '2', '3', '4', '5', '6', '7', '8', '9'
+       );
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "html_mail";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-mailid.php b/0.2.1/inc/extensions/ext-mailid.php
new file mode 100644 (file)
index 0000000..53dc9c7
--- /dev/null
@@ -0,0 +1,250 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/22/2004 *
+ * ================                             Last change: 07/08/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-mailid.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Mail confirmation link                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mailbestaetigungslink                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.3.3";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', admin_only='N', mem_only='N' WHERE module='mailid' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='Y' WHERE module='mailid' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_extensions SET ext_lang_file='mailid' WHERE ext_name='mailid' AND ext_lang_file != 'mailid' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sprachdatei auf mailid gesetzt.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Turbo-Bonus interegiert, nur wenn bonus-Erweiterung v0.2.2 oder h&ouml;her ist.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Absicherung der Variablen <I>uid</I>, <I>mailid</I> und <I>bonusid</I> durch die eigene Funktion <I>bigintval()</I> in den beiden Dateien <I>mailid.php</I> und <I>mailid_top.php</I>.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Weisse Seite im Mozilla bzw. <I>Seite nicht gefunden</I> unter dem IE behoben.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "register_globals-Problem behoben";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mailbest&auml;tigung klappt wieder.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "5 Nachkommastellen implementiert";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Probe-Fix wegen falschen Best&auml;tigungcodes bei Druck auf Return-Taste. Bitte aktualisieren Sie auch das Template <U>mailid_confirm_buttom.tpl</U>, damit die Best&auml;tigung ohne Code auch klappt!";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate an den Scripten <U>mailid.php</U> und <STRONG>mailid_top.php</STRONG> durchgef&uuml;hrt.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sende-Pool wird nicht mehr ben&ouml;tigt, um die Best&auml;tigung durchzuf&uuml;hren.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Template <U>mailid_frameset.tpl</U> nach <U>mailid_frames.tpl</U> umbenannt.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ausgabe des generierten HTML-Codes nach <U>inc/footer.php</U> verlagert.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Variablen gefixt.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Gesamt-{!POINTS!} werden nun nach Best&auml;tigung angezeigt. Bitte aktualisieren Sie die Templates <U>mailid_points_done.tpl</U>, <U>mailid_points_done2.tpl</U> und <U>mailid_frames.tpl</U> !";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Variablen abgesichert (Diverse Warnhinweise des Webservers sind damit unterbunden).";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Parser-Fehler beseitigt.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler wegen fehlende Datenfeldelementen behoben.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Modul <STRONG>mailid</STRONG> war nicht gesetzt. Dadurch wurden die URLs (loader z.B.) umgeschrieben und f&uuml;hrten somit zu Fehlern.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Den Punkte in der Gesamt-{!POINTS!}-Anzahl in ein Komma umgewandelt.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wenn die ".POINTS." dem <STRONG>noch auf Auszahlung wartendem Guthaben</STRONG> aufaddiert wird, wird eine entsprechende Nachricht ausgegeben (neue Templates <STRONG>mailid_points_locked</STRONG> und <STRONG>mailid_points_locked2</STRONG> sind hinzugekommen!)";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bonus- und Standart-Referral-ID ausblendbar aus Aktiv-Rallye und bekommt kein Aktiv-Guthaben.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "<STRONG>Code wiederholen</STRONG> nach <STRONG>Code eingeben</STRONG> hin ge&auml;ndert.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Templates hinzugef&uuml;gt.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "mailid.php und mailid_top.php k&ouml;nnen erst bei aktivierter Erweiterung <strong>mailid</strong> benutzt werden. Solange gibt es fatale Fehlermeldungen.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bitte das Template <em><strong>".PATH."/templates/de/html/mailid/mailid_points_lcoked2.tpl</strong></em> l&ouml;schen. Noices fixed.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Variablen-Handling skriptglobal ge&auml;ndert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "mailid";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-maintenance.php b/0.2.1/inc/extensions/ext-maintenance.php
new file mode 100644 (file)
index 0000000..a61450e
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/13/2004 *
+ * ================                             Last change: 08/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-maintenance.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Maintenance mode                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Wartungsmodus                                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.6";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "alter table "._MYSQL_PREFIX."_config add maintenance enum('Y', 'N') not null default 'N';";
+       if (SQL_NUMROWS(SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE what='maintenance' LIMIT 1", __FILE__, __LINE__)) == 0)
+       {
+               // Insert menu only when not exists
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('setup', 'maintenance', 'Wartungsmodus', 'Schalten Sie den Wartungsmodus ein, nur wenn sehr schwerwiegende Fehler vorliegen, die Sie oder mxchange.org nicht schenll genug beheben k&ouml;nnen.', '10')";
+       }
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='maintenance' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung bleibt wegen integrierten Schalters immer aktiv.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['maintenance'] = $DUMMY['maintenance'];
+       unset($DUMMY);
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "maintenance";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "Y";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-mediadata.php b/0.2.1/inc/extensions/ext-mediadata.php
new file mode 100644 (file)
index 0000000..aeae078
--- /dev/null
@@ -0,0 +1,155 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/05/2005 *
+ * ================                             Last change: 03/05/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-mediadata.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : More details media data                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mehr detailiertere Mediendaten                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.8";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_mediadata";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_mediadata' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Berechnung der Gesamt-{!POINTS!} korregiert.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Daten des Scriptes mit eingebunden.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // SQL commands to run
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_mediadata";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_mediadata (
+media_key varchar(255) not null default '',
+media_value varchar(255) not null default '',
+PRIMARY KEY(media_key)
+) TYPE=MyISAM";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Teile der Mediendaten werden in seperater Tabelle gesichert. Bitte beachten Sie, dass dieses Update nur Daten des <STRONG>aktuellen</STRONG> Zustandes ber&uuml;cksichtigen kann und <STRONG>nicht</STRONG> bereits gel&ouml;schter Mitglieder.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "if-Anweisungen auf Funktion <STRONG>empty()</STRONG> umgestellt.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mediendaten mussten komplett regeneriert werden.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD mt_start bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD mt_stage bigint(20) not null default '500'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('setup', 'config_mediadata', 'Mediendaten', 'Stellen Sie allgemeine Einstellungen zu den Mediendaten ein.', 10)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Start des ".MT_WORD2." und Anzahl Anmeldungen aufgenommen. (Task #13)<br>
+Bitte stellen Sie diesen derzeit manuell unter <A href=\"".URL."/modules.php?module=admin&amp;what=config_mediadata\">Einstellungen-Medidata</A> selber einstellen.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['mt_start'] = $DUMMY['mt_start'];
+       $CONFIG['mt_stage'] = $DUMMY['mt_stage'];
+       unset($DUMMY);
+       break;
+}
+
+if ((isset($dry_run)) && (isset($EXT_LOAD_MODE)))
+{
+       if ((!$dry_run) && ($EXT_LOAD_MODE == "update") && ($EXT_VER == "0.0.4"))
+       {
+               // Add auto-check file
+               $INC_POOL[] = PATH."inc/gen_mediadata.php";
+       }
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "mediadata";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "Y";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-mods.php b/0.2.1/inc/extensions/ext-mods.php
new file mode 100644 (file)
index 0000000..5dc5197
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/17/2004 *
+ * ================                             Last change: 07/17/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-mods.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Module management (mod_reg table)                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Modul-Management (Tabelle mod_reg)               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.8";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('mods', '', 'Modul-Management', 'Verwalten Sie die Basis-Module index, login, admin usw.', 4)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('mods', 'config_mods', 'Module &auml;ndern', '&Auml;ndern Sie hier die Zugtiffsrechte auf die Module. Was dennoch nicht geht: Mitglied- oder Gastzugriffsrtechte auf Admin-Module bzw. Gastzugriffsrechte auf Mitglieder-Module. Diese sind extra abgesichert.', 1)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('mods', 'stats_mods', 'Modul-Statistiken', 'Sehen Sie sich hier die Statistiken der Module und die damit verkn&uuml;pften action- und what-Dateien an. Bei einigen Modulen gibt es allerdings keine verkn&uuml;pften Dateien und somit keine Extra-Statistik.', 2)";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='mods' LIMIT 3";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Dummy-Release im Internet???";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title = 'Modul-Management' WHERE action = 'mods' AND what='' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Verwaltung auf Management umgestellt.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "mods";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-mydata.php b/0.2.1/inc/extensions/ext-mydata.php
new file mode 100644 (file)
index 0000000..e2b8050
--- /dev/null
@@ -0,0 +1,177 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/17/2004 *
+ * ================                             Last change: 07/17/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-mydata.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Swapped out "My profile data"                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausgelagertes "Profildaten aendern"              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.8";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sperrung des Mitgliederprofiles nach &Auml;nderung kann unter &quot;Sonstige Einstellungen&quot; abgeschaltet werden (0 setzen!)";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anrede &quot;Firma&quot; hinzugef&uuml;gt.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Datumsformat festgelegt auf ausf&uuml;hrlich.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Email-Adresse wird vor dem Speichern auf G&uml;tigkeit hin getestet.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Einbindung der Erweiterung <STRONG>country</STRONG>, die Sie sich noch optional von <A href=\"".URL."/modules.php?module=admin&amp;what=extensions&amp;do=search\">meiner Seite herunterladen</A> m&uuml;ssen.<BR>
+<BR>
+<STRONG>Wichtig: Laden Sie noch die Template member_mydata_overview und member_mydata_edit (beide zu finden unter templates/".GET_LANGUAGE()."/html/member/ !) mit hoch!</STRONG>";
+
+               // Depends on 'country'!
+               $EXT_UPDATE_DEPENDS = "country";
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es werden dem Mitglied nur aktivierte L&auml;ndercodes zur Auswahl angeboten.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "SQL-Anweisungen mit SQL_QUERY_ESC() abgesichert.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die Einstellungen k&ouml;nnen nun auch ohne der Erweiterung <STRONG>country</STRONG> abgespeichert werden.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Hash-Erstellung von <STRONG>md5()</STRONG> auf bessere Funktion <STRONG>generateHash()</STRONG> umgestellt.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "mydata";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-newsletter.php b/0.2.1/inc/extensions/ext-newsletter.php
new file mode 100644 (file)
index 0000000..ed9e51e
--- /dev/null
@@ -0,0 +1,191 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/26/2005 *
+ * ================                             Last change: 02/26/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-newsletter.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Extension for sending newsletters                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Erweiterung zum Versenden von Newslettern        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.2";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='newsletter' AND what != 'send_newsletter' LIMIT 3";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='newsletter' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET locked='N', visible='Y' WHERE what='newsletter' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET locked='Y', visible='N' WHERE what='newsletter' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('newsletter', '', 'Newsletter', 'Einstellungen am Newsletter, Newsletter versenden, Abbestellungen auflisten usw.', 3)";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('newsletter', 'list_newsletter', 'Abbestellungen', 'Alle Abbestellungen auflisten und bearbeiten.', 2)";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('newsletter', 'config_newsletter', 'Einstellungen', 'Geb&uuml;hr zum Abbestellen des Newsletters usw. sind hier einstellbar.', 3)";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='newsletter', what='send_newsletter', title='Versenden', sort='1' WHERE what='newsletter' LIMIT 1";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('main', 'newsletter', 'Newsletter-Empfang', 'N', 'Y', 10)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD nl_charge float(10,2) not null default '5.00'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD nl_receive enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD nl_until varchar(10) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD nl_timespan varchar(10) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vor der eigentlichen Freigabe dieser Erweiterungen habe ich sie versehendlich im Archiv mit auf den Server hochgeladen. Diese Version f&uuml;gt die bereits angek&uuml;ndigte Funktionalit&auml;ten, wie zum Beispiel das Einstellen der Abschaltgeb&uuml;hr.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "URL im Versendeformular und Option <I>Immer aktiv</I> f&uuml;r diese Erweiterung deaktiviert.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bitte Script inc/monthly_newsletter.php l&ouml;schen!";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Script <STRONG>inc/monthly/monthly_newsletter.php</STRONG> wird nicht mehr ausgef&uuml;hrt, wenn die Erweiterung nicht aktiviert ist.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Nur bei installierter Erweiterung <STRONG>html_mail</STRONG> k&ouml;nnen Sie auch HTML-Mails versenden.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD nl_month char(2) not null default '".date("m", time())."'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Nur bei installierter Erweiterung <STRONG>html_mail</STRONG> k&ouml;nnen Sie auch HTML-Mails versenden.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP nl_currency";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&auml;hrung auf die Erweiterung <A href=\"".SERVER_URL."/extensions/ext-other.zip\"><STRONG>ext-other.zip</STRONG></A> verlagert. Bitte auch diese aktualisieren.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['nl_charge']   = $DUMMY['nl_charge'];   // Charge for your members to switch off the newsletter
+       $CONFIG['nl_month']    = $DUMMY['nl_month'];    // Last month of check interval
+       unset($DUMMY);
+
+       // URL ends which are used to indentify the end of an URL or email link
+       // Don't use these chars in links... ;-)
+       //
+       $URL_ENDS = array(
+               " ",
+               "\n",
+               "\r",
+               ")",
+       );
+
+       // Valid email chars (without @, or do you want to have another @ inside your email addy?)
+       $VALID_EMAIL_CHARS = array(
+               'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
+               't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
+               'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',   '-', '.', '_', '0', '1',
+               '2', '3', '4', '5', '6', '7', '8', '9'
+       );
+
+       if (defined('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1))
+       {
+               // Daily reset was run so let's check out for expired newsletter orders
+               $INC_POOL[] = PATH."inc/monthly/monthly_newsletter.php";
+       }
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "newsletter";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-nickname.php b/0.2.1/inc/extensions/ext-nickname.php
new file mode 100644 (file)
index 0000000..99b5b5c
--- /dev/null
@@ -0,0 +1,197 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/17/2004 *
+ * ================                             Last change: 06/17/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-nickname.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Nickname login and display in register form      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Nickname-Login und Anzeige im Anmeldeformular    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.7";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD nickname varchar(255) NOT NULL default ''";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD nick_uid enum('nick', 'uid') NOT NULL default 'uid'";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('main', 'nickname', 'Nicknamen', '5', 'Y', 'Y')";
+
+       // Load CSS file?
+       $EXT_CSS = "Y";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE action='main' AND what='nickname' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_nickname' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='main' AND what='nickname' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE action='main' AND what='nickname' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='Y' WHERE ext_name='nickname' AND ext_has_css='N' LIMIT 1";
+
+               // This update depends on sql_patches update!
+               $EXT_UPDATE_DEPENDS = "sql_patches";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "CSS-Datei kann per Adminbereich ein- und ausgeschaltet werden.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD nickname_len tinyint(4) not null default '5'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD nickname_pattern varchar(255) not null default 'a-zA-Z0-9_'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD nickname_chars varchar(255) not null default 'a-z, A-Z, 0-9, _'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('setup', 'config_nickname', 'Nicknamen', 'Stellen Sie minimale Nicknamenl&auml;nge, sowie erlaubte Zeichen hier ein.', 12)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Minimale L&auml;nge, sowie erlaubte Zeichen sind per Adminbereich &auml;nderbar. Setzen Sie als erlaubte Zeichen nur URL-konforme Zeichen ein!";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP nick_uid";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Auswahlf&uuml;r Mitglied ob mit Nickname oder User-ID einloggen entfernt.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Zum Zusenden eines neuen Passwortes kann jetzt entweder der Nickname / User-ID <U>ODER</U> die angemeldete EMail-Adresse eingegeben werden.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "CSS-Datei in general.css verschmolzen (Patch 435!)";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='extras', sort='2' WHERE what='nickname' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitglieder ohne Nickname sollten kein <strong>*failed*</strong> mehr sehen.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       define('__NICKNAME_LANG_CHARS', $DUMMY['nickname_chars']);
+       define('__NICKNAME_LENGTH'    , $DUMMY['nickname_len']);
+       define('__NICKNAME_PATTERN'   , $DUMMY['nickname_pattern']);
+       unset($DUMMY);
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "nickname";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-online.php b/0.2.1/inc/extensions/ext-online.php
new file mode 100644 (file)
index 0000000..c91f111
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/14/2005 *
+ * ================                             Last change: 01/14/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-online.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Who is where online?                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Wer befindet sich wo gerade Online?              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.4";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_online";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_online (
+id bigint(20) NOT NULL auto_increment,
+sid varchar(32) NOT NULL default '',
+ip varchar(15) NOT NULL default '',
+userid bigint(20) NOT NULL default '0',
+refid bigint(20) NOT NULL default '0',
+module varchar(255) NOT NULL default '',
+action varchar(255) NOT NULL default '',
+what varchar(255) NOT NULL default '',
+is_admin enum('Y','N') NOT NULL default 'N',
+is_member enum('Y','N') NOT NULL default 'N',
+timestamp varchar(10) not null default '0',
+PRIMARY KEY(id),
+KEY(userid),
+KEY(refid)
+) TYPE=MyISAM";
+       $SQLs[]="INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('misc','usr_online','Online-Statistik','Eine Liste von derzeit &quot;Online&quot; Usern. Doppelte Eintr&auml;ge k&ouml;nnte auf mangelnden Cookie-Support des Browsers oder auf einen Spider hindeuten.', 1)";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_online";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='misc', what='usr_online' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE action='online' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE action='online' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <U>Unknown column 'visibled' in 'field list'</U> behoben.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erstellung der Datenbanktabelle "._MYSQL_PREFIX."_online in diese Erweiterung ausgelagert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "online";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-optimize.php b/0.2.1/inc/extensions/ext-optimize.php
new file mode 100644 (file)
index 0000000..cd4baf7
--- /dev/null
@@ -0,0 +1,124 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/22/2004 *
+ * ================                             Last change: 06/28/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-optimize.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Database optimization functions                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Datenbank-Optimierungsfunktionen                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.6";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_optimize_gain(
+  id bigint(20) not null auto_increment,
+  gain decimal(10,3) not null default '0.000',
+  PRIMARY KEY(id)
+) TYPE=MyISAM";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('misc', 'optimize', 'DB optimieren', 'F&uuml;hren Sie dies ab und an aus, damit &uuml;berfl&uuml;ssige Daten aus der Datenbank entfernt werden.', '5')";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_optimize_gain";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='optimize' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung bleibt wegen integrierten Schalters immer aktiv.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "optimize";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "Y";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-order.php b/0.2.1/inc/extensions/ext-order.php
new file mode 100644 (file)
index 0000000..1c08274
--- /dev/null
@@ -0,0 +1,314 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/29/2004 *
+ * ================                             Last change: 11/14/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-order.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Swapped out order system for PRO version         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausgelagertes Buchungssytem fuer PRO-Version     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.4.7";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP order_max_full";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_order' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='order' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', admin_only='N', mem_only='Y' WHERE module='order' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='N', locked='Y' WHERE what='order' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='Y' WHERE module='order' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.1": // SQL queries for v0.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD order_max_full enum('ORDER', 'MAX') not null default 'MAX'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('setup', 'config_order', 'Mailbuchungsseite', '7', 'Einstellungen am Mailbuchungsformular.')";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Maximale Mailbuchungen sind nun vom maximalen Empfang abh&auml;gig.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_order' LIMIT 1";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('setup', 'config_order', 'Mailbuchungsseite', '7', 'Einstellungen am Mailbuchungsformular.')";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD mail_orders bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Maximale Mailbuchung vervollst&auml;ndigt (Admin-Bereich und im Buchungsformular selber).";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Maximale Mailbuchungen repariert (werden nun hochgez&auml;hlt und bei t&auml;glichem Reset auf 0 gesetzt).";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Dummy-Datenfeld wird wieder gel&ouml;scht, um Probleme zu vermeiden. Fehlende Spalte <I>mail_order</I> korregiert auf <I>mail_orders</I>.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Templates <U>member_frameset-back.tpl</U> und <U>member_frameset-send.tpl</U> nach <U>member_order_back.tpl</U> und <U>member_order_send.tpl</U> umbenannt.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es wird nun &uuml;berpr&uuml;ft ob auch gen&uuml;gend Empf&auml;nger eingegeben worden sind und ob auch gen&uuml;gend empfangsbereit sind.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD order_min bigint(20) not null default '10'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Minimum an Empf&auml;nger pro Mailbuchung einstellbar. Standart: 10 Empf&auml;nger";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anzahl mindestens einszustellende Empf&auml;nger wird nun auch angezeigt.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Speicherung der Einstellungen klappt.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler in Mailbuchung behoben: Es wurde beim Ermitteln der n&ouml;tigen {!POINTS!} die maximale Anzahl von Usern in der Kategorie gew&auml;hlt und
+nicht die vom Mitglied eingegebene. Resultat: Das Script beschwerte sich, der User h&auml;tte nicht gen&uuml;gend {!POINTS!} auf dem Konto. Ein Rechenbeispiel:
+<OL>
+  <LI>Das Mitglied w&auml;hlt eine Kategorie XYZ mit maximal 15 Empf&auml;ngern aus.</LI>
+  <LI>Es stellt die Mailart <U>&quot;3 {!POINTS!} Kosten / Mail&quot;</U> ein.</LI>
+  <LI>Es hat aber nur {!POINTS!} f&uuml;r 10 Empf&auml;nger und gibt 10 ein.</LI>
+  <LI>Das Script hatte bis zu dieser Version 3 {!POINTS!} * <U>15</U> = 45 {!POINTS!} gerechnet, hat das Mitglied mehr oder gleich 45 {!POINTS!}, fiehl dieser Fehler nicht
+  auf.</LI>
+  <LI>Hatte es aber, wie hier im Beispiel 31 {!POINTS!}, konnte es nicht mehr buchen.</LI>
+  <LI>Jetzt ist der Fehler endlich weg! Machen Sie dies bitte Ihren Mitgliedern bekannt.</LI>
+</OL>";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler mit <U>__MIN_VALUE</U> behoben.";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Konstantenproblem beseitigt.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit nicht funktionierenden Mailbuchungen beseitigt.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Basis-Modul <STRONG>order.php</STRONG> abgesichert, wenn Erweiterung nicht aktiviert ist.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD order_select varchar(255) not null default 'userid'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD order_mode enum('ASC', 'DESC') not null default 'DESC'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Beworbene URL wird nun getestet.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Datumsformat festgelegt auf ausf&uuml;hrlich.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Unter <STRONG>Einstellungen - Mailbuchungsseite</STRONG> war immer die Tabellenspalte <STRONG>Mitgliedsnummer</STRONG> ausgew&auml;hlt.";
+               break;
+
+       case "0.3.4": // SQL queries for v0.3.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Dateiamenskonflikt zwischen den Erweiterungen <STRONG>support</STRONG> und <STRONG>order</STRONG> behoben.";
+               break;
+
+       case "0.3.5": // SQL queries for v0.3.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Das Mitglied konnte geziehlt die Anzahl Mailbuchungen durch Abspeichern seines Profiles beeinflussen. Der Fehler war eine falsche Tabellenspalte. Dies war <STRONG>max_mails</STRONG>, die durch das Mitglieder ver&auml;nderbar ist und zur Festellung der Maximalen Mailbuchungen herangezogen wurde.";
+               break;
+
+       case "0.3.6": // SQL queries for v0.3.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Im Modul order (<STRONG>inc/modules/order.php</STRONG>) wurde fehlerhafterweise die Erweiterung <STRONG>beg</STRONG> getestet.";
+               break;
+
+       case "0.3.7": // SQL queries for v0.3.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "SQL-Anweisungen mit SQL_QUERY_ESC() abgesichert.";
+               break;
+
+       case "0.3.8": // SQL queries for v0.3.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mailbuchungsseite korregiert.";
+               break;
+
+       case "0.3.9": // SQL queries for v0.3.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erneuten Fehler in Mailbuchungsseite behoben.";
+               break;
+
+       case "0.4.0": // SQL queries for v0.4.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = POINTS."-Abzug klappt wieder. Danke an Andreman!";
+               break;
+
+       case "0.4.1": // SQL queries for v0.4.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.4.2": // SQL queries for v0.4.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.4.3": // SQL queries for v0.4.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Neue Urlaubsschaltung mit integriert.";
+               break;
+
+       case "0.4.4": // SQL queries for v0.4.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ein <STRONG>WHERE ext_active='Y'</STRONG> tauchte bei einigen Betreibern auf und ist mit dieser Version beseitigt.";
+               break;
+
+       case "0.4.5": // SQL queries for v0.4.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.";
+               break;
+
+       case "0.4.6": // SQL queries for v0.4.6
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('order', '', 'Mailbuchungen', 3, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('order', 'order2', 'Framekiller-Mails', 2, 'Y', 'N')";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='order', sort='1', title='Klick-Mails' WHERE what='order' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.4.7": // SQL queries for v0.4.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['order_min']    = $DUMMY['order_min'];      // Order at least X mails
+       $CONFIG['order_max']    = $DUMMY['order_max_full']; // Ordering mode: as much as possible or as much as the user want's to receive
+       $CONFIG['order_select'] = $DUMMY['order_select'];   // Sorting mode for selecting users while looking some up for mail delivery
+       $CONFIG['order_mode']   = $DUMMY['order_mode'];     // Ascending or descending sort order for above
+       unset($DUMMY);
+
+       // Do daily reset only when installed and extension version is at least 0.1.1
+       if ((defined('__DAILY_RESET')) && (!mxchange_installing) && (mxchange_installed) && (admin_registered) && (GET_EXT_VERSION("order") >= "0.1.1"))
+       {
+               // Reset mail order values
+               $result_ext = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data SET mail_orders='0' WHERE mail_orders > 0", __FILE__, __LINE__);
+       }
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "order";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-other.php b/0.2.1/inc/extensions/ext-other.php
new file mode 100644 (file)
index 0000000..8e84b7d
--- /dev/null
@@ -0,0 +1,195 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/19/2004 *
+ * ================                             Last change: 10/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-other.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Other administrative settings                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Weitere administrative Einstellungen             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.8";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <FONT class=\"admin_failed\">Warning: Missing argument 2 for create_timestamp_from_selections() in ".PATH."inc/libs/pro_functions.php on line 227</FONT> behoben.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Speichern der Einstellungen vereinfacht. Es wird dazu die Funktion ADMIN_SAVE_SETTINGS() verwendet.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD max_comma tinyint(4) not null default '3'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Angezeigte Kommastellen k&ouml;nnen zwischen 0 und 5 eingestellt werden.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen endlich beseitigt.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ausgabemodus der CSS-Dateien hinzugef&uuml;gt. Bitte auch das Admin-Template aktualisieren!";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung bleibt wegen integrierten Schalters immer aktiv.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern der Einstellungen repariert.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Folgende Einstellungen k&ouml;nnen auf 0 gesetzt werden:
+<OL>
+<LI>Selbe beworbene URL nicht mehr bewerbar (0 = URL kann sofort wieder gebucht werden)</LI>
+<LI>G&uuml;tigkeitsdauer der Best&auml;tigungslinks (0 = Best&auml;tigungslinks laufen nie ab)</LI>
+<LI>Sperrzeit des Mitgliedprofiles nach &Auml;nderung (0 = Mitglied kann sein Account immer und sofort &auml;ndern)</LI>
+<LI>Profilaktualisierungsinterval (0 = Es wird keine Mail zum Profilaktualisierunng durch das Mitglied ausgesendet(</LI>
+<LI>Erneute Aussendung der Mail (0 = Siehe oben)</LI>
+</OL>";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Gast- und Mitgliedsmen&uuml;s lassen sich voneinander getrentt ein- und auschalten.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wort &quot;Baustelle&quot; vom Auto-Versand entfernt, da dieser nun klappt.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD reject_url varchar(255) not null default '".URL."'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bei Ablehnung der URL wird jetzt endlich eine Standart-URL eingesetzt, die konfigurierbar ist. Fehler beim Laden der Konfiguration gefunden.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD currency varchar(255) not null default '&euro;'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Standart-W&auml;hrung der Geb&uuml;hren f&uuml;r alle Erweiterungen geltend hinzugef&uuml;gt.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die sonstigen Einstellungen lassen sich nun nur noch &auml;ndern, wenn die Erweiterung <strong>other</strong> auch installiert ist. Anderfalls gibt es einen SQL-Fehler beim Speichern und GROSS_GESCHRIEBENE Worte im Formular.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['max_comma']  = $DUMMY['max_comma'];  // Maximum numbers behind commata
+       $CONFIG['reject_url'] = $DUMMY['reject_url']; // Default rejection URL
+       define('__CURRENCY', $DUMMY['currency']);     // This is the currency for fees! They shall normally remain in real money currencies...
+       unset($DUMMY);
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "other";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "Y";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-payout.php b/0.2.1/inc/extensions/ext-payout.php
new file mode 100644 (file)
index 0000000..089c3e7
--- /dev/null
@@ -0,0 +1,252 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/11/2004 *
+ * ================                             Last change: 11/15/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-payout.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Payout extension                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auszahlung-Erweiterung                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version of this extension
+$EXT_VERSION = "0.3.8";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_payouts";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_user_payouts (
+id bigint(20) NOT NULL auto_increment,
+userid bigint(20) NOT NULL default '0',
+payout_total double(22,3) NOT NULL default '0.000',
+target_account varchar(255) NOT NULL default '',
+target_bank varchar(255) NOT NULL default '',
+payout_id bigint(20) NOT NULL default '0',
+payout_timestamp varchar(10) NOT NULL default '0',
+status enum('NEW', 'ACCEPTED', 'REJECTED') NOT NULL default 'NEW',
+KEY(userid),
+KEY(payout_id),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_payout_types";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_payout_types (
+id bigint(20) NOT NULL auto_increment,
+type varchar(255) NOT NULL default '',
+rate double(22,3) NOT NULL default '0.000',
+min_points bigint(20) NOT NULL default '0',
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('setup', 'config_payouts', 'Auszahlungen', 'Auszahlungsarten einstellen, neu anlegen oder l&ouml;schen.', '15')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('payouts', 'list_payouts', 'Anfragen auflisten', 'Listet alle Auszahlungsanfragen Ihrer Mitglieder auf.', '16')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES('main', 'payout', 'Auszahlungen', 'N', 'N', '11')";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_payouts";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_payout_types";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='payouts'";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE action='main' AND what='payout' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='main' AND what='payout' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE action='main' AND what='payout' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.1.2": // SQL queries for v0.1.2
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('payouts', '', 'Auszahlungsmanagement', 'Management der Auszahlungsarten.', '8')";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='payouts', title='Einstellungen' WHERE action='setup' AND what='config_payouts' LIMIT 1";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types ADD from_account varchar(255) NOT NULL default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types ADD from_pass varchar(255) NOT NULL default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types ADD engine_url varchar(255) NOT NULL default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types ADD engine_ret_ok varchar(255) NOT NULL default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types ADD engine_ret_failed varchar(255) NOT NULL default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types ADD pass_enc enum('md5', 'base64', 'none') NOT NULL default 'md5'";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_payouts ADD password varchar(255) NOT NULL default ''";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_payouts ADD target_url longblob NOT NULL";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_payouts ADD banner_url longblob NOT NULL";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_payouts ADD link_text varchar(30) NOT NULL default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types ADD allow_url enum('Y', 'N') NOT NULL default 'N'";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types CHANGE pass_enc pass_enc enum('md5', 'base64', 'xxx') NOT NULL default 'xxx'";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Auflistung der Auszahlungen ausgelagert in Template <I>member_payout.tpl</I>.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "5 Nachkommastellen implementiert.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_payouts CHANGE payout_total payout_total double(22,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types CHANGE rate rate double(22,5) not null default '0.00000'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Buttons aus Aufgabenauflisten ausgelagert";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ausgabe der Auszahlungsm&ouml;glichkeiten im Mitgliedsbereich repariert.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum Mitgliedsprofil in Funktion <U>ADMIN_USER_PROFILE_LINK()</U> ausgelagert.";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Work-Arount-L&ouml;sung zu tempor&auml;ren Problemen mit der Task-ID eingebaut.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Nachricht an Admin bei Auszahlungsanfrage wird endlich versendet.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler in Auszahlungsfunktion beseitigt, wenn Umrechnungsrate ungleich 1 eingestellt ist.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.3.4": // SQL queries for v0.3.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anzahl zu &uuml;berweisende {!POINTS!} m&uuml;ssen immer gr&ouml;sser 0 sein, ansonsten bricht das Script mit einer Fehlermeldung an das Mitglied ab.";
+               break;
+
+       case "0.3.5": // SQL queries for v0.3.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.3.6": // SQL queries for v0.3.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Hash-Erstellung von <STRONG>md5()</STRONG> auf bessere Funktion <STRONG>generateHash()</STRONG> umgestellt.";
+               break;
+
+       case "0.3.7": // SQL queries for v0.3.7
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title = 'Auszahlungsmanagement' WHERE action = 'payouts' AND what='' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Verwaltung nach Management umgestellt.";
+               break;
+
+       case "0.3.8": // SQL queries for v0.3.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "payout";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-profile.php b/0.2.1/inc/extensions/ext-profile.php
new file mode 100644 (file)
index 0000000..87ce68a
--- /dev/null
@@ -0,0 +1,138 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/01/2004 *
+ * ================                             Last change: 12/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-profile.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Profile update notificatios                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Profilaktualisierungserinnerungen                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.9";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Benachrichtungsmails werden nur beim t&auml;gichen Reset ausgesendet";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "5 Nachkommastellen implementiert";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Dummy-Release im Intranet??? Hmmm...";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Profilaktualisierungsmails werden nur dann ausgesendet, wenn <U>profile_update</U> und <U>prof_reupdate</U> &gt; 0 sind.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Datumsformat festgelegt auf ausf&uuml;hrlich.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Namenskonflikt gel&ouml;sst mit Erweiterung <STRONG>update</STRONG> (kommt noch raus!)";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       // Do we have a daily-reset-run?
+       if (defined('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1))
+       {
+               // So let's check for profiles which needs an update
+               $INC_POOL[] = PATH."inc/profile-updte.php";
+       }
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "profile";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-rallye.php b/0.2.1/inc/extensions/ext-rallye.php
new file mode 100644 (file)
index 0000000..f54cc7f
--- /dev/null
@@ -0,0 +1,358 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/19/2004 *
+ * ================                             Last change: 12/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-rallye.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Referal rallye                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ref-Rallyes starten                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.3.4";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_data";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_prices";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_users";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_rallye_data (
+id bigint(20) not null auto_increment,
+admin_id bigint(20) not null default '0',
+title varchar(255) not null default '',
+descr longblob not null,
+template varchar(255) not null default '',
+start_time varchar(10) not null default '0',
+end_time varchar(10) not null default '0',
+auto_add_new_user enum('Y', 'N') not null default 'Y',
+is_active enum('Y', 'N') not null default 'N',
+send_notify enum('Y', 'N') not null default 'Y',
+notified enum('Y', 'N') not null default 'N',
+KEY (admin_id),
+PRIMARY KEY (id)
+) TYPE=MyISAM";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_rallye_prices (
+id bigint(20) not null auto_increment,
+rallye_id bigint(20) not null default '0',
+price_level bigint(20) not null default '0',
+points bigint(20) not null default '0',
+info longblob not null,
+KEY (rallye_id),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_rallye_users (
+id bigint(20) not null auto_increment,
+rallye_id bigint(20) not null default '0',
+userid bigint(20) not null default '0',
+refs bigint(20) not null default '0',
+KEY (rallye_id),
+KEY (userid),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+       // Admin menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('rallye', '', 'Rallye-Management', 'Richten Sie neue Ref-Rallyes ein, die zeitgesteuert anfangen und aufh&ouml;hren. Dabei wird alles weitere automatisch geregelt.', '9')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('rallye', 'add_rallye', 'Neue Rallye hinzuf&uuml;gen', 'Neue Ref-Rallye hinzuf&uuml;gen.', '1')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('rallye', 'config_rallye_prices', 'Preise einrichten', 'Richten Sie Preise zu den Rallyes ein.', '2')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('rallye', 'list_rallyes', 'Rallyes verwalten', 'Alle bestehenden Ref-Rallyes auflisten, bearbeiten, stoppen, l&ouml;schen usw.', '3')";
+       // Guest menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, visible, locked, sort) VALUES ('main', 'rallyes', 'Ref-Rallyes', 'Y', 'Y', '9')";
+       // Member menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES('main', 'rallyes', 'Ref-Rallyes', 'Y', 'Y', '9')";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_data";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_prices";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_users";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='rallye' LIMIT 4";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE what='rallye' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='rallye' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE what='rallyes' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='rallyes' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE what='rallyes' LIMIT 1";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE what='rallyes' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD expired enum('Y', 'N') not null default 'N'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ablaufen der Rallyes intergriert.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_users ADD curr_points double(23,3) not null default '0.000'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Aktueller {!POINTS!}-Stand wird beachtet.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <I>Unknown column 'd.useid' in 'on clause'</I> behoben.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <U>Template nicht gefunden</U> behoben und Admin-Formulare ausgelagert";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist. Und der vorherige Fehler <U>Template nicht gefunden</U> ist endlich beseitigt.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_users CHANGE curr_points curr_points double(23,5) not null default '0.00000'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "5 Nachkommastellen implementiert.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anzeigefehler im Gast-/Mitgliedsbereich behoben.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Admin-Mails korregiert.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Aktivierte bzw. abgelaufene Rallyes werden nur ausserhalb des CSS-Modus geladen (wenn also nicht css.php aufgerufen wurde)";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Weitere Templates vom Admin-Bereich ausgelagert und Referral-Anazahl in der Mail zur Rallye-Ank&uuml;ndigung repariert.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Funktion ADMIN_USER_PROFILE_LINK() mit Verlinkung auf Referral-Liste implementiert.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD min_users bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD min_prices bigint(20) not null default '3'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ablaufen der Rallyes intergriert. Bauen Sie in Ihr Template <STRONG>templates/de/emails/member/member_rallye_notifty.tpl</STRONG> folgende zwei Zeilen ein:<BR>
+<UL>
+  <LI>&#36;DATA&#91;min_users&#93;</LI>
+  <LI>&#36;DATA&#91;min_prices&#93;</LI>
+</UL>
+Zudem sollten Sie mindestens folgende Templates (in <STRONG>templates/".GET_LANGUAGE()."/html/guest/</STRONG> !) aktualisieren:<BR>
+<UL>
+  <LI><STRONG>guest_rallye_footer.tpl</STRONG></LI>
+  <LI><STRONG>guest_rallye_header.tpl</STRONG></LI>
+</UL>";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Links wegen <STRONG>what=admins_contct</STRONG> ge&auml;ndert.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkt &quot;Rallyes verwalten&quot; repariert.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Automatisches Starten von Referral-Rallyes repariert.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fatalen Fehler beseitigt.";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "if-Anweisungen auf Funktion <STRONG>empty()</STRONG> umgestellt.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung f&uuml;r automatisch generierte Admin-Kontaktlinks ge&auml;ndert.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='rals', sort='1', title='Referral-Rallye' WHERE what='rallyes' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Rallyes werden nun nur dann automatisch beseitigt, wenn die Erweiterung <strong>autopurge</strong> installiert und aktiviert ist.";
+               break;
+
+       case "0.3.4": // SQL queries for v0.3.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       // Do stuff only when not in CSS mode
+       if (($CSS != "1") && ($CSS != "-1"))
+       {
+               // Get total member count
+               $TOTAL = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true);
+
+               // Add more data on higher versions
+               $ADD1 = ""; $ADD2 = ""; $OR = "";
+               if (GET_EXT_VERSION("rallye") >= "0.2.0")
+               {
+                       $ADD1 = ", min_users, min_prices";
+                       $ADD2 = ", d.min_users, d.min_prices";
+                       $OR   = " OR (d.min_users <= ".$TOTAL." AND d.min_users > 0)";
+               }
+
+               // Check for new started but not notified rallyes
+               $result = SQL_QUERY("SELECT SQL_SMALL_RESULT id, title, start_time, end_time, send_notify".$ADD1."
+FROM "._MYSQL_PREFIX."_rallye_data
+WHERE is_active='Y' AND notified='N' AND expired='N' AND start_time <= ".time()." AND end_time > ".time()."
+LIMIT 1", __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Start rallye
+                       RALLYE_AUTOSTART_RALLYES($result);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Check for expired rallyes
+               $result = SQL_QUERY("SELECT SQL_SMALL_RESULT d.id, d.title, d.start_time, d.end_time, d.send_notify".$ADD2."
+FROM "._MYSQL_PREFIX."_rallye_data AS d
+WHERE d.is_active='Y' AND d.notified='Y' AND d.expired='N' AND (d.end_time <= ".time()."".$OR.")
+LIMIT 1", __FILE__, __LINE__);
+               if ((SQL_NUMROWS($result) == 1) && (EXT_IS_ACTIVE("autopurge")))
+               {
+                       // End rallye here...
+                       RALLYE_EXPIRE_RALLYES($result);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "rallye";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-register.php b/0.2.1/inc/extensions/ext-register.php
new file mode 100644 (file)
index 0000000..6b51035
--- /dev/null
@@ -0,0 +1,340 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/29/2004 *
+ * ================                             Last change: 11/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-register.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Swapped out registration system for new members  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausgelagertes Anmeldesystem fuer Mitglieder      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.5.2";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7", "0.4.8", "0.4.9", "0.5.0", "0.5.1", "0.5.2");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+
+       // Load own CSS file?
+       $EXT_CSS = "Y";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='setup' AND what='config_register' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.1": // SQL queries for v0.1
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_must_register";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_must_register (
+id bigint(20) NOT NULL auto_increment,
+field_name varchar(255) not null default '',
+field_required enum('Y', 'N') not null default 'Y',
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+
+               // Add all entries as required (DO NOT DELETE THEM FROM DATABASE!)
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_must_register (field_name, field_required) VALUES ('surname', 'Y')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_must_register (field_name, field_required) VALUES ('family_name', 'Y')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_must_register (field_name, field_required) VALUES ('street_nr', 'Y')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_must_register (field_name, field_required) VALUES ('cntry', 'Y')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_must_register (field_name, field_required) VALUES ('zip', 'Y')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_must_register (field_name, field_required) VALUES ('city', 'Y')";
+
+               // Add admin menu
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('setup', 'config_register', 'Pflichtfelder', 'Stellen Sie hier die Pflichtfelder sowohl im Anmeldeformular, als auch im Mitgliedsbereich unter <STRONG>Profildaten &auml;ndern</STRONG> ein.', 12)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Einstellbare Pflichtfelder hinzugef&uuml;gt.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='Y' WHERE ext_name='register' AND ext_has_css='N' LIMIT 1";
+
+               // This update depends on sql_patches update!
+               $EXT_UPDATE_DEPENDS = "sql_patches";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "CSS-Datei kann per Admin-Bereich ein- und ausgeschaltet werden.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // This update depends on sql_patches update!
+               $EXT_UPDATE_DEPENDS = "sql_patches";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Standart Referral-ID kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Konfiguration der Pflichtangaben ausgelagert in Template";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Pflichtfelder wieder eingebaut (waren irgentwie ausgebaut???)";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "S&auml;mtliche Sperren bei eingeloggten Admin deaktiviert.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Cookie <U>refid</U> aus Anmeldeformular entfernt.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Referral-ID wird endlich korrekt gesetzt.";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Parse error in <U>what-register.php</U> beseitigt.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anrede &quot;Firma&quot; hinzugef&uuml;gt.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Email-Adresse wird vor dem Speichern auf G&uml;tigkeit hin getestet.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Einbindung der Erweiterung <STRONG>country</STRONG>, die Sie sich noch optional von <A href=\"".URL."/modules.php?module=admin&amp;what=extensions&amp;do=search\">meiner Seite herunterladen</A> m&uuml;ssen.<BR>
+<BR>
+<STRONG>Wichtig: Laden Sie noch das Template <STRONG>guest_register.tpl</STRONG> mit hoch, welches unter templates/".GET_LANGUAGE()."/html/guest/ zu finden ist!</STRONG>";
+
+               // Depends on 'country'
+               $EXT_UPDATE_DEPENDS = "country";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es werden dem Mitglied nur aktivierte L&auml;ndercodes zur Auswahl angeboten.";
+               break;
+
+       case "0.3.4": // SQL queries for v0.3.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Auf Grund der Integration der neue Erweiterung <STRONG>country</STRONG> in die Anmeldephase klappte die Anmeldung nicht. Die dazu n&uuml;tige Verkn&uuml;pfung ist nun eingebaut und die Anmeldung klappt wieder. Vielen Dank nochmals an den Bug-Reporter (Fehlermelder)!";
+               break;
+
+       case "0.3.5": // SQL queries for v0.3.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design wird nach Anmeldung auch endlich im Mitgliedsmen&uuml; &uuml;bernommen.";
+               break;
+
+       case "0.3.6": // SQL queries for v0.3.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlermeldung <STRONG>Fatal error: Call to undefined function: get_theme() in /../../guest/what-register.php on line 190</STRONG> beseitigt.";
+               break;
+
+       case "0.3.7": // SQL queries for v0.3.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlermeldung <STRONG>Fatal error: Call to undefined function: get_curr_theme<U>e</U>() in /../../guest/what-register.php on line 190</STRONG> beseitigt.";
+               break;
+
+       case "0.3.8": // SQL queries for v0.3.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Weitere SQL-Befehle abgesichert.";
+               break;
+
+       case "0.3.9": // SQL queries for v0.3.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.4.0": // SQL queries for v0.4.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.4.1": // SQL queries for v0.4.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               break;
+
+       case "0.4.2": // SQL queries for v0.4.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD register_default ENUM('Y', 'N') NOT NULL DEFAULT 'N'";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='config_register2' WHERE what='config_reg' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Bei der Anmeldung kann die Standart-Auswahl zwischen Ja/Nein umgeschaltet werden. Das &Auml;ndern des Templates <STRONG>templates/".GET_LANGUAGE()."/html/guest/guest_register.tpl</STRONG> ist nicht mehr n&ouml;tig.";
+               break;
+
+       case "0.4.3": // SQL queries for v0.4.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Parser-Error in <STRONG>inc/modules/guest/what-register.php</STRONG> beseitigt.";
+               break;
+
+       case "0.4.4": // SQL queries for v0.4.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anmeldefehler (EMail-Adresse war immer ein Ausrufezeichen) beseitigt.";
+               break;
+
+       case "0.4.5": // SQL queries for v0.4.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "if-Anweisungen auf Funktion <STRONG>empty()</STRONG> umgestellt.";
+               break;
+
+       case "0.4.6": // SQL queries for v0.4.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Einstellung nach ".POINTS."-Einstellungen verlagert.";
+               break;
+
+       case "0.4.7": // SQL queries for v0.4.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "<STRONG>setcookie()</STRONG> mit @-Zeichen gegen ungewollte Ausgaben abgesichert.";
+               break;
+
+       case "0.4.8": // SQL queries for v0.4.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Hash-Erstellung von <STRONG>md5()</STRONG> auf bessere Funktion <STRONG>generateHash()</STRONG> umgestellt.";
+               break;
+
+       case "0.4.9": // SQL queries for v0.4.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit nicht anzeigbaren Kategorien in der Anmeldung beseitigt.";
+               break;
+
+       case "0.5.0": // SQL queries for v0.5.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlermeldung <em><strong>Fatal error:</strong> Call to undefined function REGISTER_ADD_CATEGORY_TABLE() in <strong>{!PATH!}/inc/modules/guest/what-register.php</strong> on line <strong>434</strong></em> beseitigt.";
+               break;
+
+       case "0.5.1": // SQL queries for v0.5.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mail-Template <strong>register-member.tpl</strong> gefixt. Danke an <A href=\"http://forum.mxchange.org/profile-59.html\" target=\"_blank\" title=\"Mitgliedsprofil aufrufen\">wliepe</A> f&uuml;r die Fehlerfindung!";
+               break;
+
+       case "0.5.2": // SQL queries for v0.5.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       // Copy data to config array
+       $CONFIG['register_default'] = $DUMMY['register_default']; // Is Yes/No the default selection in category selection?
+       unset($DUMMY);
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "register";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-repair.php b/0.2.1/inc/extensions/ext-repair.php
new file mode 100644 (file)
index 0000000..cc2c205
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/24/2004 *
+ * ================                             Last change: 05/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-repair.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Repair extension                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Reperatur-Erweiterung                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.5";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('repair', '', 'Reperaturen', '7', 'Repariert u.a. die Kategorie-Auswahlen der Mitglieder usw.')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('repair', 'repair_cats', 'Kategorieauswahlen', '1', 'Repariert die Kategorieauswahlen Ihrer Mitglieder.')";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='repair' LIMIT 5";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.1": // SQL queries for v0.1
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('repair', 'repair_amenu', 'Admin-Men&uuml;', 2, 'Repariert die Gewichtung des Admin-Men&uuml;-Systems')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('repair', 'repair_gmenu', 'Gast-Men&uuml;', 3, 'Repariert die Gewichtung des G&auml;ste-Men&uuml;-Systems')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('repair', 'repair_mmenu', 'Mitglied-Men&uuml;', 4, 'Repariert die Gewichtung des Mitglieder-Men&uuml;-Systems')";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "F&uuml;gt ein Men&uuml;punkt zur Reperatur der Gewichtung des Admin-Men&uuml;s hinzu.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Dummy-Release im Intranet??? Hmmmm....";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='repair_amnu' WHERE what='repair_amenu' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='repair_gmnu' WHERE what='repair_gmenu' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='repair_mmnu' WHERE what='repair_mmenu' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Konflikt mit Men&uuml;-Erweiterung und dieser behoben. Dateien what-repair_*menu.php sind <U>obsulete</U> (veraltet, bitte l&ouml;schen!)";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "repair";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-rewrite.php b/0.2.1/inc/extensions/ext-rewrite.php
new file mode 100644 (file)
index 0000000..4fb2de0
--- /dev/null
@@ -0,0 +1,151 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/24/2004 *
+ * ================                             Last change: 10/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-rewrite.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Rewrites own links for search engines            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Schreibt eigene Links um fuer Suchmaschinen      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.2";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_rewrite' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Folgende Linkvariablen werden nun auch ausgetauscht: bid, mid, url, page, offset";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Folgende Linkvariablen werden nun auch ausgetauscht: type, do=search";
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "URLs zu MXChange.org (".SERVER_URL.") sind nun auch g&uuml;ltig.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Folgende Linkvariablen werden nun auch ausgetausch: sub, home";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Links im Admin- und Mitgliedsbereich werden nicht mehr umgeschrieben. Entsprechend f&auml;llt die neue .htaccess-Datei kleiner aus. Bitte anpassen!";
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Links im Frametester-Modul werden nicht mehr umgeschrieben.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD rewrite_skip varchar(255) not null default 'login:admin:frametester:mailid'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_rewrite', 'Rewrite-Engine', 'Stellen Sie hier ein, welche Module &uuml;bersprungen werden sollen, in denen also kein Umschreiben des HTML-Codes stattfinden soll.', 8)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Zu &uuml;berspringende Module k&ouml;nnen per Admin-Bereich eingestellt werden.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['rewrite_skipped_mods'] = $DUMMY['rewrite_skip'];
+       unset($DUMMY);
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "rewrite";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-sql_patches.php b/0.2.1/inc/extensions/ext-sql_patches.php
new file mode 100644 (file)
index 0000000..22b0b9a
--- /dev/null
@@ -0,0 +1,618 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/21/2004 *
+ * ================                             Last change: 12/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-sql_patches.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : SQL fixes for pro versions                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausgelagertes "Profildaten aendern"              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.4.0";
+
+// Auto-set extension version
+if (!isset($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE
+(action='theme' AND (what='theme_import' OR what='theme_edit')) OR
+what='config_extensions' OR
+what='config_home' OR
+what='list_unconfirmed' OR
+what='config_refid' OR
+what='config_title' OR
+what='sub_points' OR
+what='config_admin' OR
+what='list_norefs' LIMIT 12";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_themes";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE action='themes' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE
+action='themes' OR
+what='themes' OR
+(action='stats' AND what='') OR
+(action='extras' AND what='') OR
+(action='rals' AND what='') OR
+(action='account' AND what='') LIMIT 7";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='main' WHERE
+action='stats' OR
+action='extras' OR
+action='rals' OR
+action='account'";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_las";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_las_data";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_stats";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ext_autopurge enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_extensions', 'Erweitungsmanagement', 'Alle Einstellungen am Erweiterungsmanagement.', 10)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es kann nun bestimmt werden, ob vom Server gel&ouml;schte ext-xxx.php erkannt werden sollen und die verkn&uuml;pften Daten auch aus der Datenbank entfernt werden sollen.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config CHANGE auto_purge auto_purge bigint(20) not null default '1209600'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "In der Tabelle <STRONG>mxchange_config</STRONG> musste die Spalte <STRONG>auto_purge</STRONG> (autom. L&ouml;schen von Best&auml;tigungsmails angepasst werden (war auf dem Testsystem auf tiny(4) gesetzt.)";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD points_word varchar(255) not null default 'Punkte'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Das Wort &quot;Punkte&quot; kann nun per Datenbank ge&auml;ndert werden. Damit k&ouml;nnen Sie anstelle des Wortes Punkte auch Klammlose oder &euro; schreiben.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD mails_page bigint(20) not null default '10'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anzahl Mails pro Seite in <STRONG>EMail-Details ansehen</STRONG> und <STRONG>EMail-Archiv</STRONG> hinzugef&uuml;gt.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD index_home varchar(255) not null default 'welcome'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_home', 'Home-Seite festlegen', 'Stellen Sie hier ein, welcher Men&uuml;punkt (what-welcome ist Standart) als Einstiegspunkt in das Men&uuml;system genutzt werden soll.', 5)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die what-welcome.php ist derzeit die &quot;Home&quot;-Seite (Eingangsseite). Dies kann nun per Datenbank ge&auml;ndert werden.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_extensions ADD ext_has_css enum('Y', 'N') not null default 'N'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es k&ouml;nnen nun SQL-Updates von einander abh&auml;ngig gemacht werden und die CSS-Datei kann per Admin-Bereich (wegen Debuggings) ein- bzw. ausgeschaltet werden.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD verbose_sql enum('Y', 'N') not null default 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD menu_blur_spacer varchar(255) not null default '&nbsp;<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Nette Mouse-Hover-Effekte eingebaut (Anleitung <STRONG>MENUE_HOVER.txt</STRONG> zum Patchen der general.css bitte lesen!)";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('email', 'list_unconfirmed', 'Unbest. Mails auflisten', 'Schauen Sie sich hier unbest&auml;tigte Maillinks an. Bitte diesen Link nur &uuml;ber dem EMail-Archiv oder EMail-Details aufrufen, direkt aufgerufen bekommen Sie eine Fehlermeldung.', 8)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Unbest&auml;tigte Maillinks k&ouml;nnen unter Email-Management -&gt; Unbest. Mails auflisten aufgelistet werden.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD reg_points_mode enum('ref', 'direct') not null default 'ref'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Soll der einmalige Ref-Bonus &uuml;ber das Referral-System (also alle oberen Refs bekommen auch etwas davon ab) oder direkt dem Werber aufgebucht werden?";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title='Home-/Eingangsseite', descr='Stellen Sie hier ein, welcher Men&uuml;punkt (what-welcome ist Standart) als Einstiegspunkt in das Men&uuml;system genutzt werden soll und wie die automatische Weiterleitung in der Eingangsseite funktionieren soll.' WHERE what='config_home' LIMIT 1";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD index_delay tinyint(4) not null default '-1'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD index_cookie bigint(20) not null default '31536000'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sie k&ouml;nnen nun <A href=\"".URL."/modules.php?module=admin&amp;what=config_home\">hier</A> die Verz&ouml;gerungszeit in der <A href=\"".URL."/index.php\">Eingangsseite</A> einstellen.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_refid', 'Standart-Ref-ID', 'Stellen Sie hier die User-ID ein, die genommen werden soll, wenn der Gast n icht per Referral-Link Ihren Mailtausch aufgerufen hat.', 7)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD def_refid bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Standart Referral-ID kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD refid_target enum('register', 'index') not null default 'register'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD default_theme varchar(255) not null default '".GET_CURR_THEME()."'";
+               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='theme' LIMIT 3";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('theme', '', 'Themes', 'Verwalten Sie hier alle Designs (Themes) Ihres Mailtausch-Scriptes.', 8)";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('theme', 'theme_import', 'Importieren', 'Es wird das Verzeichnis &quot;theme&quot; nach neuen Ordnern durchsucht und anschliessend in die Datenbank gesperrt aufgenommen.', 1)";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('theme', 'theme_edit', 'Modifizieren', '&Auml;ndern Sie Titel, Freigaben usw. an den Themes. Sie k&ouml;nnen bis auf das Standart-Theme &quot;default&quot; auch Themes aus der Datenbank entfernen. Vorher sollten Sie es jedoch vom Server l&ouml;schen, damit es niht erneut importiert werden kann.', 2)";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, sort, visible, locked) VALUES ('themes', '', 'Design-Auswahl', 4, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('themes', '', 'Design-Auswahl', 3, 'Y', 'N')";
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_themes";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_themes (
+id bigint(20) not null auto_increment,
+theme_path varchar(255) not null default '',
+theme_active enum('Y', 'N') not null default 'N',
+theme_ver varchar(255) not null default '0.0',
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Theme-Support integriert. Bitte laden Sie sich zu dieser Version das <A href=\"http://www.mxchange.org\">281-Patch</A> (wenn Ihr Script v0.2.0-pre7 ist) herunter, da ansonsten die Themes nicht klappen werden!";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_extensions DROP ext_has_admin";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Spalte <U>ext_has_admin</U> aus der Tabelle <U>"._MYSQL_PREFIX."_extensions</U> entfernt, da sie keinen Sinn mehr macht.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD enable_title_deco enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD title_left varchar(10) not null default '[--'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD title_middle varchar(10) not null default '-'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD title_right varchar(10) not null default '--]'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD enable_mod_title enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD enable_what_title enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_title', 'Seitentitel &auml;ndern', 'De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Dekorationen des Seitentiteles lassen sich ein- und ausschalten und selber definieren; Modul-Titel und Titel der <STRONG>what</STRONG>-Dateien kann hinzugef&uuml;gt werden.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "mad_counter und last_mad werden nun aus der Datenbank geladen";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_jackpot CHANGE points points double(22,5) not null default '0.00000'";
+
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payments CHANGE payment payment double(22,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payments CHANGE price price double(22,5) not null default '0.00000'";
+
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE used_points used_points double(22,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_points CHANGE points points double(22,5) not null default '0.00000'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_points CHANGE locked_points locked_points double(22,5) not null default '0.00000'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "5 Nachkommastellen implementiert";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD css_php enum('DIRECT', 'FILE') not null default 'FILE'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung bleibt wegen integrierten Schalters immer aktiv.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD guest_menu enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD member_menu enum('Y', 'N') not null default 'Y'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD youre_here enum('Y', 'N') not null default 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Gast- und Mitgliedsmen&uuml;s lassen sich getrennt voneinander abschalten.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               $auto_type = "png"; // PNG image is the default
+               if ((file_exists(PATH."theme/".GET_CURR_THEME()."/images/code_bg.jpg")) && function_exists('imagecreatefromjpeg'))
+               {
+                       // Switch to JPEG format
+                       $auto_type = "jpg";
+               }
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD img_type enum('jpg', 'png') not null default '".$auto_type."'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Generierung des Mailbest&auml;tigungscodes h&auml;ngt davon ab, ob die PHP-Funktion <U>imagecreatefromjpeg()</U> und das JPEG-Bild vorhanden sind oder nicht.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE receive_mails receive_mails bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE max_mails max_mails bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Spalten <U>max_mails</U> und <U>receive_mails</U> auf bigint(20) gesetzt.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('user', 'sub_points', '{!POINTS!} abziehen', 'Allen oder einem Mitglied {!POINTS!} abziehen.', 8)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abzug von {!POINTS!} nun m&ouml;glich.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort) VALUES ('main', 'themes', 'Designs', 6)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD curr_theme varchar(255) not null default 'default'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD stats_limit bigint(20) not null default '10'";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='config_stats' WHERE what='stats' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "<OL>
+<LI>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</LI>
+<LI>Mitgliederstatistik mit Seitennavigation.</LI>
+</OL>";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD last_login varchar(10) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Letzter Login wird gespeichert, Cache wird bei installierter Cache-Erweiterung bei Sprachen&auml;nderung aufgefrischt.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD mt_word varchar(255) not null default 'Mailtausch'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD mt_word2 varchar(255) not null default 'Mailtausches'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD mt_word3 varchar(255) not null default 'Mailtauscher'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title='{!POINTS!}/Referral-Ebenen' WHERE what='config_points' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title='Mailverg&uuml;tungen...' WHERE what='payments' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Zwei Men&uuml;punkte umbenannt.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_extensions ADD UNIQUE KEY (ext_name)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_themes ADD UNIQUE KEY (theme_path)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_themes ADD INDEX (theme_active)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins ADD UNIQUE KEY (login)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD INDEX (status)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_refbanner ADD INDEX (visible)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_refdepths ADD UNIQUE KEY (level)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_refsystem ADD INDEX (level)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_pool ADD INDEX (data_type)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_mod_reg ADD UNIQUE KEY (module)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admin_menu ADD INDEX (action)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admin_menu ADD INDEX (what)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system ADD INDEX (task_type)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system ADD INDEX (status)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system ADD INDEX (task_created)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system ADD FULLTEXT (subject)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system ADD INDEX (subject)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_extensions ADD INDEX (ext_active)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD INDEX (status)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD FULLTEXT (family)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD INDEX (max_mails)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD INDEX (password)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu ADD INDEX (action)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu ADD INDEX (what)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu ADD INDEX (sort)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu ADD INDEX (visible)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu ADD INDEX (locked)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_member_menu ADD INDEX (what)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_member_menu ADD INDEX (sort)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_member_menu ADD INDEX (visible)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_member_menu ADD INDEX (locked)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_cats ADD INDEX (visible)";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_cats ADD INDEX (sort)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Eindeutige Schl&uuml;ssel (UNIQUE KEY) und normale Schl&uuml;ssel (INDEX) gesetzt.";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Connection table between the menu system and the "logical area" system
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_las";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_admin_menu_las (
+id bigint(20) not null auto_increment,
+la_id varchar(255) not null default '',
+la_action varchar(255) not null default '',
+la_what varchar(255) not null default '',
+INDEX (la_id),
+INDEX (la_action),
+INDEX (la_what),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+               // All "logical areas" together
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_las_data";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_admin_menu_las_data (
+id bigint(20) not null auto_increment,
+la_id varchar(255) not null default '',
+la_title varchar(255) not null default '',
+la_posx bigint(20) not null default '0',
+la_posy bigint(20) not null default '0',
+UNIQUE KEY (la_id),
+INDEX (la_posx),
+INDEX (la_posy),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+               // Which menu do you like?
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD admin_menu enum('NEW', 'OLD') not null default 'OLD'";
+
+               // Insert menus
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_admin', 'Adminmen&uuml;', 'Diverse Einstellungen am Adminmen&uuml; vornehmen.', 9)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Logische Bereiche (Logical Areas = LAs) eingef&uuml;hrt. Dadurch wird das immer st&auml;rker anwachsende Admin-Men&uuml; in grosse Hauptgruppen unterteilt, wodurch ein Auffinden von Men&uuml;punkten verbessert wird.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD admin_menu_sorter enum('Y', 'N') not null default 'Y'";
+
+               // The statistics table
+               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_stats";
+               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_admin_menu_stats (
+id bigint(20) not null auto_increment,
+aid bigint(20) not null default '0',
+type enum('la', 'action', 'what') not null default 'what',
+clicks bigint(20) not null default '0',
+INDEX (aid),
+PRIMARY KEY (id)
+) TYPE=MyISAM";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Admin-abh&auml;ngig werden nun Klicks im Admin-Men&uuml; gez&auml;hlt, die zur automatischen Anpassung des Men&uuml;s in den logischen Bereichen diennen. Dieses &quot;intelligente Unbauen&quot; k&ouml;nnen Sie auch ganz abschalten.";
+               break;
+
+       case "0.3.4": // SQL queries for v0.3.4
+               // List accounts with no referral
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('user', 'list_norefs', 'Mitglieder ohne Werber', 'Finden Sie hier alle Mitglieder-Accounts, die von niemandem ({--MAIN_TITLE--} wird in der Mail als Werber angegebenen) geworben wurden.', 7)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "F&uuml;gt den Men&uuml;punkt &quot;Mitglieder ohne Werber&quot; in die Mitglieder-Management hinzu. Mit dieser neuen Funktion k&ouml;nnen Sie nach Mitglieder-Accounts ohne Werber suchen. TODO-ID #2 CLOSED";
+               break;
+
+       case "0.3.5": // SQL queries for v0.3.5
+               // List accounts with no referral
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('stats', '', 'Statistiken', 4, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('stats', 'stats2', 'Framekiller-Mails', 2, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('extras', '', 'Extras', 5, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('rals', '', 'Rallyes', 6, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('account', '', 'Ihr Account', 7, 'Y', 'N')";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET sort='8' WHERE action='themes' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='stats', sort='1', title='Klick-Mails' WHERE what='stats' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='account', sort='1', title='Designs' WHERE what='themes' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='extras', sort='3' WHERE what='reflinks' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               break;
+
+       case "0.3.6": // SQL queries for v0.3.6
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD salt_length tinyint(4) not null default '9'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD pass_scramble varchar(255) not null default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data MODIFY password varchar(255) not null default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data MODIFY user_hash varchar(255) not null default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins MODIFY password varchar(255) not null default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD rand_no bigint(20) not null default '0'";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD file_hash varchar(255) not null default ''";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD master_salt varchar(255) not null default ''";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_config SET rand_no=(ROUND(RAND() * 99999) + 100000) WHERE config='0' LIMIT 1";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_mod_reg ADD has_menu enum('Y', 'N') NOT NULL default 'N'";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET has_menu='Y' WHERE module='admin' OR module='index' OR module='login' LIMIT 3";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)";
+               break;
+
+       case "0.3.7": // SQL queries for v0.3.7
+               $UPDATE_NOTES = "Problem w&auml;hrend des Installationsvorganges behoben.";
+               break;
+
+       case "0.3.8": // SQL queries for v0.3.8
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admin_menu CHANGE descr descr MEDIUMTEXT NULL";
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_pool CHANGE `text` `text` LONGTEXT NOT NULL";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.";
+               break;
+
+       case "0.3.9": // SQL queries for v0.3.9
+               $SQLs[] = "UPDATE  "._MYSQL_PREFIX."_admin_menu SET title = REPLACE(title, '--POINTS--', '!POINTS!') WHERE title LIKE '%--POINTS--%'";
+               $SQLs[] = "UPDATE  "._MYSQL_PREFIX."_admin_menu SET descr = REPLACE(descr, '--POINTS--', '!POINTS!') WHERE descr LIKE '%--POINTS--%'";
+               $SQLs[] = "UPDATE  "._MYSQL_PREFIX."_guest_menu SET title = REPLACE(title, '--POINTS--', '!POINTS!') WHERE title LIKE '%--POINTS--%'";
+               $SQLs[] = "UPDATE  "._MYSQL_PREFIX."_member_menu SET title = REPLACE(title, '--POINTS--', '!POINTS!') WHERE title LIKE '%--POINTS--%'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.";
+               break;
+
+       case "0.4.0": // SQL queries for v0.4.0
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title = 'Email-Management' WHERE action = 'email' AND what='' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Email-Verwaltung nach Email-Management umbenannt.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+
+       // When the sql_patches is not installed we cannot load it's configuration... *sigh*
+       if (GET_EXT_VERSION("sql_patches") != "") {
+               $CONFIG['ext_autopurge']     = $DUMMY['ext_autopurge'];
+               $CONFIG['mails_page']        = $DUMMY['mails_page'];
+               $CONFIG['index_home']        = $DUMMY['index_home'];
+               $CONFIG['verbose_sql']       = $DUMMY['verbose_sql'];
+               $CONFIG['middot']            = $DUMMY['menu_blur_spacer'];
+               $CONFIG['reg_points_mode']   = $DUMMY['reg_points_mode'];
+               $CONFIG['index_delay']       = $DUMMY['index_delay'];
+               $CONFIG['index_cookie']      = $DUMMY['index_cookie'];
+               $CONFIG['def_refid']         = $DUMMY['def_refid'];
+               $CONFIG['refid_target']      = $DUMMY['refid_target'];
+               $CONFIG['default_theme']     = $DUMMY['default_theme'];
+               $CONFIG['title_decoration']  = $DUMMY['enable_title_deco'];
+               $CONFIG['title_mod_show']    = $DUMMY['enable_mod_title'];
+               $CONFIG['title_what_show']   = $DUMMY['enable_what_title'];
+               $CONFIG['title_left']        = $DUMMY['title_left'];
+               $CONFIG['title_middle']      = $DUMMY['title_middle'];
+               $CONFIG['title_right']       = $DUMMY['title_right'];
+               $CONFIG['mad_counter']       = $DUMMY['mad_count'];
+               $CONFIG['last_mad']          = $DUMMY['mad_timestamp'];
+               $CONFIG['css_php']           = $DUMMY['css_php'];
+               $CONFIG['guest_menu']        = $DUMMY['guest_menu'];
+               $CONFIG['member_menu']       = $DUMMY['member_menu'];
+               $CONFIG['youre_here']        = $DUMMY['youre_here'];
+               $CONFIG['img_type']          = $DUMMY['img_type'];
+               $CONFIG['stats_limit']       = $DUMMY['stats_limit'];
+               $CONFIG['admin_menu']        = $DUMMY['admin_menu'];
+               $CONFIG['admin_menu_sorter'] = $DUMMY['admin_menu_sorter'];
+               $CONFIG['salt_length']       = $DUMMY['salt_length'];
+               $CONFIG['pass_scramble']     = trim($DUMMY['pass_scramble']);
+               $CONFIG['file_hash']         = trim($DUMMY['file_hash']);
+               $CONFIG['master_salt']       = trim($DUMMY['master_salt']);
+               $CONFIG['secret_key']        = "";
+
+               // Read key from secret file
+               if ((empty($CONFIG['file_hash'])) || (empty($CONFIG['master_salt'])) || (empty($CONFIG['pass_scramble'])))
+               {
+                       // Maybe need setup of secret key!
+                       require_once(PATH."inc/gen_sql_patches.php");
+
+                       if (GET_EXT_VERSION("cache") >= "0.1.2")
+                       {
+                               // Remove extensions and mod_reg cache file
+                               require_once(PATH."inc/libs/cache_functions.php");
+                               require_once(PATH."inc/extensions/ext-cache.php");
+                               if ($CACHE->cache_file("extensions", true)) $CACHE->cache_destroy();
+                               if ($CACHE->cache_file("mod_reg", true)) $CACHE->cache_destroy();
+                       }
+               }
+
+               // Test again
+               if ((!empty($CONFIG['file_hash'])) && (!empty($CONFIG['master_salt'])) && (!empty($CONFIG['pass_scramble'])))
+               {
+                       // File hash fas generated so we can also file the secret file... hopefully.
+                       if ((file_exists(PATH."inc/.secret/.".$CONFIG['file_hash'])) && (is_readable(PATH."inc/.secret/.".$CONFIG['file_hash'])))
+                       {
+                               $CONFIG['secret_key'] = implode("", file(PATH."inc/.secret/.".$CONFIG['file_hash']));
+                       }
+                        else
+                       {
+                               // Cannot read secret file!
+                               die("Cannot read secret file!");
+                       }
+               }
+
+               // Transfer words/numbers to constants
+               define('POINTS'  , $DUMMY['points_word']);
+               define('MT_WORD' , $DUMMY['mt_word']);
+               define('MT_WORD2', $DUMMY['mt_word2']);
+               define('MT_WORD3', $DUMMY['mt_word3']);
+               define('_MAX'    , $DUMMY['rand_no']);
+       } else {
+               // Set some lame ;-) default settings
+               $CONFIG['def_refid'] = 0;
+               $CONFIG['title_decoration'] = "N";
+               $CONFIG['title_mod_show']   = "Y";
+               $CONFIG['title_middle']     = "-";
+               //$CONFIG['verbose_sql']      = "N";
+               define('MT_WORD' , DEFAULT_MT_WORD );
+               define('MT_WORD2', DEFAULT_MT_WORD2);
+               define('POINTS'  , DEFAULT_POINTS);
+       }
+
+       // Remove dummy config array
+       unset($DUMMY);
+       break;
+}
+
+// Language file prefix (hmmm, what shall I write with SQL fixes? ;-) )
+$EXT_LANG_PREFIX = "sql_patches";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "Y";
+
+//
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/extensions/ext-support.php b/0.2.1/inc/extensions/ext-support.php
new file mode 100644 (file)
index 0000000..5d24d79
--- /dev/null
@@ -0,0 +1,139 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/29/2004 *
+ * ================                             Last change: 05/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-support.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Swapped out support system                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausgelagertes Support-System                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.2";
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Dateiamenskonflikt zwischen den Erweiterungen <STRONG>support</STRONG> und <STRONG>order</STRONG> behoben.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate vom 27.08.2005.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern der Support-Anfrage repariert und Mail wird an Mitglied wieder versendet.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "support";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-task.php b/0.2.1/inc/extensions/ext-task.php
new file mode 100644 (file)
index 0000000..b9433b0
--- /dev/null
@@ -0,0 +1,255 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/10/2004 *
+ * ================                             Last change: 09/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-task.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Task management                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Aufgabenverwaltung                               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.3.1";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('task', '', 'Aufgaben-Management', '1', 'Erweitertes Aufgaben-Management zur leichten verwaltung der vom System erzeugten Aufgaben.')";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, sort, descr) VALUES ('task', 'list_task', 'Aufgaben auflisten', '1', 'Alle Ihnen zugewiesenen Aufgaben auflisten (keine Updates).')";
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE status='CLOSED'";
+
+       // Enable CSS file?
+       $EXT_CSS = "Y";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='task' LIMIT 2";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='Y' WHERE ext_name='task' AND ext_has_css='N' LIMIT 1";
+
+               // This update depends on sql_patches update!
+               $EXT_UPDATE_DEPENDS = "sql_patches";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "CSS-Datei kann per Admin-Bereich ein- und ausgeschaltet werden.";
+               break;
+
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Unn&ouml;tige Script-Teile aus what-list_tasks.php herausgel&ouml;scht; beim Anzeigen einer Extension-Update, oder -Register Aufgabe werden bei eingeschaltetem Verbose-Modus alle SQL-Anweisungen aufgelistet.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <FONT class=\"admin_failed\">Warning: Missing argument 2 for create_timestamp_from_selections() in ".PATH."inc/libs/pro_functions.php on line 227</FONT> behoben.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "&amp;admin= in &amp;amp;admin= umgewandelt.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erstellung der Extra-&Uuml;bersichten verbessert.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler bei Abfrage der payout-Erweiterung beseitigt.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Task-Liste ausgelagert als Template";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum Mitgliedsprofil in Funktion <U>ADMIN_USER_PROFILE_LINK()</U> ausgelagert.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Links wegen <STRONG>what=admins_contct</STRONG> ge&auml;ndert.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Weitere Direkt-Links eingebaut:<BR>
+<UL>
+  <LI>L&auml;ndercodes (<STRONG><A href=\"".SERVER_URL."/extensions/ext-country.zip\">ext-country.zip</A></STRONG>)</LI>
+  <LI>Wartende Verdopplungen (<STRONG><A href=\"".SERVER_URL."/extensions/ext-doubler.zip\">ext-doubler.zip</A></STRONG>)</LI>
+  <LI><STRONG>Ge&auml;ndert:</STRONG> Wartende Auszahlungen (<STRONG><A href=\"".SERVER_URL."/extensions/ext-payout.zip\">ext-payout.zip</A></STRONG>)</LI>
+  <LI>Teilnehmer an der Aktiv-Rallye (<STRONG><A href=\"".SERVER_URL."/extensions/ext-bonus.zip\">ext-bonus.zip</A></STRONG>; nur wenn Version neuer oder gleich 0.2.3 ist!)</LI>
+  <LI>Nett hinweisende Linktitel hinzugef&uuml;gt. :-)</LI>
+</UL>";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Direkt Links zum Sponsorenbereich vorbereitend eingebaut.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Es werden alle installierten und aktivierten Themes angezeigt und verlinkt.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "CSS-Datei in general.css verschmolzen (Patch 435!)";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Alle Administratoren, Referral-Banner und aktivierte Referral-Banner werden nun eingeblendet.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit &uuml;berlanger Textbreite beseitigt.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum Freischalten von Sponoren-Accounts korregiert.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sortierungsreihenfolge grundlegend ge&auml;ndert: Es wird jetzt nach Mitglieder-ID, Aufgabenbereich, Infos und nach dem Erstellunsdatum sortiert.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "<STRONG>Nur mit bonus v0.6.9 oder h&ouml;her:</STRONG> Zuschaltbare Bonis werden auch bei der Ermittlung Anzahl teilnehmender Mitglieder mit ber&uumk;cksichtigt.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Teilnehmer der Bettel-Rallye werden angezeigt.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum direkten Aufheben einer Urlaubsschaltung eines Mitgliedes korregiert.";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "if-Anweisungen auf Funktion <STRONG>empty()</STRONG> umgestellt. Update-Aufgaben werden nach &quot;Bearbeitung&quot; nicht mehr als <STRONG>Erledigt</STRONG> gesetzt. Dies hatte sonst den Anschein, die Update-Aufgaben m&uuml;ssten erledigt werden, um die Erweiterungs-Updates einzuspielen, was aber automatisch geschieht.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Export-Accounts werden in Task-&Uuml;bersicht aufgelistet.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Diverse Fixes an den Templates (Notice-Hinweise vom PHP-Interpreter entfernt).";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "task";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-theme.php b/0.2.1/inc/extensions/ext-theme.php
new file mode 100644 (file)
index 0000000..43d9c0c
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/22/2004 *
+ * ================                             Last change: 06/28/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-theme.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Theme Management                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Theme-Management                                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.0.6";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('theme', 'theme_check', 'Pr&uuml;fen', 'Nach neuen Themes suchen bzw. nach Updates zu den Themes suchen.', 3)";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='theme_check' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code f&uuml;r ein Zeilen-Template ausgelagert.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Im Men&uuml;punkt &quot;Pr&uuml;fen&quot; wurden die bereits installierten und auch aktuellen Themes nicht ausgeblendet.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "<STRONG>setcookie()</STRONG> mit @-Zeichen gegen ungewollte Ausgaben abgesichert.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Variablen-Handling skriptglobal ge&auml;ndert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "theme";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-top10.php b/0.2.1/inc/extensions/ext-top10.php
new file mode 100644 (file)
index 0000000..1e99c57
--- /dev/null
@@ -0,0 +1,158 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/20/2004 *
+ * ================                             Last change: 11/20/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-top10.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : TOP10 clicker / points amount / etc.             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : TOP10-Klicker / Guthaben / Ref-Werber            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.1.2";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, visible, locked, sort) VALUES ('main', 'top10', 'TOP-10', 'Y', 'Y', 7)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_top10', 'TOP-10 Listen', 'Stellen Sie hier ein, wie lang die TOP-Listen sein sollen, also wie viele Pl&auml;tze angezeigt werden sollen.', 8)";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD top10_max tinyint(4) not null default '10'";
+
+       // Load CSS file?
+       $EXT_CSS = "Y";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE what='top10' LIMIT 1";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_top10' LIMIT 1";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP top10_max";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE what='top10' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE what='top10' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <I>Column: 'userid' in group statement is ambiguous</I> im Gastbereich beseitigt.";
+               break;
+
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.4": // SQL queries for v0.0.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Im Gastbereich konnte als Nicht-Admin die Seite nicht ge&ouml;ffnet werden.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Rechtschreibefehler beseitigt.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['top10_max'] = $DUMMY['top10_max'];
+       unset($DUMMY);
+       break;
+}
+
+// Language file prefix
+$EXT_LANG_PREFIX = "top10";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-transfer.php b/0.2.1/inc/extensions/ext-transfer.php
new file mode 100644 (file)
index 0000000..3f33d7a
--- /dev/null
@@ -0,0 +1,315 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/07/2004 *
+ * ================                             Last change: 07/08/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-transfer.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Point transfers between members                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punktetransfers zwischen Mitgliedern             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.2.9";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_transfers_in";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_transfers_out";
+
+       // Transfer from a member
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_user_transfers_in (
+id bigint(20) not null auto_increment,
+userid bigint(20) not null default '0',
+from_uid bigint(20) not null default '0',
+points bigint(20) not null default '0',
+reason varchar(255) not null default '',
+time_trans varchar(14) not null default '0',
+trans_id varchar(12) not null default '',
+KEY (userid),
+KEY (from_uid),
+PRIMARY KEY(id)
+) Type=MyISAM";
+
+       // Transfers to a member
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_user_transfers_out (
+id bigint(20) not null auto_increment,
+userid bigint(20) not null default '0',
+to_uid bigint(20) not null default '0',
+points bigint(20) not null default '0',
+reason varchar(255) not null default '',
+time_trans varchar(14) not null default '0',
+trans_id varchar(12) not null default '',
+KEY (userid),
+KEY (to_uid),
+PRIMARY KEY(id)
+) Type=MyISAM";
+
+       // Admin menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('transfer', '', '{!POINTS!}-Transfer', 'Verwalten Sie hier die {!POINTS!}-Transaktionen zwischen Ihren Mitgliedern.', 7)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('transfer', 'list_transfer', 'Auflisten', 'Hier bekommen Sie alle ein- und ausgehende Transaktionen aufgelistet.', 1)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('transfer', 'config_transfer', 'Einstellungen', 'Stellen Sie ein, wie viele Transaktionen aufgelistet werden sollen und wie alt diese werden d&uuml;rfen. Die evtl. installierte autopurge-Erweiterung kann dann automatisch die veralteten Transktionen l&ouml;schen.', 2)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('transfer', 'del_transfer', 'Manuell l&ouml;schen', 'Hier k&ouml;nnen Sie - abgesehen von der automatischen L&ouml;schung - Transaktionen selber l&ouml;schen. Bitte beachten Sie, dass immer aus- und eingehende Transaktionen gleichzeitig gel&ouml;scht werden.', 3)";
+
+       // Member menu
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('main', 'transfer', '{!POINTS!}-Transfer', 'Y', 'Y', 5)";
+
+       // Add config values
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD transfer_max bigint(20) not null default '50'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD transfer_age bigint(20) not null default '".(ONE_DAY*28)."'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD transfer_timeout bigint(20) not null default '".ONE_DAY."'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD transfer_balance bigint(20) not null default '100'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD transfer_code bigint(20) not null default '5'";
+
+       // Add row(s) to user's data
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD opt_in enum('Y', 'N') not null default 'N'";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_transfers_in";
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_transfers_out";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='transfer' LIMIT 4";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='transfer' LIMIT 1";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP transfer_max";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP transfer_age";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP transfer_timeout";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP transfer_balance";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP transfer_code";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP opt_in";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='transfer' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE what='transfer' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.2": // SQL queries for v0.0.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler <FONT class=\"admin_failed\">Warning: Missing argument 2 for create_timestamp_from_selections() in ".PATH."inc/libs/pro_functions.php on line 227</FONT> behoben.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "&Uuml;berfl&uuml;ssige unset()-Anweisungen aus der what-config_transfer.php entfernt. Dies wird bereits von der eigenen Funktion ADMIN_SAVE_SETTINGS() erledigt.";
+               break;
+
+       case "0.0.3": // SQL queries for v0.0.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
+               break;
+
+       case "0.0.5": // SQL queries for v0.0.5
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD ap_transfer enum('Y', 'N') not null default 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link <I>Auflisten</LI> im Admin-Bereich hatte das eingeloggte Mitglied und nicht den eingeloggten Admin abgefragt. Automatisches L&ouml;schen von veraltete Eintr&auml;gen kann unabh&auml;ngig von der autopurge-Erweiterung de-/aktiviert werden. Bitte aktualisieren Sie auch die beiden Admin-Templates!";
+               break;
+
+       case "0.0.6": // SQL queries for v0.0.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.";
+               break;
+
+       case "0.0.7": // SQL queries for v0.0.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.0.8": // SQL queries for v0.0.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit E in Transaktionsnummer beseitigt.";
+               break;
+
+       case "0.0.9": // SQL queries for v0.0.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               break;
+
+       case "0.1.0": // SQL queries for v0.1.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               break;
+
+       case "0.1.2": // SQL queries for v0.1.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum Mitgliedsprofil in Funktion <U>ADMIN_USER_PROFILE_LINK()</U> ausgelagert.";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Template <u>admin_config_transfer_pro.tpl</u> ist &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Wort <STRONG>Punkte</STRONG> dynamisiert.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Parser-Error im Mitgliedsbereich beseitigt.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Durchf&uuml;hrung des Transfers korregiert.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu_las (la_id, la_action, la_what) VALUES ('member', '', 'list_transfer')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu_las (la_id, la_action, la_what) VALUES ('member', '', 'del_transfer')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu_las (la_id, la_action, la_what) VALUES ('config', '', 'config_transfer')";
+
+               // Depends on sql_patches (or you have to execute these both SQL statements by phpMyAdmin
+               $EXT_UPDATE_DEPENDS = "sql_patches";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung in's neue Men&uuml;system integriert.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "<STRONG>Touring-Code wiederholen</STRONG> nach <STRONG>Touring-Code eingeben</STRONG> hin ge&auml;ndert.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='extras', sort='5' WHERE what='transfer' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett ge&auml;ndert.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Hash-Erstellung von <STRONG>md5()</STRONG> auf bessere Funktion <STRONG>generateHash()</STRONG> umgestellt.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Die ".POINTS." k&ouml;nnen nun wieder wie gewohnt transferiert werden. Der Grund f&uuml;r <em>".TRANSFER_INVALID_PASSWORD."</em> war, dass der Cookie-Hash ein anderer ist, als der in der Datenbank... :-/";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlermeldung <em>Notice: Undefined index: to_uid in ".PATH."/inc/modules/member/what-transfer.php on line 301</em> gefixt. Danke an <a href=\"http://forum.mxchange.org/profile-8.html\" target=\"_blank\" title=\"Forumprofil von Piter01\">Piter01</a>.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       // Maximum of listed transfers for out- and in-transfers
+       $CONFIG['transfer_max']     = $DUMMY['transfer_max'];
+       // Age in seconds
+       $CONFIG['transfer_age']     = $DUMMY['transfer_age'];
+       // Lock timeout for member settings
+       $CONFIG['transfer_timeout'] = $DUMMY['transfer_timeout'];
+       // Balance after points transfer
+       $CONFIG['transfer_balance'] = $DUMMY['transfer_balance'];
+       // Length of touring code
+       $CONFIG['transfer_code']    = $DUMMY['transfer_code'];
+       // Length of touring code
+       $CONFIG['ap_transfer']      = $DUMMY['ap_transfer'];
+       unset($DUMMY);
+
+       if ((defined('__DAILY_RESET')) && ($CONFIG['ap_transfer'] == "Y"))
+       {
+               // Automatically remove outdated or not displayed transactions
+               TRANSFER_AUTPPURGE($CONFIG['transfer_max'], $CONFIG['transfer_age']);
+       }
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "transfer";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-user.php b/0.2.1/inc/extensions/ext-user.php
new file mode 100644 (file)
index 0000000..9e311fb
--- /dev/null
@@ -0,0 +1,230 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/29/2004 *
+ * ================                             Last change: 10/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-user.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Swapped out user management                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausgelagertes Mitglieder-Management              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version number
+$EXT_VERSION = "0.3.3";
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0", "0.1", "0.1.1", "0.1.2", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "0.2.0", "0.2.1", "0.2.2", "0.2.3", "0.2.4", "0.2.5", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "";
+
+       // Load CSS-File?
+       $EXT_CSS = "Y";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_user' OR what='user_contct' LIMIT 2";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.1": // SQL queries for v0.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD user_limit int(7) not null default '20'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seitenweises Anzeigen der User-Liste ist nun m&ouml;glich.";
+               break;
+
+       case "0.1.1": // SQL queries for v0.1.1
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='Y' WHERE ext_name='user' AND ext_has_css='N' LIMIT 1";
+
+               // This update depends on sql_patches update!
+               $EXT_UPDATE_DEPENDS = "sql_patches";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "CSS-Datei kann per Admin-Bereich ein- und ausgeschaltet werden.";
+
+       case "0.1.2": // SQL queries for v0.1.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD mails_confirmed bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Dem Mitglied wird nun angezeigt, wie viele Mails er best&auml;tigt hat. Alle vor dieser Version best. Mails werden leider nicht mehr ber&uuml;cksichtigt! Bitte teilen Sie dies Ihren Mitgliedern mit.";
+               break;
+
+       case "0.1.3": // SQL queries for v0.1.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Den Pfad <I>Sie sind hier</I> im Men&uuml;punkt <U>Online-Liste</U> erweitert.";
+               break;
+
+       case "0.1.4": // SQL queries for v0.1.4
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD emails_received bigint(20) not null default '0'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anzahl empfangener Mails wird angezeigt. <BIG>Diese Anzeige kann fehlerhaft sein, wenn Sie bereits Mitglieder in Ihrem {!MT_WORD!} haben sollen!</BIG>";
+               break;
+
+       case "0.1.5": // SQL queries for v0.1.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.6": // SQL queries for v0.1.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               break;
+
+       case "0.1.7": // SQL queries for v0.1.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Erweiterung bleibt wegen integrierten Schalters immer aktiv.";
+               break;
+
+       case "0.1.8": // SQL queries for v0.1.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               break;
+
+       case "0.1.9": // SQL queries for v0.1.9
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Link zum Mitgliedsprofil in Funktion <U>ADMIN_USER_PROFILE_LINK()</U> ausgelagert.";
+               break;
+
+       case "0.2.0": // SQL queries for v0.2.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "User-Liste ausgelagert in Templates und &uuml;berbreite Zeile in 2er-Zeile umgewandelt.";
+               break;
+
+       case "0.2.1": // SQL queries for v0.2.1
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD user_alpha tinyint(4) not null default '10'";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('setup', 'config_user', 'Mitgliederliste', 'Anzahl Mitglieder pro Seite, Anzahl Buchstaben pro Zeile usw.', 8)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "User-Liste ist konfigurierbar: Anzahl Mitglieder pro Seite und Anzahl Buchstaben pro Zeile; Template-Fehler beseitigt.";
+               break;
+
+       case "0.2.2": // SQL queries for v0.2.2
+               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE sex sex enum('M', 'F', 'C') not null default 'M'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Anrede &quot;Firma&quot; hinzugef&uuml;gt.";
+               break;
+
+       case "0.2.3": // SQL queries for v0.2.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Datumsformat festgelegt auf ausf&uuml;hrlich.";
+               break;
+
+       case "0.2.4": // SQL queries for v0.2.4
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               break;
+
+       case "0.2.5": // SQL queries for v0.2.5
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "SQL-Anweisungen abgesichert.";
+               break;
+
+       case "0.2.6": // SQL queries for v0.2.6
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               break;
+
+       case "0.2.7": // SQL queries for v0.2.7
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               break;
+
+       case "0.2.8": // SQL queries for v0.2.8
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "if-Anweisungen auf Funktion <STRONG>empty()</STRONG> umgestellt.";
+               break;
+
+       case "0.2.9": // SQL queries for v0.2.9
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('user', 'user_contct', 'Mitglied kontaktieren', 'Kontaktieren Sie hier Ihre Mitglieder ganz direkt &uuml;ber ein Webformular. Sie brauchen somit kein EMail-Programm mehr starten!', 8)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Admin-Kontaktformular hinzugef&uuml;gt.";
+               break;
+
+       case "0.3.0": // SQL queries for v0.3.0
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Hash-Erstellung von <STRONG>md5()</STRONG> auf bessere Funktion <STRONG>generateHash()</STRONG> umgestellt.<br />Diverse Fixes f&uuml;r <em>0.2.1-Beta1</em> Release.";
+               break;
+
+       case "0.3.1": // SQL queries for v0.3.1
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title = 'Mitglieder-Management' WHERE action = 'user' AND what='' LIMIT 1";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Verwaltung auf Management umgestellt";
+               break;
+
+       case "0.3.2": // SQL queries for v0.3.2
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "PHP-Hinweis in Userauflistung gefixt (trat bei fehlender nickname-Erweiterung auf) und Darstellungsfehler von <strong>0.00000</strong> unbest&auml;tigten Mails gefixt.";
+               break;
+
+       case "0.3.3": // SQL queries for v0.3.3
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Mitglieder sind nun per Formular kontaktierbar (es wird eine EMail versendet), gesperrte und best&auml;tigte Mitglieder-Accounts sind seperat oder gemeinsam auflistbar (seperat nur mit der Erweiterung <em>task</em>!)";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['user_limit'] = $DUMMY['user_limit'];
+       $CONFIG['user_alpha'] = $DUMMY['user_alpha'];
+       unset($DUMMY);
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "user";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "Y";
+
+//
+?>
diff --git a/0.2.1/inc/extensions/ext-wernis.php b/0.2.1/inc/extensions/ext-wernis.php
new file mode 100644 (file)
index 0000000..d82e998
--- /dev/null
@@ -0,0 +1,116 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/11/2004 *
+ * ================                             Last change: 11/15/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-wernis.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Payout extension                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auszahlung-Erweiterung                           *
+ * -------------------------------------------------------------------- *
+ * Modified payout extension! See: http://www.mxchange.org for details  *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Version of this extension
+$EXT_VERSION = "0.0";
+
+// Auto-set extension version
+if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+
+// Version history array (add more with , "0.1" and so on)
+$EXT_VER_HISTORY = array("0.0");
+
+switch ($EXT_LOAD_MODE)
+{
+case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_wernis";
+       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_user_wernis (
+id bigint(20) NOT NULL auto_increment,
+userid bigint(20) NOT NULL default '0',
+wernis_account varchar(255) NOT NULL default '',
+wernis_amount double(22,5) NOT NULL default '0.00000',
+wernis_timestamp varchar(10) NOT NULL default '0',
+wernis_type ENUM('IN','OUT') NOT NULL default 'OUT',
+KEY(userid),
+PRIMARY KEY(id)
+) TYPE=MyISAM";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD wernis_min_amount bigint(20) not null default '40000'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD wernis_api_id bigint(20) not null default '0'";
+       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD wernis_api_md5 varchar(32) not null default ''";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('wernis', '', '{!POINTS!}-Management', 'Konfiguration zur WDS66-API einstellen, Auszahlungen auflisten usw..', 15)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('wernis', 'config_wernis', 'WDS66-API-Einstellungen', 'Konfiguration zur WDS66-API einstellen.', 1)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('wernis', 'list_wernis', '{!POINTS!}-Anfragen auflisten', 'Listet alle {!POINTS!}-Auszahlungsanfragen Ihrer Mitglieder auf.', 2)";
+       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES('main', 'wernis', '{!POINTS!}-Ein-/Auszahlungen', 'N', 'N', '11')";
+       break;
+
+case "remove": // Do stuff when removing extension
+       // SQL commands to run
+       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_user_wernis";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='wernis'";
+       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE action='main' AND what='wernis' LIMIT 1";
+       break;
+
+case "activate": // Do stuff when admin activates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='main' AND what='wernis' LIMIT 1";
+       break;
+
+case "deactivate": // Do stuff when admin deactivates this extension
+       // SQL commands to run
+       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE action='main' AND what='wernis' LIMIT 1";
+       break;
+
+case "update": // Update an extension
+       switch ($EXT_VER)
+       {
+       case "0.0.1": // SQL queries for v0.0.1
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "";
+               break;
+       }
+       break;
+
+default: // Do stuff when extension is loaded
+       $DUMMY = LOAD_CONFIG("0");
+       $CONFIG['wernis_min_amount'] = $DUMMY['wernis_min_amount'];
+       $CONFIG['wernis_api_id']     = $DUMMY['wernis_api_id'];
+       $CONFIG['wernis_api_md5']    = $DUMMY['wernis_api_md5'];
+       unset($DUMMY);
+       break;
+}
+// Language file prefix
+$EXT_LANG_PREFIX = "wernis";
+
+// Extension is always active?
+$EXT_ALWAYS_ACTIVE = "N";
+
+//
+?>
diff --git a/0.2.1/inc/fatal_errors.php b/0.2.1/inc/fatal_errors.php
new file mode 100644 (file)
index 0000000..edee328
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/29/2003 *
+ * ===============                              Last change: 01/16/2008 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : fatal_errors.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Outputs fatal errors                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Gibt fatale Fehler aus                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+if ((sizeof($FATAL) > 0) || (!empty($FATAL[0])))
+{
+       // Main div container
+       LOAD_TEMPLATE("fatal_header");
+
+       // Set unset variable
+       if (empty($check)) $check = "";
+       if (mxchange_installing) {
+               // While we are installing ouput other header than while it is installed... :-)
+               $OUT = "";
+               foreach ($FATAL as $key=>$value) {
+                       // Prepare content for the template
+                       $content = array(
+                               'key'   => ($key + 1),
+                               'value' => $value
+                       );
+
+                       // Load row template
+                       $OUT .= LOAD_TEMPLATE("install_fatal_row", true, $content);
+               }
+
+               // Load main template
+               LOAD_TEMPLATE("install_fatal_table", false, $OUT);
+       } elseif (mxchange_installed) {
+               // Display all runtime fatal errors
+               $OUT = "";
+               foreach ($FATAL as $key=>$value) {
+                       // Prepare content for the template
+                       $content = array(
+                               'key'   => ($key + 1),
+                               'value' => $value
+                       );
+
+                       // Load row template
+                       $OUT .= LOAD_TEMPLATE("runtime_fatal_row", true, $content);
+               }
+
+               // Load main template
+               mxchange_die(LOAD_TEMPLATE("runtime_fatal_table", true, $OUT));
+       }
+       $CORR = FATAL_REPORT_ERRORS;
+
+       // PHP warnings fixed
+       if ($check == "done") {
+               if (IS_ADMIN()) $CORR = FATAL_CORRECT_ERRORS;
+       }
+
+       // Load footer template
+       LOAD_TEMPLATE("fatal_footer", false, $CORR);
+}
+
+//
+?>
diff --git a/0.2.1/inc/footer.php b/0.2.1/inc/footer.php
new file mode 100644 (file)
index 0000000..f502533
--- /dev/null
@@ -0,0 +1,96 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 10/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : footer.php                                       *
+ * -------------------------------------------------------------------- *
+ * Short description : Add the HTML code for the footer                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Den Fuss des HTML-Codes hinzufuegen              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Global variable stuff
+global $link, $frame, $CSS, $_GET, $header, $_SERVER;
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+if (($FOOTER != "1") && ($FOOTER != "2") && ($CSS != "1"))
+{
+       // Currently nothing more...
+       if (((frameset_active) || ($GLOBALS['module'] == "frametester") || ($header < 2)) && (empty($frame)))
+       {
+               // Add some non-frameset stuff
+               OUTPUT_HTML ("<NOFRAMES>
+<BODY>");
+       }
+
+       // Output the generated HTML code or do nothing in direct-mode
+       if (!empty($FATAL[0]))
+       {
+               // Output fatal error messages
+               require_once(PATH."inc/fatal_errors.php");
+       }
+
+       // Shall we display the copyright notice?
+       if ((empty($frame)) && (basename($_SERVER['PHP_SELF']) != "mailid_top.php") && (WRITE_FOOTER == true))
+       {
+               LOAD_TEMPLATE("copyright");
+       }
+
+       // Load page footer
+       LOAD_TEMPLATE("page_footer");
+
+       if (((frameset_active) || ($GLOBALS['module'] == "frametester")) && ($FOOTER == "1"))
+       {
+               // Add the closing NOFRAMES tag
+               OUTPUT_HTML ("</NOFRAMES>");
+       }
+       // And the last closing HTML tag
+       OUTPUT_HTML ("</HTML>");
+
+       // Footer has been reached
+       $FOOTER = 1;
+
+       // Output HTML code
+       OUTPUT_HTML ("");
+
+       // Close link
+       if ($link) { SQL_CLOSE($link, __FILE__, __LINE__); } else { ADD_FATAL(NO_DB_LINK); }
+}
+ elseif ($CSS == "1")
+{
+       // Footer has been reached
+       $FOOTER = 1;
+
+       // Output CSS content
+       OUTPUT_HTML ("");
+}
+//
+?>
diff --git a/0.2.1/inc/functions.php b/0.2.1/inc/functions.php
new file mode 100644 (file)
index 0000000..d675eca
--- /dev/null
@@ -0,0 +1,2106 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 11/29/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : functions.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Many non-MySQL functions (also file access)      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Viele Nicht-MySQL-Funktionen (auch Dateizugriff) *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Check if our config file is writeable or not
+function is_INCWritable($inc)
+{
+       $fp = @fopen(PATH."inc/".$inc.".php", 'a');
+       if ($inc == "dummy")
+       {
+               // Remove dummy file
+               @fclose($fp);
+               return @unlink(PATH."inc/dummy.php");
+       }
+        else
+       {
+               // Close all other files
+               return @fclose($fp);
+       }
+}
+
+// Check if we can write to an sql file
+function is_SQLWriteable($sql)
+{
+       $fp = @fopen(PATH.$sql.".sql", 'a');
+       return @fclose($fp);
+}
+
+// Open a table (you may want to add some header stuff here)
+function OPEN_TABLE($PERCENT = "", $CLASS = "", $ALIGN="left", $VALIGN="", $td_only=false)
+{
+       global $table_cnt;
+       // Count tables so we can generate CSS classes for every table... :-)
+       if (empty($CLASS))
+       {
+               // Class is empty so count one up and create a class
+               $table_cnt++; $CLASS = "class".$table_cnt;
+       }
+       $OUT = "<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\"";
+       // Shall I add the classes to TABLE and TD or only to TD?
+       if (!$td_only) $OUT .= " class=\"".$CLASS."\"";
+
+       // Width is given
+       if (!empty($PERCENT)) $OUT .= " width=\"".$PERCENT."\"";
+
+       // Horizonal align
+       if (!empty($ALIGN)) $OUT .=" align=\"".$ALIGN."\"";
+
+       // Vertical align is given
+       if (!empty($VALIGN))  $OUT .= " valign=\"".$VALIGN."\"";
+       $OUT .= ">
+<TR>
+  <TD";
+       if (!empty($ALIGN)) $OUT .=" align=\"".$ALIGN."\"";
+       $OUT .= " class=\"".$CLASS."\">";
+       OUTPUT_HTML ($OUT);
+}
+// Close a table (you may want to add some footer stuff here)
+function CLOSE_TABLE($ADD="")
+{
+       OUTPUT_HTML ("  </TD>
+</TR>");
+       if (!empty($ADD)) OUTPUT_HTML ($ADD);
+       OUTPUT_HTML ("</TABLE>");
+}
+
+// Output HTML code directly or "render" it. You addionally switch the new-line character off
+function OUTPUT_HTML ($HTML, $NEW_LINE = true) {
+       // Some global variables
+       global $OUTPUT, $FOOTER, $CSS;
+
+       // Do we have HTML-Code here?
+       if (!empty($HTML)) {
+               // Yes, so we handle it as you have configured
+               switch (OUTPUT_MODE)
+               {
+               case "render":
+                       // That's why you don't need any \n at the end of your HTML code... :-)
+                       if (_OB_CACHING == "on")
+                       {
+                               // Output into PHP's internal buffer
+                               echo stripslashes($HTML);
+
+                               // That's why you don't need any \n at the end of your HTML code... :-)
+                               if ($NEW_LINE) echo "\n";
+                       }
+                        else
+                       {
+                               // Render mode for old or lame servers...
+                               $OUTPUT .= $HTML;
+
+                               // That's why you don't need any \n at the end of your HTML code... :-)
+                               if ($NEW_LINE) $OUTPUT .= "\n";
+                       }
+                       break;
+
+               case "direct":
+                       // If we are switching from render to direct output rendered code
+                       if ((!empty($OUTPUT)) && (_OB_CACHING != "on")) { echo $OUTPUT; $OUTPUT = ""; }
+
+                       // The same as above... ^
+                       echo stripslashes($HTML);
+                       if ($NEW_LINE) echo "\n";
+                       break;
+
+               default:
+                       // Huh, something goes wrong or maybe you have edited config.php ???
+                       die ("<STRONG>".FATAL_ERROR.":</STRONG> ".LANG_NO_RENDER_DIRECT);
+                       break;
+               }
+       } elseif ((_OB_CACHING == "on") && ($FOOTER == 1)) {
+               // Output cached HTML code
+               $OUTPUT = ob_get_contents();
+
+               // Clear output buffer for later output
+               ob_end_clean();
+
+               if ((EXT_IS_ACTIVE("rewrite", true)) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) {
+                       $OUTPUT = REWRITE_LINKS($OUTPUT);
+               }
+
+               // Compile and run finished rendered HTML code
+               while (strpos($OUTPUT, "{!") > 0) {
+                       $eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";";
+                       @eval($eval);
+               }
+
+               // Output code here, DO NOT REMOVE! ;-)
+               echo stripslashes($OUTPUT);
+               flush();
+       } elseif ((OUTPUT_MODE == "render") && (!empty($OUTPUT))) {
+               // Rewrite links when rewrite extension is active
+               if ((EXT_IS_ACTIVE("rewrite", true)) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) {
+                       $OUTPUT = REWRITE_LINKS($OUTPUT);
+               }
+
+               // Compile and run finished rendered HTML code
+               while (strpos($OUTPUT, "{!") > 0) {
+                       $eval = "\$OUTPUT = \"" . COMPILE_CODE(addslashes($OUTPUT)) . "\";";
+                       @eval($eval);
+               }
+
+               // Output code here, DO NOT REMOVE! ;-)
+               echo stripslashes($OUTPUT);
+               flush();
+       }
+}
+
+// Add a fatal error message to the queue array
+function ADD_FATAL ($message, $extra="")
+{
+       global $FATAL;
+       if (empty($extra)) {
+               // Regular text message to add to $FATAL
+               $FATAL[] = $message;
+       } else {
+               // $message is text with a mask plus extras to insert into the text
+               $FATAL[] = sprintf($message, $extra);
+       }
+}
+
+// Load a template file and return it's content (only it's name; do not use ' or ")
+function LOAD_TEMPLATE($template, $return=false, $content="")
+{
+       // Add more variables which you want to use in your template files
+       global $DATA, $username;
+       $ACTION = SQL_ESCAPE($GLOBALS['action']);
+       $WHAT = SQL_ESCAPE($GLOBALS['what']);
+       $ret = "";
+       if (empty($GLOBALS['refid'])) $GLOBALS['refid'] = 0;
+       $REFID = $GLOBALS['refid'];
+
+       if ($template == "member_support_form")
+       {
+               // Support request of a member
+               $result = SQL_QUERY_ESC("SELECT sex, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array($GLOBALS['userid']), __FILE__, __LINE__);
+               list($sex, $surname, $family) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               $salut = TRANSLATE_SEX($sex);
+       }
+
+       // Generate date/time string
+       $date_time = MAKE_DATETIME(time(), "1");
+
+       // Base directory
+       $BASE = PATH."templates/".GET_LANGUAGE()."/html/";
+       $MODE = "";
+
+       // Check for admin/guest/member templates
+       if (strpos($template, "admin_") > -1)
+       {
+               // Admin template found
+               $MODE = "admin/";
+       }
+        elseif (strpos($template, "guest_") > -1)
+       {
+               // Guest template found
+               $MODE = "guest/";
+       }
+        elseif (strpos($template, "member_") > -1)
+       {
+               // Member template found
+               $MODE = "member/";
+       }
+        elseif (strpos($template, "install_") > -1)
+       {
+               // Installation template found
+               $MODE = "install/";
+       }
+        elseif (strpos($template, "ext_") > -1)
+       {
+               // Extension template found
+               $MODE = "ext/";
+       }
+        elseif (strpos($template, "la_") > -1)
+       {
+               // "Logical-area" template found
+               $MODE = "la/";
+       }
+        else
+       {
+               // Test for extension
+               $test = substr($template, 0, strpos($template, "_"));
+               if (EXT_IS_ACTIVE($test))
+               {
+                       // Set extra path to extension's name
+                       $MODE = $test."/";
+               }
+       }
+
+       ////////////////////////
+       // Generate file name //
+       ////////////////////////
+       $file = $BASE.$MODE.$template.".tpl";
+
+       if ((!empty($GLOBALS['what'])) && ((strpos($template, "_header") > 0) || (strpos($template, "_footer") > 0)) && (($MODE == "guest/") || ($MODE == "member/") || ($MODE == "admin/")))
+       {
+               // Select what depended header/footer template file for admin/guest/member area
+               $file2 = sprintf("%s%s%s_%s.tpl",
+                       $BASE,
+                       $MODE,
+                       $template,
+                       SQL_ESCAPE($GLOBALS['what'])
+               );
+
+               // Probe for it...
+               if (file_exists($file2)) $file = $file2;
+
+               // Remove variable from memory
+               unset($file2);
+       }
+
+       // Does the special template exists?
+       if (!file_exists($file))
+       {
+               // Reset to default template
+               $file = $BASE.$template.".tpl";
+       }
+
+       // Now does the final template exists?
+       if (file_exists($file))
+       {
+               // The local file does exists so we load it. :)
+               $tmpl_file = implode("", file($file));
+
+               // Replace ' to our own chars to preventing them being quoted
+               while (strpos($tmpl_file, "\'") !== false) { $tmpl_file = str_replace("\'", "{QUOT}", $tmpl_file); }
+
+               // Do we have to compile the code?
+               if ((strpos($tmpl_file, "\$") !== false) || (strpos($tmpl_file, '{--') !== false) || (strpos($tmpl_file, '--}') > 0))
+               {
+                       // Okay, compile it!
+                       $tmpl_file = "\$ret=\"".COMPILE_CODE(addslashes($tmpl_file))."\";";
+                       eval($tmpl_file);
+               }
+                else
+               {
+                       // Simply return loaded code
+                       $ret = $tmpl_file;
+               }
+
+               // Add surrounding HTML comments to help finding bugs faster
+               $ret = "<!-- Template ".$template." - Start -->\n".$ret."<!-- Template ".$template." - End -->\n";
+       }
+        elseif ((IS_ADMIN()) || ((mxchange_installing) && (!mxchange_installed)))
+       {
+               // Only admins shall see this warning or when installation mode is active
+               $ret = "<BR><SPAN class=\"guest_failed\">".TEMPLATE_404."</SPAN><BR>
+(".basename($file).")<BR>
+<BR>
+".TEMPLATE_CONTENT."
+<PRE>".print_r($content, true)."</PRE>
+".TEMPLATE_DATA."
+<PRE>".print_r($DATA, true)."</PRE>
+<BR><BR>";
+       }
+       if (!empty($ret))
+       {
+               // Not empty so let's put it out! ;)
+               if ($return)
+               {
+                       // Return the HTML code
+                       return $ret;
+               }
+                else
+               {
+                       // Output direct
+                       OUTPUT_HTML ($ret);
+               }
+       }
+        elseif (DEBUG_MODE)
+       {
+               // Warning, empty output!
+               return "E:".$template."<BR>\n";
+       }
+}
+
+// Send mail out to an email address
+function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML="N", $FROM="")
+{
+       // Compile subject line (for POINTS constant etc.)
+       $eval = "\$SUBJECT = \"".COMPILE_CODE(addslashes($SUBJECT))."\";";
+       eval($eval);
+       $SUBJECT = html_entity_decode($SUBJECT);
+
+       // Set from header
+       if (!eregi("@", $TO))
+       {
+               // Value detected, load email from database
+               if (EXT_IS_ACTIVE("msg"))
+               {
+                       ADD_MESSAGE_TO_BOX($TO, $SUBJECT, $MSG, $HTML);
+                       return;
+               }
+                else
+               {
+                       $result_email = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__);
+                       list($TO) = SQL_FETCHROW($result_email);
+                       SQL_FREERESULT($result_email);
+               }
+       }
+
+       // Not in PHPMailer-Mode
+       if (!CHECK_PHPMAILER_USAGE()) {
+               if (empty($FROM)) {
+                       // Load email header template
+                       $FROM = LOAD_EMAIL_TEMPLATE("header");
+               } else {
+                       // Append header
+                       $FROM .= LOAD_EMAIL_TEMPLATE("header");
+               }
+       } elseif (DEBUG_MODE) {
+               if (empty($FROM)) {
+                       // Load email header template
+                       $FROM = LOAD_EMAIL_TEMPLATE("header");
+               } else {
+                       // Append header
+                       $FROM .= LOAD_EMAIL_TEMPLATE("header");
+               }
+       }
+
+       // Fix HTML parameter (default is no!)
+       if (empty($HTML)) $HTML = "N";
+       if (DEBUG_MODE)
+       {
+               // In debug mode we want to display the mail instead of sending it away so we can debug this part
+               echo "<PRE>
+".htmlentities(trim($FROM))."
+To      : ".$TO."
+Subject : ".$SUBJECT."
+Message : ".$MSG."
+</PRE>\n";
+       }
+        elseif (($HTML == "Y") && (EXT_IS_ACTIVE("html_mail", true)))
+       {
+               // Send mail as HTML away
+               SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM);
+       }
+        elseif (!empty($TO))
+       {
+               // Compile email
+               $TO = COMPILE_CODE($TO);
+
+               // Send Mail away
+               SEND_RAW_EMAIL(stripslashes($TO), COMPILE_CODE($SUBJECT), stripslashes($MSG), $FROM);
+       }
+        elseif ($HTML == "N")
+       {
+               // Problem found!
+               SEND_RAW_EMAIL(WEBMASTER, COMPILE_CODE($SUBJECT), stripslashes($MSG), $FROM);
+       }
+}
+// Check if legacy or PHPMailer command
+// @private
+function CHECK_PHPMAILER_USAGE() {
+       return ((defined('SMTP_HOSTNAME')) && (defined('SMTP_USER')) && (defined('SMTP_PASSWORD')) && (SMTP_HOSTNAME != "") && (SMTP_USER != ""));
+}
+
+/*
+ * Send out a raw email with PHPMailer class or legacy mail() command
+ */
+function SEND_RAW_EMAIL ($to, $subject, $msg, $from) {
+       // Shall we use PHPMailer class or legacy mode?
+       if (CHECK_PHPMAILER_USAGE()) {
+               // Use PHPMailer class with SMTP enabled
+               require_once(PATH."inc/phpmailer/class.phpmailer.php");
+               require_once(PATH."inc/phpmailer/class.smtp.php");
+
+               // get new instance
+               $mail = new PHPMailer();
+               $mail->PluginDir  = PATH."inc/phpmailer/";
+
+               $mail->IsSMTP();
+               $mail->SMTPAuth   = true;
+               $mail->Host       = SMTP_HOSTNAME;
+               $mail->Port       = 25;
+               $mail->Username   = SMTP_USER;
+               $mail->Password   = SMTP_PASSWORD;
+               $mail->From       = $from;
+               $mail->FromName   = MAIN_TITLE;
+               $mail->Subject    = $subject;
+               if ((EXT_IS_ACTIVE("html_mail")) && (strip_tags($msg) != $msg)) {
+                       $mail->Body       = $msg;
+                       $mail->AltBody    = "Your mail program required HTML support to read this mail!";
+                       $mail->WordWrap   = 70;
+                       $mail->IsHTML(true);
+               } else {
+                       $mail->Body       = $msg;
+               }
+               $mail->AddAddress($to, "");
+               $mail->AddReplyTo(WEBMASTER,MAIN_TITLE);
+               $mail->AddCustomHeader("Errors-To:".WEBMASTER);
+               $mail->AddCustomHeader("X-Loop:".WEBMASTER);
+               $mail->Send();
+       } else {
+               // Use legacy mail() command
+               @mail($to, $subject, $msg, $from);
+       }
+}
+//
+
+// Generate a password in a specified length or use default password length
+function GEN_PASS($LEN = 0) {
+       global $CONFIG;
+       if ($LEN == 0) $LEN = $CONFIG['pass_len'];
+
+       // Initialize array with all allowed chars
+       $ABC = explode(",", "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,-,+,_,/");
+
+       // Initialize randomizer
+       mt_srand((double) microtime() * 1000000);
+
+       // Start creating password
+       $PASS = "";
+       for ($i = 0; $i < $LEN; $i++) {
+               $PASS .= $ABC[mt_rand(0, sizeof($ABC) -1)];
+       }
+
+       // When the size is below 40 we can also add additional security by scrambling it
+       if (strlen($PASS) <= 40) {
+               // Also scramble the password
+               $PASS = scrambleString($PASS);
+       }
+
+       // Return the password
+       return $PASS;
+}
+//
+function MAKE_DATETIME($time, $mode="0")
+{
+       if ($time == 0) {
+               // Never happend
+               return NEVER_HAPPENED;
+       } else {
+               // Filter out numbers
+               $time = bigintval($time);
+       }
+
+       switch (GET_LANGUAGE())
+       {
+       case "de": // German date / time format
+               switch ($mode)
+               {
+                       case "0": $ret = date("d.m.Y \u\m H:i \U\h\\r", $time); break;
+                       case "1": $ret = strtolower(date("d.m.Y - H:i", $time)); break;
+                       case "2": $ret = date("d.m.Y|H:i", $time); break;
+                       case "3": $ret = date("d.m.Y", $time); break;
+               }
+               break;
+
+       default:        // Default is the US date / time format!
+               switch ($mode)
+               {
+                       case "0": $ret = date("r", $time); break;
+                       case "1": $ret = date("Y-m-d - g:i A", $time); break;
+                       case "2": $ret = date("y-m-d|H:i", $time); break;
+                       case "3": $ret = date("y-m-d", $time); break;
+               }
+       }
+       return $ret;
+}
+//
+function TRANSLATE_COMMA($dotted, $cut=true)
+{
+       global $CONFIG;
+       // Default is 3 you can change this in admin area "Misc -> Misc Options"
+       if (empty($CONFIG['max_comma'])) $CONFIG['max_comma'] = "3";
+       if (!ereg("\.", $dotted)) $dotted .= ".".str_repeat("0", $CONFIG['max_comma']);
+       if ($cut)
+       {
+               // Remove trailing zeros
+               $dot = str_replace(".", "x", $dotted);
+               while(substr($dot, -1, 1) == "0")
+               {
+                       $dot = substr($dot, 0, -1);
+               }
+               if (substr($dot, -1, 1) == "x")
+               {
+                       // Last char is the 'x'
+                       $dotted = substr($dot, 0, -1);
+               }
+                else
+               {
+                       // Last char is a number
+                       $dotted = str_replace("x", ".", $dot);
+               }
+       }
+       switch (GET_LANGUAGE())
+       {
+       case "de":
+               $pos = strpos($dotted, ".");
+               if ($pos > 0)
+               {
+                       if ($cut)
+                       {
+                               // Cut x numbers behind comma
+                               $dotted = str_replace(".", ",", substr($dotted, 0, ($pos + $CONFIG['max_comma'] + 1)));
+                       }
+                        else
+                       {
+                               // Replace comma with dot
+                               $dotted = str_replace(".", ",", $dotted);
+                       }
+               }
+                elseif (!$cut)
+               {
+                       if (empty($pos))
+                       {
+                               $dotted = "0,".str_repeat("0", $CONFIG['max_comma']);
+                       }
+                        else
+                       {
+                               $dotted .= ",".str_repeat("0", $CONFIG['max_comma']);
+                       }
+               }
+               break;
+
+       default:
+               if (!$cut)
+               {
+                       if ($pos > 0)
+                       {
+                               $dotted = substr($dotted, 0, ($pos + $CONFIG['max_comma'] + 1));
+                       }
+                        else
+                       {
+                               $dotted .= ".".str_repeat("0", $CONFIG['max_comma']);
+                       }
+               }
+               break;
+       }
+       return $dotted;
+}
+//
+function DEREFERER($URL)
+{
+       $URL = URL."/modules.php?module=loader&amp;url=".urlencode(base64_encode(COMPILE_CODE($URL)));
+       return $URL;
+}
+//
+function TRANSLATE_SEX($sex)
+{
+       switch ($sex)
+       {
+               case "M": $ret = SEX_M; break;
+               case "F": $ret = SEX_F; break;
+               case "C": $ret = SEX_C; break;
+               default : $ret = $sex; break;
+       }
+       return $ret;
+}
+//
+function GET_POOL_TYPE($PT)
+{
+       switch ($PT)
+       {
+               case "TEMP"   : $ret = POOL_TEMP;    break;
+               case "SEND"   : $ret = POOL_SEND;    break;
+               case "NEW"    : $ret = POOL_NEW;     break;
+               case "ADMIN"  : $ret = POOL_ADMIN;   break;
+               case "ACTIVE" : $ret = POOL_ACTIVE;  break;
+               case "DELETED": $ret = POOL_DELETED; break;
+               default       : $ret = POOL_UNKNOWN." (".$PT.")"; break;
+       }
+       return $ret;
+}
+//
+function FRAMETESTER($URL)
+{
+       global $_SERVER;
+       $URL = URL."/modules.php?module=frametester&amp;url=".urlencode(base64_encode(COMPILE_CODE($URL)));
+       return $URL;
+}
+//
+function SELECTION_COUNT($array)
+{
+       $ret = "0";
+       if (is_array($array))
+       {
+               foreach ($array as $key=>$sel)
+               {
+                       if (!empty($sel)) $ret++;
+               }
+       }
+       return $ret;
+}
+//
+function IMG_CODE ($code, $TYPE, $DATA, $uid)
+{
+       return "<IMG border=\"0\" alt=\"Code\" src=\"".URL."/mailid_top.php?uid=".$uid."&amp;".$TYPE."=".$DATA."&amp;mode=img&amp;code=".$code."\">";
+}
+//
+function TRANSLATE_STATUS($status)
+{
+       switch ($status)
+       {
+       case "UNCONFIRMED":
+               $ret = ACCOUNT_UNCONFIRMED;
+               break;
+
+       case "CONFIRMED":
+               $ret = ACCOUNT_CONFIRMED;
+               break;
+
+       case "LOCKED":
+               $ret = ACCOUNT_LOCKED;
+               break;
+
+       default:
+               $ret = UNKNOWN_STATUS_1.$status.UNKNOWN_STATUS_2;
+               break;
+       }
+       return $ret;
+}
+//
+function GET_LANGUAGE()
+{
+       global $_COOKIE, $_GET;
+
+       if (!empty($_GET['mx_lang']))
+       {
+               // Accept only first 2 chars
+               $lang = substr($_GET['mx_lang'], 0, 2);
+       }
+        else
+       {
+               // Do nothing
+               $lang = "";
+       }
+
+       // Set default return value to default language from config
+       $ret = DEFAULT_LANG;
+
+       // Check GET variable and cookie
+       if (!empty($lang))
+       {
+               // Check if main language file does exist
+               if (file_exists(PATH."inc/language/".$lang.".php"))
+               {
+                       // Okay found, so let's update cookies
+                       SET_LANGUAGE($lang);
+               }
+       }
+        elseif (!empty($_COOKIE['mx_lang']))
+       {
+               // Return stored value from cookie
+               $ret = $_COOKIE['mx_lang'];
+       }
+       return $ret;
+}
+//
+function SET_LANGUAGE($lang)
+{
+       global $CONFIG;
+
+       // Accept only first 2 chars!
+       $lang = substr(SQL_ESCAPE(strip_tags($lang)), 0, 2);
+
+       // Set cookie
+       @setcookie("mx_lang", $lang, (time() + $CONFIG['online_timeout']), COOKIE_PATH);
+
+       // Set array
+       $_COOKIE['mx_lang'] = $lang;
+}
+//
+function LOAD_EMAIL_TEMPLATE($template, $content="", $UID="0")
+{
+       global $DATA, $CONFIG, $REPLACER;
+
+       // Keept for backward-compatiblity (please replace these variables against our new {--CONST--} syntax!)
+       $MAIN_TITLE = MAIN_TITLE; $URL = URL; $WEBMASTER = WEBMASTER;
+       $surname = ""; $family = ""; $nick = ""; $sex = "N";
+
+       // Prepare IP number and User Agent
+       $REMOTE_ADDR = getenv('REMOTE_ADDR');
+       $HTTP_USER_AGENT  = getenv('HTTP_USER_AGENT');
+
+       $ADMIN = MAIN_TITLE;
+       if (!empty($_COOKIE['admin_login']))
+       {
+               // Load Admin data
+               $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+                       array(SQL_ESCAPE($_COOKIE['admin_login'])), __FILE__, __LINE__);
+               list($ADMIN) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+
+       // Expiration in a nice output format
+       if ($CONFIG['auto_purge'] == 0)
+       {
+               // Will never expire!
+               $EXPIRATION = MAIL_WILL_NEVER_EXPIRE;
+       }
+        elseif (function_exists('CREATE_FANCY_TIME'))
+       {
+               // Create nice date string
+               $EXPIRATION = CREATE_FANCY_TIME($CONFIG['auto_purge']);
+       }
+        else
+       {
+               // Display days only
+               $EXPIRATION = round($CONFIG['auto_purge']/60/60/24)." "._DAYS;
+       }
+       switch ($template)
+       {
+       case "bonus-mail": // Load data for the bonus mail
+               $BONUSID    = $DATA[0];
+               $content    = $DATA[2];
+               $POINTS     = TRANSLATE_COMMA($DATA[4]);
+               $TIME       = $DATA[5];
+               $TARGET_URL = $DATA[8];
+               $CATEGORY   = GET_CATEGORY($DATA[9]);
+               $DATA[10]   = $UID;
+
+               // Replace variables
+               foreach ($REPLACER as $key=>$value)
+               {
+                       if (isset($DATA[$key])) $content = str_replace($value, $DATA[$key], $content);
+               }
+               break;
+
+       case "order-admin":
+       case "order-member":
+               $BLOCKS     = $CONFIG['max_send'];
+               $SUBJECT    = $DATA[0];
+               $content    = $DATA[1];
+               $PAYMENT    = GET_PAYMENT($DATA[3]);
+               $TARGET_URL = $DATA[5];
+               $CATEGORY   = GET_CATEGORY($DATA[6]);
+               break;
+
+       case "order-reject":
+       case "order-deleted":
+       case "order-accept":
+               $TARGET_URL = $DATA[0];
+               $URL        = $DATA[0];
+               $SUBJECT    = $DATA[1];
+               break;
+
+       case "new-pass":
+               $PASS       = $DATA[0];
+               $REMOTE     = $DATA[1];
+               break;
+
+       case "confirm-member":
+               $POINTS     = $CONFIG['points_register'];
+               break;
+
+       case "confirm-referral":
+               $PERCENT    = $DATA[0];
+               $LEVEL      = $DATA[1];
+               $POINTS     = $DATA[2];
+               $REFID      = $DATA[3];
+               break;
+
+       case "normal-mail":
+               $SEND_UID   = $DATA[1];
+               $CATEGORY   = GET_CATEGORY($DATA[9]);
+               $TIME       = GET_PAY_POINTS($DATA[5], "time");
+               $TARGET_URL = $DATA[7];
+               $POINTS     = TRANSLATE_COMMA(GET_PAY_POINTS($DATA[5], "payment"));
+               // Warning! This ID has changed from 10 to 11!
+               $MAILID     = $DATA[11];
+
+               // Replace variables
+               foreach ($REPLACER as $key=>$value)
+               {
+                       if (isset($DATA[$key])) $content = str_replace($value, $DATA[$key], $content);
+               }
+               break;
+
+       case "done-member":
+       case "done-admin":
+               $SEND_UID   = $DATA[1];
+               $CATEGORY   = GET_CATEGORY($DATA[9]);
+               $TARGET_URL = $DATA[7];
+               break;
+
+       case "back-admin":
+       case "back-member":
+               $POINTS     = TRANSLATE_COMMA($DATA[10]);
+               break;
+
+       case "add-points":
+               $POINTS = $_POST['points'];
+               break;
+
+       case "guest_request_confirm":
+               $HASH       = $DATA[2];
+               break;
+       }
+
+       // Load user's data
+       if ($UID > 0)
+       {
+               if (EXT_IS_ACTIVE("nickname"))
+               {
+                       // Load nickname
+                       $result = SQL_QUERY_ESC("SELECT surname, family, sex, email, nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                        array(bigintval($UID)), __FILE__, __LINE__);
+                       list($surname, $family, $sex, $email, $nick) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // Load normal data
+                       $result = SQL_QUERY_ESC("SELECT surname, family, sex, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                        array(bigintval($UID)), __FILE__, __LINE__);
+                       list($surname, $family, $sex, $email) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       $nick = "---";
+               }
+       }
+        else
+       {
+               // Neutral sex and email address is default
+               $sex = "N";
+               $email = WEBMASTER;
+       }
+
+       // Translate M to male or F to female
+       $salut = TRANSLATE_SEX($sex);
+
+       // Store email for some functions in global data array
+       $DATA['email'] = $email;
+
+       // Base directory
+       $BASE = PATH."templates/".GET_LANGUAGE()."/emails/";
+
+       // Check for admin/guest/member templates
+       if (strpos($template, "admin_") > -1)
+       {
+               // Admin template found
+               $file = $BASE."admin/".$template.".tpl";
+       }
+        elseif (strpos($template, "guest_") > -1)
+       {
+               // Guest template found
+               $file = $BASE."guest/".$template.".tpl";
+       }
+        elseif (strpos($template, "member_") > -1)
+       {
+               // Member template found
+               $file = $BASE."member/".$template.".tpl";
+       }
+        else
+       {
+               // Test for extension
+               $test = substr($template, 0, strpos($template, "_"));
+               if (EXT_IS_ACTIVE($test))
+               {
+                       // Set extra path to extension's name
+                       $file = $BASE.$test."/".$template.".tpl";
+               }
+                else
+               {
+                       // No special filename
+                       $file = $BASE.$template.".tpl";
+               }
+       }
+
+       // Does the special template exists?
+       if (!@file_exists($file))
+       {
+               // Reset to default template
+               $file = $BASE.$template.".tpl";
+       }
+
+       // Now does the final template exists?
+       if ((@file_exists($file)) && (is_readable($file)))
+       {
+               // The local file does exists so we load it. :)
+               $tmpl_file = @implode("", @file($file));
+               $tmpl_file = addslashes($tmpl_file);
+
+               // Compile code
+               $tmpl_file = COMPILE_CODE($tmpl_file);
+
+               // Run code
+               $tmpl_file = "\$content=\"".$tmpl_file."\";";
+               eval($tmpl_file);
+
+               // Replace HTML confirm chars
+               $content = html_entity_decode($content);
+       }
+        elseif (!empty($template))
+       {
+               // Template file not found!
+               $content = TEMPLATE_404.": ".$template."<BR>
+".TEMPLATE_CONTENT."
+<PRE>".print_r($content, true)."</PRE>
+".TEMPLATE_DATA."
+<PRE>".print_r($DATA, true)."</PRE>
+<BR><BR>";
+
+               // Debug mode not active? Then remove the HTML tags
+               if (!DEBUG_MODE) $content = strip_tags($content);
+       }
+        else
+       {
+               // No template name supplied!
+               $content = NO_TEMPLATE_SUPPLIED;
+       }
+       return COMPILE_CODE($content);
+}
+//
+function MAKE_TIME($H, $M, $S, $stamp)
+{
+       // Extract day, month and year from given timestamp
+       $DAY   = date("d", $stamp);
+       $MONTH = date("m", $stamp);
+       $YEAR  = date("Y", $stamp);
+
+       // Create timestamp for wished time which depends on extracted date
+       return mktime($H, $M, $S, $MONTH, $DAY, $YEAR);
+}
+//
+function LOAD_URL($URL, $addUrlData=true) {
+       // Compile out URI codes
+       $URL = COMPILE_CODE($URL);
+
+       // Add some data to URL if cookies are not accepted
+       if (((!defined('__COOKIES')) || (!__COOKIES)) && ($addUrlData)) $URL = ADD_URL_DATA($URL);
+
+       // Probe for bot from search engine
+       if ((eregi("spider", getenv('HTTP_USER_AGENT'))) || (eregi("bot", getenv('HTTP_USER_AGENT'))) || (eregi("spider", getenv('HTTP_USER_AGENT')))) {
+               // Search engine bot detected so let's rewrite many chars for the link
+               $URL = htmlentities(strip_tags($URL), ENT_QUOTES);
+
+               // Output new location link as anchor
+               OUTPUT_HTML ("<A href=\"".$URL."\">".$URL."</A>\n");
+       } elseif (!headers_sent()) {
+               // Load URL when headers are not sent
+               @header ("Location: ".str_replace("&amp;", "&", $URL));
+       } else {
+               // Output error message
+               include(PATH."inc/header.php");
+               OUTPUT_HTML (LOAD_URL_ERROR_1.$URL.LOAD_URL_ERROR_2);
+               include(PATH."inc/footer.php");
+       }
+       exit();
+}
+//
+function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) {
+       global $SEC_CHARS, $URL_CHARS;
+       $ARRAY = $SEC_CHARS;
+
+       // Select smaller set of chars to replace when we e.g. want to compile URLs
+       if (!$full) $ARRAY = $URL_CHARS;
+
+       // Compile constants
+       if ($constants) {
+               // BEFORE 0.2.1 : Language and data constants
+               // WITH 0.2.1+  : Only language constants
+               $code = str_replace("{--", '".', str_replace("--}", '."', $code));
+
+               // BEFORE 0.2.1 : Not used
+               // WITH 0.2.1+  : Data constants
+               $code = str_replace("{!", '".', str_replace("!}", '."', $code));
+       }
+
+       // Compile QUOT and other non-HTML codes
+       foreach ($ARRAY['to'] as $k => $to) {
+               // Do the reversed thing as in inc/libs/security_functions.php
+               $code = str_replace($to, $ARRAY['from'][$k], $code);
+       }
+
+       // But shall I keep simple quotes for later use?
+       if ($simple) $code = str_replace("\'", "{QUOT}", $code);
+
+       // Find $content[bla][blub] entries
+       @preg_match_all('/\$(content|DATA)((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches);
+
+       // Are some matches found?
+       if ((count($matches) > 0) && (count($matches[0]) > 0)) {
+               // Replace all matches
+               $matchesFound = array();
+               foreach ($matches[0] as $key=>$match) {
+                       // Avoid replacing matches multiple times
+                       if (!isset($matchesFound[$match])) {
+                               // Not yet replaced!
+                               $code = str_replace($match, "\".".$match.".\"", $code);
+                               $matchesFound[$match] = 1;
+                       }
+
+                       // Take all string elements
+                       if (("".bigintval($matches[4][$key])."" != $matches[4][$key]) && (!isset($matchesFound[$key."_".$matches[4][$key]]))) {
+                               // Replace it in the code
+                               $code = str_replace("[".$matches[4][$key]."]", "['".$matches[4][$key]."']", $code);
+                               $matchesFound[$key."_".$matches[4][$key]] = 1;
+                       }
+               }
+       }
+
+       // Return compiled code
+       return $code;
+}
+//
+/************************************************************************
+ *                                                                      *
+ * Gaenderter Sortier-Algorythmus, $array wird nach dem Array (!)       *
+ * $a_sort sortiert:                                                    *
+ *                                                                      *
+ * $array - Das 3-dimensionale Array, das paralell sortiert werden soll *
+ * $a_sort - Array, das die Sortiereihenfolge der ersten Elementeben    *
+ * $primary_key - Prim.rschl.ssel aus $a_sort, nach dem sortiert wird   *
+ * $order - Sortiereihenfolge: -1 = A-Z, 0 = keine, 1 = Z-A             *
+ * $nums - true = Als Zahlen sortieren, false = Als Zeichen sortieren   *
+ *                                                                      *
+ * $a_sort muss Elemente enthalten, deren Wert Schluessel von $array    *
+ * sind... Klingt kompliziert, suchen Sie mal mein Beispiel, dann sehen *
+ * Sie, dass es doch nicht so schwer ist! :-)                           *
+ *                                                                      *
+ ************************************************************************/
+function array_pk_sort(&$array, $a_sort, $primary_key = 0, $order = -1, $nums = false)
+{
+       $dummy = $array;
+       while ($primary_key < count($a_sort))
+       {
+               foreach ($dummy[$a_sort[$primary_key]] as $key=>$value)
+               {
+                       foreach ($dummy[$a_sort[$primary_key]] as $key2=>$value2)
+                       {
+                               $match = false;
+                               if (!$nums)
+                               {
+                                       // Sort byte-by-byte (also numbers will be interpreted as chars! E.g.: "9" > "10")
+                                       if (($key != $key2) && (strcmp(strtolower($dummy[$a_sort[$primary_key]][$key]), strtolower($dummy[$a_sort[$primary_key]][$key2])) == $order)) $match = true;
+                               }
+                                elseif ($key != $key2)
+                               {
+                                       // Sort numbers (E.g.: 9 < 10)
+                                       if (($dummy[$a_sort[$primary_key]][$key] < $dummy[$a_sort[$primary_key]][$key2]) && ($order == -1)) $match = true;
+                                       if (($dummy[$a_sort[$primary_key]][$key] > $dummy[$a_sort[$primary_key]][$key2]) && ($order == 1))  $match = true;
+                               }
+                               if ($match)
+                               {
+                                       // We have found two different values, so let's sort whole array
+                                       foreach ($dummy as $sort_key=>$sort_val)
+                                       {
+                                               $t                       = $dummy[$sort_key][$key];
+                                               $dummy[$sort_key][$key]  = $dummy[$sort_key][$key2];
+                                               $dummy[$sort_key][$key2] = $t;
+                                               unset($t);
+                                       }
+                               }
+                       }
+               }
+
+               // Count one up
+               $primary_key++;
+       }
+
+       // Write back sorted array
+       $array = $dummy;
+}
+//
+function ADD_SELECTION($TYPE, $DEFAULT, $PREFIX="", $id="0")
+{
+       global $MONTH_DESCR; $OUT = "";
+       if ($TYPE == "yn")
+       {
+               // This is a yes/no selection only!
+               if ($id > 0) $PREFIX .= "[".$id."]";
+               $OUT .= "    <SELECT name=\"".$PREFIX."\" class=\"register_select\" size=\"1\">\n";
+       }
+        else
+       {
+               // Begin with regular selection box here
+               if (!empty($PREFIX)) $PREFIX .= "_";
+               $TYPE2 = $TYPE;
+               if ($id > 0) $TYPE2 .= "[".$id."]";
+               $OUT .= "    <SELECT name=\"".strtolower($PREFIX.$TYPE2)."\" class=\"register_select\" size=\"1\">\n";
+       }
+       switch ($TYPE)
+       {
+       case "day": // Day
+               for ($idx = 1; $idx < 32; $idx++)
+               {
+                       $OUT .= "      <OPTION value=\"".$idx."\"";
+                       if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
+                       $OUT .= ">".$idx."</OPTION>\n";
+               }
+               break;
+
+       case "month": // Month
+               foreach ($MONTH_DESCR as $month=>$descr)
+               {
+                       $OUT .= "      <OPTION value=\"".$month."\"";
+                       if ($DEFAULT == $month) $OUT .= " selected=\"selected\"";
+                       $OUT .= ">".$descr."</OPTION>\n";
+               }
+               break;
+
+       case "year": // Year
+               // Get current year
+               $YEAR = date("Y", time());
+
+               // Check if the default value is larger than minimum and bigger than actual year
+               if (($DEFAULT > 1930) && ($DEFAULT >= $YEAR))
+               {
+                       for ($idx = $YEAR; $idx < ($YEAR + 11); $idx++)
+                       {
+                               $OUT .= "      <OPTION value=\"".$idx."\"";
+                               if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+               }
+                elseif ($DEFAULT == -1)
+               {
+                       // Current year minus 1
+                       for ($idx = 2003; $idx <= ($YEAR + 1); $idx++)
+                       {
+                               $OUT .= "      <OPTION value=\"".$idx."\">".$idx."</OPTION>\n";
+                       }
+               }
+                else
+               {
+                       // Get current year and subtract 16 (for erotic content)
+                       $OUT .= "      <OPTION value=\"1929\">&lt;1930</OPTION>\n";
+                       $YEAR = date("Y", time()) - 16;
+                       for ($idx = 1930; $idx <= $YEAR; $idx++)
+                       {
+                               $OUT .= "      <OPTION value=\"".$idx."\"";
+                               if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+               }
+               break;
+
+       case "sec":
+       case "min":
+               for ($idx = 0; $idx < 60; $idx+=5)
+               {
+                       if (strlen($idx) == 1) $idx = "0".$idx;
+                       $OUT .= "      <OPTION value=\"".$idx."\"";
+                       if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
+                       $OUT .= ">".$idx."</OPTION>\n";
+               }
+               break;
+
+       case "hour":
+               for ($idx = 0; $idx < 24; $idx++)
+               {
+                       if (strlen($idx) == 1) $idx = "0".$idx;
+                       $OUT .= "      <OPTION value=\"".$idx."\"";
+                       if ($DEFAULT == $idx) $OUT .= " selected=\"selected\"";
+                       $OUT .= ">".$idx."</OPTION>\n";
+               }
+               break;
+
+       case "yn":
+               $OUT .= "      <OPTION value=\"Y\"";
+               if ($DEFAULT == "Y") $OUT .= " selected=\"selected\"";
+               $OUT .= ">".YES."</OPTION>
+      <OPTION value=\"N\"";
+               if ($DEFAULT == "N") $OUT .= " selected=\"selected\"";
+               $OUT .= ">".NO."</OPTION>\n";
+               break;
+       }
+       $OUT .= "    </SELECT>\n";
+       return $OUT;
+}
+//
+function TRANSLATE_YESNO($yn)
+{
+       switch ($yn)
+       {
+               case "Y": $yn = YES; break;
+               case "N": $yn = NO; break;
+               default : $yn = "??? (".$yn.")"; break;
+       }
+       return $yn;
+}
+//
+// Deprecated : $length
+// Optional   : $DATA
+//
+function GEN_RANDOM_CODE($length, $code, $uid, $DATA="")
+{
+       global $CONFIG;
+
+       // Build server string
+       $server = $_SERVER['PHP_SELF'].":".getenv('HTTP_USER_AGENT').":".getenv('SERVER_SOFTWARE').":".getenv('REMOTE_ADDR').":".":".filemtime(PATH."inc/databases.php");
+
+       // Build key string
+       $keys   = SITE_KEY.":".DATE_KEY.":".$CONFIG['secret_key'].":".$CONFIG['file_hash'].":".date("d-m-Y (l-F-T)", $CONFIG['patch_ctime']).":".$CONFIG['master_salt'];
+
+       // Build string from misc data
+       $data   = $code.":".$uid.":".$DATA;
+
+       // Add more additional data
+       if (isset($_COOKIE['u_hash']))         $data .= ":".$_COOKIE['u_hash'];
+       if (isset($GLOBALS['userid']))         $data .= ":".$GLOBALS['userid'];
+       if (isset($_COOKIE['lifetime']))       $data .= ":".$_COOKIE['lifetime'];
+       if (isset($_COOKIE['mxchange_theme'])) $data .= ":".$_COOKIE['mxchange_theme'];
+       if (isset($_COOKIE['mx_lang']))        $data .= ":".$_COOKIE['mx_lang'];
+       if (isset($GLOBALS['refid']))          $data .= ":".$GLOBALS['refid'];
+
+       // Calculate number for generating the code
+       $a = $code + _ADD - 1;
+
+       // Generate hash with master salt from modula of number with the prime number and other data
+       $saltedHash = generateHash(($a % _PRIME).":".$server.":".$keys.":".$data.":".date("d-m-Y (l-F-T)", time()).":".$a, $CONFIG['master_salt']);
+
+       // Create number from hash
+       $rcode = hexdec(substr($saltedHash, strlen($CONFIG['master_salt']), 9)) / abs(_MAX - $a + sqrt(_ADD)) / pi();
+
+       // At least 10 numbers shall be secure enought!
+       $len = $CONFIG['code_length'];
+       if ($len == 0) $len = 10;
+
+       // Cut off requested counts of number
+       $return = substr(str_replace('.', '', $rcode), 0, $len);
+
+       // Done building code
+       return $return;
+}
+// Does only allow numbers
+function bigintval($num)
+{
+       $ret = (int) preg_replace("/[^0123456789]/", "", $num);
+       return $ret;
+}
+// Insert the code in $img_code into jpeg or PNG image
+function GENERATE_IMAGE($img_code, $header=true)
+{
+       global $CONFIG;
+       if ((strlen($img_code) > 6) || (empty($img_code)) || ($CONFIG['code_length'] == 0))
+       {
+               // Stop execution of function here because of over-sized code length
+               return;
+       }
+        elseif (!$header)
+       {
+               // Return in an HTML code code
+               return "<IMG src=\"".URL."/img.php?code=".$img_code."\">\n";
+       }
+
+       switch ($CONFIG['img_type'])
+       {
+       case "jpg":
+               // Loads JPEG image
+               $img = PATH."/theme/".GET_CURR_THEME()."/images/code_bg.jpg";
+               if ((file_exists($img)) && (is_readable($img)))
+               {
+                       // Okay, load image and hide all errors
+                       $image = @imagecreatefromjpeg($img);
+               }
+                else
+               {
+                       // Exit function here
+                       return;
+               }
+               break;
+
+       case "png":
+               // Loads PNG image
+               $img = PATH."/theme/".GET_CURR_THEME()."/images/code_bg.png";
+               if ((file_exists($img)) && (is_readable($img)))
+               {
+                       // Okay, load image and hide all errors
+                       $image = @imagecreatefrompng($img);
+               }
+                else
+               {
+                       // Exit function here
+                       return;
+               }
+               break;
+       }
+
+       // Generate text color (red/green/blue; 0 = dark, 255 = bright)
+       $text_color = imagecolorallocate($image, 0, 0, 0);
+
+       // Insert code into image
+       imagestring($image, 5, 14, 2, $img_code, $text_color);
+
+       // Return to browser
+       header ("Content-Type: image/".$CONFIG['img_type']);
+
+       // Output image with matching image factory
+       switch ($CONFIG['img_type'])
+       {
+               case "jpg": imagejpeg($image); break;
+               case "png": imagepng($image);  break;
+       }
+
+       // Remove image from memory
+       imagedestroy($image);
+}
+function CREATE_TIME_SELECTIONS($timestamp, $prefix="", $display="", $align="center", $return_array=false)
+{
+       // Calculate 15-seconds timestamp (15-seconds-steps shall be fine ;) )
+       $timestamp = round($timestamp / 15) * 15;
+       // Do we have a leap year?
+       $SWITCH = 0;
+       $TEST = date("Y", time()) / 4;
+       $M1 = date("m", time());
+       $M2 = date("m", (time() + $timestamp));
+       // If so and if current time is before 02/29 and estimated time is after 02/29 then add 86400 seconds (one day)
+       if ((floor($TEST) == $TEST) && ($M1 == "02") && ($M2 > "02"))  $SWITCH = ONE_DAY;
+       // First of all years...
+       $Y = abs(floor($timestamp / (31536000 + $SWITCH)));
+       // Next months...
+       $M = abs(floor($timestamp / 2628000 - $Y * 12));
+       // Next weeks
+       $W = abs(floor($timestamp / 604800 - $Y * ((365 + $SWITCH / ONE_DAY) / 7) - ($M / 12 * (365 + $SWITCH / ONE_DAY) / 7)));
+       // Next days...
+       $D = abs(floor($timestamp / 86400 - $Y * (365 + $SWITCH / ONE_DAY) - ($M / 12 * (365 + $SWITCH / ONE_DAY)) - $W * 7));
+       // Next hours...
+       $h = abs(floor($timestamp / 3600 - $Y * (365 + $SWITCH / ONE_DAY) * 24 - ($M / 12 * (365 + $SWITCH / ONE_DAY) * 24) - $W * 7 * 24 - $D * 24));
+       // Next minutes..
+       $m = abs(floor($timestamp / 60 - $Y * (365 + $SWITCH / ONE_DAY) * 24 * 60 - ($M / 12 * (365 + $SWITCH / ONE_DAY) * 24 * 60) - $W * 7 * 24 * 60 - $D * 24 * 60 - $h * 60));
+       // And at last seconds...
+       $s = abs(floor($timestamp - $Y * (365 + $SWITCH / ONE_DAY) * 24 * 3600 - ($M / 12 * (365 + $SWITCH / ONE_DAY) * 24 * 3600) - $W * 7 * 24 * 3600 - $D * 24 * 3600 - $h * 3600 - $m * 60));
+       //
+       // Now we convert them in seconds...
+       //
+       if ($return_array)
+       {
+               // Just put all data in an array for later use
+               $OUT = array(
+                       'YEARS'   => $Y,
+                       'MONTHS'  => $M,
+                       'WEEKS'   => $W,
+                       'DAYS'    => $D,
+                       'HOURS'   => $h,
+                       'MINUTES' => $m,
+                       'SECONDS' => $s
+               );
+       }
+        else
+       {
+               // Generate table
+               $OUT  = "<DIV align=\"".$align."\">\n";
+               $OUT .= "<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"admin_table dashed\">\n";
+               $OUT .= "<TR>\n";
+               if (ereg("Y", $display) || (empty($display)))
+               {
+                       $OUT .= "  <TD align=\"center\" class=\"admin_title bottom\"><STRONG class=\"tiny\">"._YEARS."</STRONG></TD>\n";
+               }
+               if (ereg("M", $display) || (empty($display)))
+               {
+                       $OUT .= "  <TD align=\"center\" class=\"admin_title bottom\"><STRONG class=\"tiny\">"._MONTHS."</STRONG></TD>\n";
+               }
+               if (ereg("W", $display) || (empty($display)))
+               {
+                       $OUT .= "  <TD align=\"center\" class=\"admin_title bottom\"><STRONG class=\"tiny\">"._WEEKS."</STRONG></TD>\n";
+               }
+               if (ereg("D", $display) || (empty($display)))
+               {
+                       $OUT .= "  <TD align=\"center\" class=\"admin_title bottom\"><STRONG class=\"tiny\">"._DAYS."</STRONG></TD>\n";
+               }
+               if (ereg("h", $display) || (empty($display)))
+               {
+                       $OUT .= "  <TD align=\"center\" class=\"admin_title bottom\"><STRONG class=\"tiny\">"._HOURS."</STRONG></TD>\n";
+               }
+               if (ereg("m", $display) || (empty($display)))
+               {
+                       $OUT .= "  <TD align=\"center\" class=\"admin_title bottom\"><STRONG class=\"tiny\">"._MINUTES."</STRONG></TD>\n";
+               }
+               if (ereg("s", $display) || (empty($display)))
+               {
+                       $OUT .= "  <TD align=\"center\" class=\"admin_title bottom\"><STRONG class=\"tiny\">".SECS."</STRONG></TD>\n";
+               }
+               $OUT .= "</TR>\n";
+               $OUT .= "<TR>\n";
+               if (ereg("Y", $display) || (empty($display)))
+               {
+                       // Generate year selection
+                       $OUT .= "  <TD align=\"center\"><SELECT class=\"mini_select\" name=\"".$prefix."_ye\" size=\"1\">\n";
+                       for ($idx = 0; $idx <= 10; $idx++)
+                       {
+                               $OUT .= "    <OPTION class=\"mini_select\" value=\"".$idx."\"";
+                               if ($idx == $Y) $OUT .= " selected default";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+                       $OUT .= "  </SELECT></TD>\n";
+               }
+                else
+               {
+                       $OUT .= "<INPUT type=\"hidden\" name=\"".$prefix."_ye\" value=\"0\">\n";
+               }
+               if (ereg("M", $display) || (empty($display)))
+               {
+                       // Generate month selection
+                       $OUT .= "  <TD align=\"center\"><SELECT class=\"mini_select\" name=\"".$prefix."_mo\" size=\"1\">\n";
+                       for ($idx = 0; $idx <= 11; $idx++)
+                       {
+                                       $OUT .= "  <OPTION class=\"mini_select\" value=\"".$idx."\"";
+                               if ($idx == $M) $OUT .= " selected default";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+                       $OUT .= "  </SELECT></TD>\n";
+               }
+                else
+               {
+                       $OUT .= "<INPUT type=\"hidden\" name=\"".$prefix."_mo\" value=\"0\">\n";
+               }
+               if (ereg("W", $display) || (empty($display)))
+               {
+                       // Generate week selection
+                       $OUT .= "  <TD align=\"center\"><SELECT class=\"mini_select\" name=\"".$prefix."_we\" size=\"1\">\n";
+                       for ($idx = 0; $idx <= 4; $idx++)
+                       {
+                               $OUT .= "  <OPTION class=\"mini_select\" value=\"".$idx."\"";
+                               if ($idx == $W) $OUT .= " selected default";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+                       $OUT .= "  </SELECT></TD>\n";
+               }
+                else
+               {
+                       $OUT .= "<INPUT type=\"hidden\" name=\"".$prefix."_we\" value=\"0\">\n";
+               }
+               if (ereg("D", $display) || (empty($display)))
+               {
+                       // Generate day selection
+                       $OUT .= "  <TD align=\"center\"><SELECT class=\"mini_select\" name=\"".$prefix."_da\" size=\"1\">\n";
+                       for ($idx = 0; $idx <= 31; $idx++)
+                       {
+                               $OUT .= "  <OPTION class=\"mini_select\" value=\"".$idx."\"";
+                               if ($idx == $D) $OUT .= " selected default";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+                       $OUT .= "  </SELECT></TD>\n";
+               }
+                else
+               {
+                       $OUT .= "<INPUT type=\"hidden\" name=\"".$prefix."_da\" value=\"0\">\n";
+               }
+               if (ereg("h", $display) || (empty($display)))
+               {
+                       // Generate hour selection
+                       $OUT .= "  <TD align=\"center\"><SELECT class=\"mini_select\" name=\"".$prefix."_ho\" size=\"1\">\n";
+                       for ($idx = 0; $idx <= 23; $idx++)
+                       {
+                               $OUT .= "  <OPTION class=\"mini_select\" value=\"".$idx."\"";
+                               if ($idx == $h) $OUT .= " selected default";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+                       $OUT .= "  </SELECT></TD>\n";
+               }
+                else
+               {
+                       $OUT .= "<INPUT type=\"hidden\" name=\"".$prefix."_ho\" value=\"0\">\n";
+               }
+               if (ereg("m", $display) || (empty($display)))
+               {
+                       // Generate minute selection
+                       $OUT .= "  <TD align=\"center\"><SELECT class=\"mini_select\" name=\"".$prefix."_mi\" size=\"1\">\n";
+                       for ($idx = 0; $idx <= 59; $idx++)
+                       {
+                               $OUT .= "  <OPTION class=\"mini_select\" value=\"".$idx."\"";
+                               if ($idx == $m) $OUT .= " selected default";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+                       $OUT .= "  </SELECT></TD>\n";
+               }
+                else
+               {
+                       $OUT .= "<INPUT type=\"hidden\" name=\"".$prefix."_mi\" value=\"0\">\n";
+               }
+               if (ereg("s", $display) || (empty($display)))
+               {
+                       // Generate second selection
+                       $OUT .= "  <TD align=\"center\"><SELECT class=\"mini_select\" name=\"".$prefix."_se\" size=\"1\">\n";
+                       for ($idx = 0; $idx <= 45; $idx+=15)
+                       {
+                               $OUT .= "  <OPTION class=\"mini_select\" value=\"".$idx."\"";
+                               if ($idx == $s) $OUT .= " selected default";
+                               $OUT .= ">".$idx."</OPTION>\n";
+                       }
+                       $OUT .= "  </SELECT></TD>\n";
+               }
+                else
+               {
+                       $OUT .= "<INPUT type=\"hidden\" name=\"".$prefix."_se\" value=\"0\">\n";
+               }
+               $OUT .= "</TR>\n";
+               $OUT .= "</TABLE>\n";
+               $OUT .= "</DIV>\n";
+               // Return generated HTML code
+       }
+       return $OUT;
+}
+//
+function CREATE_TIMESTAMP_FROM_SELECTIONS($prefix, $POST) {
+       $ret = "0";
+       // Do we have a leap year?
+       $SWITCH = 0;
+       $TEST = date("Y", time()) / 4;
+       $M1   = date("m", time());
+       // If so and if current time is before 02/29 and estimated time is after 02/29 then add 86400 seconds (one day)
+       if ((floor($TEST) == $TEST) && ($M1 == "02") && ($POST[$prefix."_mo"] > "02"))  $SWITCH = ONE_DAY;
+       // First add years...
+       $ret += $POST[$prefix."_ye"] * (31536000 + $SWITCH);
+       // Next months...
+       $ret += $POST[$prefix."_mo"] * 2628000;
+       // Next weeks
+       $ret += $POST[$prefix."_we"] * 604800;
+       // Next days...
+       $ret += $POST[$prefix."_da"] * 86400;
+       // Next hours...
+       $ret += $POST[$prefix."_ho"] * 3600;
+       // Next minutes..
+       $ret += $POST[$prefix."_mi"] * 60;
+       // And at last seconds...
+       $ret += $POST[$prefix."_se"];
+       // Return calculated value
+       return $ret;
+}
+// Sends out mail to all administrators
+function SEND_ADMIN_EMAILS_PRO($subj, $template, $content="", $UID="0") {
+       // Trim template name
+       $template = trim($template);
+
+       // Load email template
+       $msg = LOAD_EMAIL_TEMPLATE($template, $content, $UID);
+
+       if (GET_EXT_VERSION("admins") < "0.4.0") {
+               // Older version detected!
+               return SEND_ADMIN_EMAILS($subj, $msg);
+       }
+
+       // Check which admin shall receive this mail
+       $result = SQL_QUERY_ESC("SELECT DISTINCT admin_id FROM "._MYSQL_PREFIX."_admins_mails WHERE mail_template='%s' ORDER BY admin_id",
+        array($template), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0) {
+               // Create new entry (to all admins)
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admins_mails (admin_id, mail_template) VALUES (0, '%s')",
+                array($template), __FILE__, __LINE__);
+       } else {
+               // Load admin IDs...
+               $aids = array();
+               while(list($aid) = SQL_FETCHROW($result)) {
+                       $aids[] = $aid;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // "implode" IDs and query string
+               $aid = implode(",", $aids);
+               if ($aid == "-1") {
+                       // Add line to userlog
+                       USERLOG_ADD_LINE($subj, $msg, $UID);
+                       return;
+               } elseif ($aid == "0") {
+                       // Select all email adresses
+                       $result = SQL_QUERY("SELECT email FROM "._MYSQL_PREFIX."_admins ORDER BY id", __FILE__, __LINE__);
+               } else {
+                       // If Admin-ID is not "to-all" select
+                       $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE id IN (%s) ORDER BY id", array($aid), __FILE__, __LINE__);
+               }
+       }
+
+       // Load email addresses and send away
+       while (list($email) = SQL_FETCHROW($result)) {
+               SEND_EMAIL($email, $subj, $msg);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+//
+function CREATE_FANCY_TIME($stamp) {
+       // Get data array with years/months/weeks/days/...
+       $data = CREATE_TIME_SELECTIONS($stamp, "", "", "", true);
+       $ret = "";
+       foreach($data as $k=>$v) {
+               if ($v > 0) {
+                       // Value is greater than 0 "eval" data to return string
+                       $eval = "\$ret .= \", \".\$v.\" \"._".strtoupper($k).";";
+                       eval($eval);
+                       break;
+               }
+       }
+
+       // Remove first "comma,null" string
+       $ret = substr($ret, 2);
+       return $ret;
+}
+//
+function ADD_EMAIL_NAV($PAGES, $offset, $show_form, $colspan, $return=false) {
+       $SEP = ""; $TOP = "";
+       if (!$show_form) {
+               $TOP = " top2";
+               $SEP = "<TR><TD colspan=\"".$colspan."\" class=\"seperator\">&nbsp;</TD></TR>";
+       }
+
+       $NAV = "";
+       for ($page = 1; $page <= $PAGES; $page++) {
+               // Is the page currently selected or shall we generate a link to it?
+               if (($page == $_GET['page']) || ((empty($_GET['page'])) && ($page == "1"))) {
+                       // Is currently selected, so only highlight it
+                       $NAV .= "<STRONG>-";
+               } else {
+                       // Open anchor tag and add base URL
+                       $NAV .= "<A href=\"".URL."/modules.php?module=admin&amp;what=".$GLOBALS['what']."&amp;page=".$page."&amp;offset=".$offset;
+
+                       // Add userid when we shall show all mails from a single member
+                       if ((isset($_GET['u_id'])) && (bigintval($_GET['u_id']) > 0)) $NAV .= "&amp;u_id=".bigintval($_GET['u_id']);
+
+                       // Close open anchor tag
+                       $NAV .= "\">";
+               }
+               $NAV .= $page;
+               if (($page == $_GET['page']) || ((empty($_GET['page'])) && ($page == "1"))) {
+                       // Is currently selected, so only highlight it
+                       $NAV .= "-</STRONG>";
+               } else {
+                       // Close anchor tag
+                       $NAV .= "</A>";
+               }
+
+               // Add seperator if we have not yet reached total pages
+               if ($page < $PAGES) $NAV .= "&nbsp;|&nbsp;";
+       }
+
+       // Define constants only once
+       if (!defined('__NAV_OUTPUT')) {
+               define('__NAV_OUTPUT' , $NAV);
+               define('__NAV_COLSPAN', $colspan);
+               define('__NAV_TOP'    , $TOP);
+               define('__NAV_SEP'    , $SEP);
+       }
+
+       // Load navigation template
+       $OUT = LOAD_TEMPLATE("admin_email_nav_row", true);
+
+       if ($return) {
+               // Return generated HTML-Code
+               return $OUT;
+       } else {
+               // Output HTML-Code
+               OUTPUT_HTML($OUT);
+       }
+}
+
+//
+function MXCHANGE_OPEN($script) {
+       // Extract host name
+       $host = str_replace("http://", "", SERVER_URL);
+       if (ereg("/", $host)) $host = substr($host, 0, strpos($host, "/"));
+
+       // Generate relative URL
+       $script = substr(SERVER_URL, (strpos(SERVER_URL, $host) + strlen($host)))."/".basename($script);
+       if (substr($script, 0, 1) == "/") $script = substr($script, 1);
+
+       // Open connection
+       $fp = @fsockopen($host, 80, $errno, $errdesc, 30);
+       if (!$fp)
+       {
+               // Failed!
+               return array("", "", "");
+       }
+
+       // Generate request header
+       $request  = "GET /".trim($script)." HTTP/1.0\r\n";
+       $request .= "Host: ".$host."\r\n";
+       $request .= "Referer: ".URL."/admin.php\r\n";
+       $request .= "User-Agent: ".TITLE."/".FULL_VERSION."\r\n\r\n";
+
+       // Initialize array
+       $response = array();
+
+       // Write request
+       fputs($fp, $request);
+
+       // Read response
+       while(!feof($fp)) {
+               $response[] = fgets($fp, 1024);
+       }
+
+       // Close socket
+       fclose($fp);
+
+       // Was the request successfull?
+       if ((!ereg("200 OK", $response[0])) && (empty($response[0]))) {
+               // Not found / access forbidden
+               $response = array("", "", "");
+       }
+
+       // Return response
+       return $response;
+}
+// Taken from www.php.net eregi() user comments
+function VALIDATE_EMAIL($email) {
+       // Compile email
+       $email = COMPILE_CODE($email);
+
+       // Check first part of email address
+       $first = "[-a-z0-9!#$%&\'*+/=?^_<{|}~]+(\.[-a-zA-Z0-9!#$%&\'*+/=?^_<{|}~]+)*";
+
+       //  Check domain
+       $domain = "[a-z0-9-]+(\.[a-z0-9-]{2,5})+";
+
+       // Generate pattern
+       $regex = "^".$first."@".$domain."$";
+
+       // Return check result
+       return eregi($regex, $email);
+}
+// Function taken from user comments on www.php.net / function eregi()
+function VALIDATE_URL ($URL, $compile=true) {
+       // Trim URL a little
+       $URL = trim(urldecode($URL));
+       //* DEBUG: */ echo $URL."<BR>";
+
+       // Compile some chars out...
+       if ($compile) $URL = COMPILE_CODE($URL, false, false, false);
+       //* DEBUG: */ echo $URL."<BR>";
+
+       // Check for the extension filter
+       if (EXT_IS_ACTIVE("filter")) {
+               // Use the extension's filter set
+               return FILTER_VALIDATE_URL($URL, false);
+       }
+
+       // If not installed, perform a simple test. Just make it sure there is always a http:// or
+       // https:// in front of the URLs
+       return (((substr($URL, 0, 7) == "http://") || (substr($URL, 0, 8) == "https://")) && (strlen($URL) >= 12));
+}
+//
+function MEMBER_ACTION_LINKS($uid, $status="") {
+       // Define all main targets
+       $TARGETS = array("del_user", "edit_user", "lock_user", "add_points", "sub_points");
+
+       // Begin of navigation links
+       $eval = "\$OUT = \"[&nbsp;";
+
+       foreach ($TARGETS as $tar) {
+               $eval .= "<SPAN class=\\\"admin_user_link\\\"><A href=\\\"".URL."/modules.php?module=admin&amp;what=".$tar."&amp;u_id=".$uid."\\\" title=\\\"\".ADMIN_LINK_";
+               //* DEBUG: */ echo "*".$tar."/".$status."*<br />\n";
+               if (($tar == "lock_user") && ($status == "LOCKED")) {
+                       // Locked accounts shall be unlocked
+                       $eval .= "UNLOCK_USER";
+               } else {
+                       // All other status is fine
+                       $eval .= strtoupper($tar);
+               }
+               $eval .= "_TITLE.\"\\\">\".ADMIN_";
+               if (($tar == "lock_user") && ($status == "LOCKED")) {
+                       // Locked accounts shall be unlocked
+                       $eval .= "UNLOCK_USER";
+               } else {
+                       // All other status is fine
+                       $eval .= strtoupper($tar);
+               }
+               $eval .= ".\"</A></SPAN>&nbsp;|&nbsp;";
+       }
+
+       // Finish navigation link
+       $eval = substr($eval, 0, -7) . "]\";";
+       eval($eval);
+
+       // Return string
+       return $OUT;
+}
+// Function for backward-compatiblity
+function ADD_CATEGORY_TABLE ($MODE, $return=false) {
+       // Load it from the register extension
+       return REGISTER_ADD_CATEGORY_TABLE ($MODE, $return);
+}
+// Generate an email link
+function CREATE_EMAIL_LINK($email, $table="admins") {
+       // Default email link (INSECURE! Spammer can read this by harvester programs)
+       $EMAIL = "mailto:".$email;
+
+       // Check for several extensions
+       if ((EXT_IS_ACTIVE("admins")) && ($table == "admins")) {
+               // Create email link for contacting admin in guest area
+               $EMAIL = ADMINS_CREATE_EMAIL_LINK($email);
+       } elseif ((GET_EXT_VERSION("user") >= "0.3.3") && ($table == "user_data")) {
+               // Create email link for contacting a member within admin area (or later in other areas, too?)
+               $EMAIL = USER_CREATE_EMAIL_LINK($email);
+       } elseif ((EXT_IS_ACTIVE("sponsor")) && ($table == "sponsor_data")) {
+               // Create email link to contact sponsor within admin area (or like the link above?)
+               $EMAIL = SPONSOR_CREATE_EMAIL_LINK($email);
+       }
+
+       // Shall I close the link when there is no admin?
+       if ((!IS_ADMIN()) && ($EMAIL == $email)) $EMAIL = "#"; // Closed!
+
+       // Return email link
+       return $EMAIL;
+}
+// Generate a hash for extra-security for all passwords
+function generateHash($plainText, $salt = "") {
+       global $CONFIG, $_SERVER;
+
+       // Is the required extension "sql_patches" there?
+       if ((GET_EXT_VERSION("sql_patches") < "0.3.6") || (GET_EXT_VERSION("sql_patches") == "")) {
+               // Extension sql_patches is missing/outdated so we return the plain text
+               return $plainText;
+       }
+
+       // When the salt is empty build a new one, else use the first x configured characters as the salt
+       if ($salt == "") {
+               // Build server string
+               $server = $_SERVER['PHP_SELF'].":".getenv('HTTP_USER_AGENT').":".getenv('SERVER_SOFTWARE').":".getenv('REMOTE_ADDR').":".":".filemtime(PATH."inc/databases.php");
+
+               // Build key string
+               $keys   = SITE_KEY.":".DATE_KEY.":".$CONFIG['secret_key'].":".$CONFIG['file_hash'].":".date("d-m-Y (l-F-T)", $CONFIG['patch_ctime']).":".$CONFIG['master_salt'];
+
+               // Additional data
+               $data = $plainText.":".uniqid(rand(), true).":".time();
+
+               // Calculate number for generating the code
+               $a = time() + _ADD - 1;
+
+               // Generate SHA1 sum from modula of number and the prime number
+               $sha1 = sha1(($a % _PRIME).$server.":".$keys.":".$data.":".date("d-m-Y (l-F-T)", time()).":".$a);
+               //* DEBUG: */ echo "SHA1=".$sha1." (".strlen($sha1).")<br>";
+               $sha1 = scrambleString($sha1);
+               //* DEBUG: */ echo "Scrambled=".$sha1." (".strlen($sha1).")<br>";
+               //* DEBUG: */ $sha1b = descrambleString($sha1);
+               //* DEBUG: */ echo "Descrambled=".$sha1b." (".strlen($sha1b).")<br>";
+
+               // Generate the password salt string
+               $salt = substr($sha1, 0, $CONFIG['salt_length']);
+               //* DEBUG: */ echo $salt." (".strlen($salt).")<BR>";
+       }
+        else
+       {
+               $salt = substr($salt, 0, $CONFIG['salt_length']);
+       }
+
+       // Return hash
+       return $salt . sha1($salt . $plainText);
+}
+//
+function scrambleString($str) {
+       global $CONFIG;
+
+       // Init
+       $scrambled = "";
+
+       // Final check, in case of failture it will return unscrambled string
+       if (strlen($str) > 40) {
+               // The string is to long
+               return $str;
+       } elseif (strlen($str) == 40) {
+               // From database
+               $scrambleNums = explode(":", $CONFIG['pass_scramble']);
+       } else {
+               // Generate new numbers
+               $scrambleNums = explode(":", genScrambleString(strlen($str)));
+       }
+
+       // Scramble string here
+       //* DEBUG: */ echo "***Original=".$str."***<BR>";
+       for ($idx = 0; $idx < strlen($str); $idx++) {
+               // Get char on scrambled position
+               $char = substr($str, $scrambleNums[$idx], 1);
+
+               // Add it to final output string
+               $scrambled .= $char;
+       }
+
+       // Return scrambled string
+       //* DEBUG: */ echo "***Scrambled=".$scrambled."***<BR>";
+       return $scrambled;
+}
+//
+function descrambleString($str)
+{
+       global $CONFIG;
+       // Scramble only 40 chars long strings
+       if (strlen($str) != 40) return $str;
+
+       // Load numbers from config
+       $scrambleNums = explode(":", $CONFIG['pass_scramble']);
+
+       // Validate numbers
+       if (count($scrambleNums) != 40) return $str;
+
+       // Begin descrambling
+       $orig = str_repeat(" ", 40);
+       //* DEBUG: */ echo "+++Scrambled=".$str."+++<BR>";
+       for ($idx = 0; $idx < 40; $idx++)
+       {
+               $char = substr($str, $idx, 1);
+               $orig = substr_replace($orig, $char, $scrambleNums[$idx], 1);
+       }
+
+       // Return scrambled string
+       //* DEBUG: */ echo "+++Original=".$orig."+++<BR>";
+       return $orig;
+}
+//
+function genScrambleString($len) {
+       // Prepare randomizer and array for the numbers
+       mt_srand((double) microtime() * 1000000);
+       $scrambleNumbers = array();
+
+       // First we need to setup randomized numbers from 0 to 31
+       for ($idx = 0; $idx < $len; $idx++) {
+               // Generate number
+               $rand = mt_rand(0, ($len -1));
+
+               // Check for it by creating more numbers
+               while (array_key_exists($rand, $scrambleNumbers)) {
+                       $rand = mt_rand(0, ($len -1));
+               }
+
+               // Add number
+               $scrambleNumbers[$rand] = $rand;
+       }
+
+       // So let's create the string for storing it in database
+       $scrambleString = implode(":", $scrambleNumbers);
+       return $scrambleString;
+}
+// Append data like session ID referral ID to the given URL which would
+// normally be stored in cookies
+function ADD_URL_DATA($URL)
+{
+       global $_GET, $CONFIG;
+       $ADD = "";
+
+       // Determine URL binder
+       $BIND = "?";
+       if (strpos($URL, "?") !== false) $BIND = "&";
+
+       if ((!defined('__COOKIES')) || ((!__COOKIES))) {
+               // Cookies are not accepted
+               if ((!empty($_GET['refid'])) && (strpos($URL, "refid=") == 0)) {
+                       // Cookie found in URL
+                       $ADD .= $BIND."refid=".bigintval($_GET['refid']);
+               } elseif ((GET_EXT_VERSION("sql_patches") != "") && ($CONFIG['def_refid'] > 0)) {
+                       // Not found! So let's set default here
+                       $ADD .= $BIND."refid=".$CONFIG['def_refid'];
+               }
+
+               // Is there already added data? Then change the binder
+               if (!empty($ADD)) $BIND = "&";
+
+               // Add session ID
+               if ((!empty($_GET['PHPSESSID'])) && (strpos($URL, "PHPSESSID=") == 0)) {
+                       // Add session from URL
+                       $ADD .= $BIND."PHPSESSID=".SQL_ESCAPE(strip_tags($_GET['PHPSESSID']));
+               } else {
+                       // Add current session
+                       $ADD .= $BIND."PHPSESSID=".session_id();
+               }
+       }
+
+       // Add all together and return it
+       return $URL.$ADD;
+}
+//
+function generatePassString($passHash) {
+       global $CONFIG;
+       $ret = "*FAILED*";
+
+       // Is a secret key and master salt already initialized?
+       if ((!empty($CONFIG['secret_key'])) && (!empty($CONFIG['master_salt']))) {
+               // Only calculate when the secret key is generated
+               $newHash = ""; $start = 9;
+               for ($idx = 0; $idx < 10; $idx++) {
+                       $part1 = hexdec(substr($passHash, $start, 4));
+                       $part2 = hexdec(substr($CONFIG['secret_key'], $start, 4));
+                       $mod = dechex($idx);
+                       if ($part1 > $part2) {
+                               $mod = dechex(sqrt(($part1 - $part2) * _PRIME / pi()));
+                       } elseif ($part2 > $part1) {
+                               $mod = dechex(sqrt(($part2 - $part1) * _PRIME / pi()));
+                       }
+                       $mod = substr(round($mod), 0, 4);
+                       $mod = str_repeat('0', 4-strlen($mod)).$mod;
+                       //* DEBUG: */ echo "*".$start."=".$mod."*<br>";
+                       $start += 4;
+                       $newHash .= $mod;
+               }
+               //* DEBUG: */ die($passHash."<br>".$newHash." (".strlen($newHash).")");
+               $ret = generateHash($newHash, $CONFIG['master_salt']);
+       }
+
+       // Return result
+       return $ret;
+}
+// Fix "deleted" cookies
+function FIX_DELETED_COOKIES ($cookies) {
+       // Is this an array with entries?
+       if ((is_array($cookies)) && (count($cookies) > 0)) {
+               // Then check all cookies if they are marked as deleted!
+               foreach ($cookies as $cookieName) {
+                       // Is the cookie set to "deleted"?
+                       if ((isset($_COOKIE[$cookieName])) && ($_COOKIE[$cookieName] == "deleted")) {
+                               unset($_COOKIE[$cookieName]);
+                       }
+               }
+       }
+}
+// Output error messages in a fasioned way and die...
+function mxchange_die ($msg) {
+       global $FOOTER;
+
+       // Load the message template
+       LOAD_TEMPLATE("admin_settings_saved", false, $msg);
+
+       // Load footer
+       include(PATH."inc/footer.php");
+
+       // Exit explicitly
+       exit;
+}
+//
+//////////////////////////////////////////////
+//                                          //
+// AUTOMATICALLY RE-GNERATED FUNCTIONS ONLY //
+//                                          //
+//////////////////////////////////////////////
+//
+if (!function_exists('html_entity_decode'))
+{
+       // Taken from documentation on www.php.net
+       function html_entity_decode($string)
+       {
+               $trans_tbl = get_html_translation_table(HTML_ENTITIES);
+               $trans_tbl = array_flip($trans_tbl);
+               return strtr($string, $trans_tbl);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/gen_mediadata.php b/0.2.1/inc/gen_mediadata.php
new file mode 100644 (file)
index 0000000..07d1e7a
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/08/2005 *
+ * ===============                              Last change: 01/01/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : gen_mediadata.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Checks for existing mail orders                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Prueft bestehende Mailbuchungen                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Check for normal mails
+$result_media = SQL_QUERY("SELECT SUM(max_rec) AS max_rec, SUM(clicks) AS clicks
+FROM "._MYSQL_PREFIX."_user_stats", __FILE__, __LINE__);
+list($nsent, $nclicks) = SQL_FETCHROW($result_media);
+if (empty($nsent))   $nsent   = "0";
+if (empty($nclicks)) $nclicks = "0";
+
+// Free memory
+SQL_FREERESULT($result_media);
+
+// Count mail orders
+$result_media = SQL_QUERY("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_user_stats", __FILE__, __LINE__);
+list($ncount) = SQL_FETCHROW($result_media);
+SQL_FREERESULT($result_media);
+$result_media = SQL_QUERY("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_bonus", __FILE__, __LINE__);
+list($bcount) = SQL_FETCHROW($result_media);
+SQL_FREERESULT($result_media);
+
+// Check for bonus extension
+if (EXT_IS_ACTIVE("bonus"))
+{
+       // Check for bonus mails
+       $result_media = SQL_QUERY("SELECT SUM(mails_sent) AS bonus_sent, SUM(clicks) AS bonus_clicks
+FROM "._MYSQL_PREFIX."_bonus", __FILE__, __LINE__);
+       list($bsent, $bclicks) = SQL_FETCHROW($result_media);
+       if (empty($bsent))   $bsent   = "0";
+       if (empty($bclicks)) $bclicks = "0";
+}
+ else
+{
+       // Not found!
+       $bsent = "0"; $bclicks = "0";
+}
+
+// Load (maybe) missing file
+require_once(PATH."inc/libs/mediadata_functions.php");
+
+// Insert info to database
+MEDIA_UPDATE_ENTRY(array("total_send"  , "normal_send")  , "init", $nsent);
+MEDIA_UPDATE_ENTRY(array("total_clicks", "normal_clicks"), "init", $nclicks);
+MEDIA_UPDATE_ENTRY(array("total_orders", "normal_orders"), "init", $ncount);
+MEDIA_UPDATE_ENTRY(array("total_send"  , "bonus_send" )  , "init", $bsent);
+MEDIA_UPDATE_ENTRY(array("total_clicks", "bonus_clicks") , "init", $bclicks);
+MEDIA_UPDATE_ENTRY(array("total_orders", "bonus_orders") , "init", $bcount);
+
+// Aquire total used points
+$result = SQL_QUERY("SELECT SUM(used_points) AS used_points FROM "._MYSQL_PREFIX."_user_data", __FILE__, __LINE__);
+list($used) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+// ... and total points
+$result = SQL_QUERY("SELECT SUM(points) AS points FROM "._MYSQL_PREFIX."_user_points", __FILE__, __LINE__);
+list($points) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+// Update database
+MEDIA_UPDATE_ENTRY(array("total_points"), "init", ($points - $used));
+
+//
+?>
diff --git a/0.2.1/inc/gen_sql_patches.php b/0.2.1/inc/gen_sql_patches.php
new file mode 100644 (file)
index 0000000..9a77b2d
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/08/2005 *
+ * ===============                              Last change: 01/01/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : gen_sql_patches.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Patch password system after upgrading            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Patcht das Passwort-System nach DB-Update        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+        require($INC);
+}
+
+// Check for version of sql_patches
+if (GET_EXT_VERSION("sql_patches") < "0.3.6") return false;
+
+// Check if there is no scrambling string
+if (empty($CONFIG['pass_scramble']))
+{
+        // Generate 40 chars long scramble string
+        $scrambleString = genScrambleString(40);
+
+        // ... and store it there for future usage
+        $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET pass_scramble='%s' WHERE config='0' LIMIT 1",
+         array($scrambleString), __FILE__, __LINE__);
+
+        // Also remember it in config
+        $CONFIG['pass_scramble'] = $scrambleString;
+        unset($scrambleString);
+}
+
+// Check if there is no master salt string
+if (empty($CONFIG['master_salt']))
+{
+        // Generate the master salt which is the first chars minus 40 chars of this random hash
+        // We do an extra scrambling here...
+        $masterSalt = scrambleString(substr(generateHash(GEN_PASS(rand(128, 256))), 0, -40));
+
+        // ... and store it there for future usage
+        $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET master_salt='%s' WHERE config='0' LIMIT 1",
+         array($masterSalt), __FILE__, __LINE__);
+
+        // Also remember it in config
+        $CONFIG['master_salt'] = $masterSalt;
+        unset($masterSalt);
+}
+
+if (empty($CONFIG['file_hash']))
+{
+        // Create filename from hashed random string
+        $file_hash = generateHash(GEN_PASS(rand(128, 256)));
+        $file = PATH."inc/.secret/.".$file_hash;
+
+        // File hash was never created
+        $fp = @fopen($file, 'w') or mxchange_die("Cannot write secret key file!");
+        if ($fp != false)
+        {
+                // Could write to secret file! So let's generate the secret key...
+                // 1. Count of chars to be taken from back of the string
+                $nums = rand(40, 45);
+                // 2. Generate secret key from a randomized string
+                $secretKey = substr(generateHash(GEN_PASS(rand(128, 256))), -$nums);
+                // 3. Write the key to the file
+                fwrite($fp, $secretKey);
+                // 4. Close file
+                fclose($fp);
+
+                // Change access rights for more security
+                @chmod($file, 0644);
+
+                //* DEBUG: */ unlink($file);
+                //* DEBUG: */ $test = hexdec($_COOKIE['u_hash']) / hexdec($secretKey);
+                //* DEBUG: */ $test = generateHash(str_replace('.', '', $test));
+                //* DEBUG: */ die("Secret-Key: ".$secretKey."<br>Cookie: ".$_COOKIE['u_hash']."<br>Test: ".$test);
+
+                // Write $file_hash to database
+                $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET file_hash='%s' WHERE config='0' LIMIT 1",
+                 array($file_hash), __FILE__, __LINE__);
+
+                // Also create .htaccess file
+                $fp = @fopen(PATH."inc/.secret/.htaccess", 'w') or mxchange_die("Cannot write to .htaccess file!");
+                if ($fp != false)
+                {
+                        // Add deny line to file
+                        fwrite($fp, "Deny from all");
+
+                        // Close the file
+                        fclose($fp);
+                }
+
+                // Also update configuration
+                $CONFIG['secret_key'] = $secretKey; unset($secretKey);
+                $CONFIG['file_hash']  = $file_hash; unset($file_hash);
+        }
+}
+
+//
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/header.php b/0.2.1/inc/header.php
new file mode 100644 (file)
index 0000000..008032e
--- /dev/null
@@ -0,0 +1,130 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 11/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : header.php                                       *
+ * -------------------------------------------------------------------- *
+ * Short description : Outputs header HTML code, will not when frameset *
+ *           is active                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Gibt nur dann HTML-Code fuer den Kopf-Bereich    *
+ *           aus, wenn Frameset nicht aktiv ist                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+if (defined('frameset_active')) {
+       // Initialize variables
+       $header = ""; $FOOTER = "";
+       if (empty($GLOBALS['what'])) $GLOBALS['what'] = "";
+       if (($header != "1") && ($header != "2")) {
+               // If not in CSS mode generate the header
+               if (($CSS != "1")) {
+                       // Generate header
+                       $TITLE = "";
+
+                       // Add title decorations? (left)
+                       if ((!empty($CONFIG)) && (isset($link)) && (isset($db))) {
+                               if (($CONFIG['title_decoration'] == "Y") && (trim(!empty($CONFIG['title_left'])))) $TITLE .= trim($CONFIG['title_left'])." ";
+                               $TITLE .= MAIN_TITLE;
+
+                               // Add title of module? (middle decoration will also be added!)
+                               if (($CONFIG['title_mod_show'] == "Y") || ((empty($GLOBALS['what'])) && (empty($GLOBALS['action']))) || ($GLOBALS['module'] == "admin")) $TITLE .= " ".trim($CONFIG['title_middle'])." ".ADD_MODULE_TITLE($GLOBALS['module']);
+
+                               // Add title from what file
+                               $MODE = "";
+                               if ($GLOBALS['module'] == "login") $MODE = "member";
+                                elseif ($GLOBALS['module'] == "index") $MODE = "guest";
+                               if ((!empty($MODE)) && ($CONFIG['title_what_show'] == "Y")) $TITLE .= " ".trim($CONFIG['title_middle'])." ".GET_MOD_DESCR($MODE, $GLOBALS['what']);
+
+                               // Add title decorations? (right)
+                               if (($CONFIG['title_decoration'] == "Y") && (!empty($CONFIG['title_right']))) $TITLE .= " ".trim($CONFIG['title_right']);
+
+                               // Remember title in constant for the template
+                               define('__PAGE_TITLE', html_entity_decode($TITLE));
+                       } elseif ((!mxchange_installed) || (!admin_registered)) {
+                               // Load language file because it was missing in installation finalizer step... *sigh*
+                               require_once(sprintf("%sinc/language/install_%s.php",
+                                       PATH,
+                                       GET_LANGUAGE()
+                               ));
+
+                               // Installation mode
+                               define('__PAGE_TITLE', INSTALLATION_OF_MXCHANGE);
+                       } else {
+                               // Configuration not found!
+                               define('__PAGE_TITLE', NO_CONFIG_FOUND_TITLE);
+                               ADD_FATAL(NO_CONFIG_FOUND);
+                       }
+
+                       // Save some little memory
+                       unset($TITLE);
+
+                       // Output page header code
+                       LOAD_TEMPLATE("page_header");
+
+                       // Include meta data here
+                       LOAD_TEMPLATE("metadata");
+
+                       // Add meta description to header
+                       if ((mxchange_installed) && (admin_registered) && ($GLOBALS['module'] != "admin") && ($GLOBALS['module'] != "login") && (isset($db)) && (isset($link))) {
+                               // Add meta description not in admin and login module and when the script is installed
+                               META_DESCRIPTION($GLOBALS['module'], $GLOBALS['what']);
+                       }
+
+                       // Include more header data here
+                       LOAD_TEMPLATE("header");
+
+                       // Include stylesheet
+                       include (PATH."inc/stylesheet.php");
+               }
+
+               // Closing HEAD tag
+               if ($CSS != "1") OUTPUT_HTML ("</HEAD>\n");
+               $header = 1;
+       }
+
+       // Set unsetted variables
+       if (empty($_GET['frame'])) $_GET['frame'] = "";
+
+       // Load body or not
+       if (((!frameset_active) && ($GLOBALS['module'] != "frametester")) || (($header == "1") && ($GLOBALS['module'] == "frametester") && (!empty($_GET['frame']))) && ($CSS != "1")) {
+               // Is the header sent and the script is not the mail confirmation script and not a CSS?
+               if (($header == "1") && (basename($_SERVER['PHP_SELF']) != "mailid.php") && ($CSS != "1")) {
+                       // Add BODY tag
+                       LOAD_TEMPLATE("page_body");
+                       $header = 2;
+               }
+       }
+} else {
+       // Something is missing
+       die ("<STRONG>Fatal error:</STRONG> You have to define <STRONG>frameset_active</STRONG>!");
+}
+//
+?>
diff --git a/0.2.1/inc/install-inc.php b/0.2.1/inc/install-inc.php
new file mode 100644 (file)
index 0000000..7dc72ad
--- /dev/null
@@ -0,0 +1,430 @@
+<?php
+/************************************************************************
+ * MXChange v0.1.0                                    Start: 08/29/2003 *
+ * ===============                              Last change: 11/11/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : install-inc.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for installation procedure             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer die Installationsroutine         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+/************************************************************************
+ *      YOU MAY ALSO WANT TO REMOVE THIS FILE AFTER INSTALLTION!        *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+function install_WriteData ($FILE, $COMMENT, $PREFIX, $SUFFIX, $DATA, $SNEAK=0)
+{
+       $DONE = false;  $SNEAK++;
+       if (file_exists($FILE))
+       {
+               $SEARCH = "CFG: ".$COMMENT;
+               $TMP = $FILE.".tmp";
+               $fp = fopen($FILE, 'r') or OUTPUT_HTML ("<STRONG>READ:</STRONG> ".$FILE."<BR>");
+               if ($fp)
+               {
+                       $fp_tmp = fopen($TMP, 'w') or OUTPUT_HTML ("<STRONG>WRITE:</STRONG> ".$TMP."<BR>");
+                       if ($fp_tmp)
+                       {
+                               while (! feof($fp))
+                               {
+                                       $line = fgets ($fp, 10240);
+                                       if (strpos($line, $SEARCH) > -1) $next = 0;
+                                       if ($next > -1)
+                                       {
+                                               if ($next == $SNEAK)
+                                               {
+                                                       $next = -1;
+                                                       $line = $PREFIX.$DATA.$SUFFIX."\n";
+                                               }
+                                                else
+                                               {
+                                                       $next++;
+                                               }
+                                       }
+                                       fputs($fp_tmp, $line);
+                               }
+                               fclose($fp_tmp);
+                               // Finished writing tmp file
+                               $DONE = true;
+                       }
+                       fclose($fp);
+                       if ($DONE)
+                       {
+                               // Copy back tmp file and delete tmp :-)
+                               @copy($TMP, $FILE);
+                               @unlink($TMP);
+                       }
+                        else
+                       {
+                               OUTPUT_HTML ("<STRONG>TMP:</STRONG> UNDONE!");
+                       }
+               }
+       }
+        else
+       {
+               OUTPUT_HTML ("<STRONG>404:</STRONG> ".$FILE."<BR>");
+       }
+}
+
+//
+$mysql = "";
+if (isset($_POST['mysql']) && is_array($_POST['mysql'])) $mysql = $_POST['mysql'];
+
+if (URL != "http://your-server.com")
+{
+       // Already installed???
+       $burl = URL;
+}
+ elseif ($burl == "")
+{
+       // Auto-detect URL
+       $burl = "http://".$SERVER_NAME.$_SERVER['PHP_SELF'];
+       $burl = substr($burl, 0, strpos($burl, "install.php"));
+}
+//
+if ((!mxchange_installed) || (!admin_registered))
+{
+       // Set URL for FORM actions
+       define('__BURL_ACTION', $burl);
+
+       // Output page for entered value
+       switch ($_GET['page'])
+       {
+       case "welcome": // Welcome to the installation!
+               LOAD_TEMPLATE("install_welcome");
+               break;
+
+       case "1": // Server path, base URL
+               define('__PATH_LEN'     , strlen(PATH));
+               define('__BURL_LEN'     , strlen($burl));
+               define('__TITLE_LEN'    , strlen(MAIN_TITLE));
+               define('__SLOGAN_LEN'   , strlen(SLOGAN));
+               define('__WEBMASTER_LEN', (strlen(WEBMASTER) * 3));
+
+               // Load template
+               LOAD_TEMPLATE("install_page1");
+               break;
+
+       case "2": // MySQL data (alone!)
+               if (empty($mysql['dbase']))  $mysql['dbase']  = "your_database";
+               if (empty($mysql['login']))  $mysql['login']  = "your_login";
+               if (empty($mysql['host']))   $mysql['host']   = "localhost";
+               if (empty($mysql['prefix'])) $mysql['prefix'] = "mxchange_";
+               if ((sizeof($FATAL) > 0) || (!empty($FATAL[0])))
+               {
+                       OUTPUT_HTML ("<SPAN class=\"install_fatal\">");
+                       foreach ($FATAL as $key=>$err)
+                       {
+                               OUTPUT_HTML ("  <STRONG>&middot;</STRONG>&nbsp;".FATAL_NO.($key + 1).":&nbsp;".$err."<BR>\n");
+                       }
+                       OUTPUT_HTML ("</SPAN><BR>");
+               }
+               define('__MYSQL_HOST'  , $mysql['host']);
+               define('__MYSQL_DBASE' , $mysql['dbase']);
+               define('__MYSQL_PREFIX', $mysql['prefix']);
+               define('__MYSQL_LOGIN' , $mysql['login']);
+               define('__SPATH_VALUE' , $_POST['spath']);
+               define('__BURL_VALUE'  , $_POST['burl']);
+               define('__TITLE_VALUE' , $_POST['title']);
+               define('__SLOGAN_VALUE', $_POST['slogan']);
+               define('__EMAIL_VALUE' , $_POST['email']);
+
+               // Load template
+               LOAD_TEMPLATE("install_page2");
+               break;
+
+       case "5": // Misc settings
+               define('__SPATH_VALUE' , $_POST['spath']);
+               define('__BURL_VALUE'  , $_POST['burl']);
+               define('__TITLE_VALUE' , $_POST['title']);
+               define('__SLOGAN_VALUE', $_POST['slogan']);
+               define('__EMAIL_VALUE' , $_POST['email']);
+               OUTPUT_HTML ("<FORM action=\"".__BURL_ACTION."/install.php?page=finalize\" method=\"POST\" target=\"_self\">
+<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"install_content\">
+<TR>
+  <TD colspan=\"2\" align=\"center\">
+    <STRONG class=\"install\">".HEADER_TEXT_PAGE5."</STRONG>
+  </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD colspan=\"2\"><SPAN class=\"install_intro\">
+    ".TEXT_PAGE_5."
+  </SPAN></TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD class=\"install\" align=\"right\">".LANG_OUTPUT_MODE.":&nbsp;&nbsp;</TD>
+  <TD>
+    <SELECT name=\"omode\" size=\"1\" class=\"install_select\">
+      <OPTION value=\"render\"");
+               if (OUTPUT_MODE == "render") OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".MODE_RENDER."</OPTION>
+      <OPTION value=\"direct\"");
+               if (OUTPUT_MODE == "direct") OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".MODE_DIRECT."</OPTION>
+    </SELECT>
+  </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD class=\"install\" align=\"right\">".WARN_NO_PASSWORD.":&nbsp;&nbsp;</TD>
+  <TD>
+    <SELECT name=\"warn_no_pass\" size=\"1\" class=\"install_select\">
+      <OPTION value=\"true\"");
+               if (warn_no_pass) OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".YES."</OPTION>
+      <OPTION value=\"false\"");
+               if (!warn_no_pass) OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".NO."</OPTION>
+    </SELECT>
+  </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD class=\"install\" align=\"right\">".LANG_WRITE_FOOTER.":&nbsp;&nbsp;</TD>
+  <TD>
+    <SELECT name=\"wfooter\" size=\"1\" class=\"install_select\">
+      <OPTION value=\"true\"");
+               if (WRITE_FOOTER) OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".YES."</OPTION>
+      <OPTION value=\"false\"");
+               if (!WRITE_FOOTER) OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".NO."</OPTION>
+    </SELECT>
+  </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD class=\"install\" align=\"right\">".LANG_FRAMESET_ACTIVE.":&nbsp;&nbsp;</TD>
+  <TD>
+    <SELECT name=\"frameset\" size=\"1\" class=\"install_select\">
+      <OPTION value=\"true\"");
+               if (frameset_active) OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".YES."</OPTION>
+      <OPTION value=\"false\"");
+               if (!frameset_active) OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".NO."</OPTION>
+    </SELECT>
+  </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD class=\"install\" align=\"right\">".INSTALL_ENABLE_BACKLINK.":&nbsp;&nbsp;</TD>
+  <TD>
+    <SELECT name=\"blink\" size=\"1\" class=\"install_select\">
+      <OPTION value=\"true\"");
+               if (ENABLE_BACKLINK) OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".YES."</OPTION>
+      <OPTION value=\"false\"");
+               if (!ENABLE_BACKLINK) OUTPUT_HTML (" selected=\"selected\"");
+               OUTPUT_HTML (">".NO."</OPTION>
+    </SELECT>
+  </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD colspan=\"2\" align=\"center\">");
+               foreach ($mysql as $key=>$value)
+               {
+                       OUTPUT_HTML ("    <INPUT type=\"hidden\" name=\"mysql[".$key."]\" value=\"".$value."\">");
+               }
+               OUTPUT_HTML ("    <INPUT type=\"hidden\" name=\"spath\" value=\"".__SPATH_VALUE."\">
+    <INPUT type=\"hidden\" name=\"burl\" value=\"".__BURL_VALUE."\">
+    <INPUT type=\"hidden\" name=\"title\" value=\"".__TITLE_VALUE."\">
+    <INPUT type=\"hidden\" name=\"slogan\" value=\"".__SLOGAN_VALUE."\">
+    <INPUT type=\"hidden\" name=\"email\" value=\"".__EMAIL_VALUE."\">
+    <INPUT type=\"submit\" class=\"admin_submit submit\" name=\"finalize\" value=\"".NEXT_PAGE."\" class=\"install_submit\">
+  </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+</TABLE>
+</FORM>");
+               break;
+
+       case "finalize": // Write captured data to files
+               if (!empty($_POST['finalize']))
+               {
+                       // You have submitted data then we have to reset the fatal messages
+                       $FATAL = array();
+
+                       // Connect to MySQL server
+                       $link = SQL_CONNECT($mysql['host'], $mysql['login'], $mysql['pass1'], __FILE__, __LINE__);
+                       if ($link)
+                       {
+                               // Seems to work, also right database?
+                               $db = SQL_SELECT_DB($mysql['dbase'], $link, __FILE__, __LINE__);
+                               if ($db)
+                               {
+                                       // Automatically run install.sql
+                                       if (file_exists($_POST['spath']."install/tables.sql"))
+                                       {
+                                               $ERRORS = $_POST['spath']."inc/sql.err";
+                                               $cmd = array(
+                                                       // "Dump" tha' s*** up... ;-) > /dev/null
+                                                       "mysql ".$mysql['dbase']." --force --host=".$mysql['host']." --user=".$mysql['login']." --password=".$mysql['pass1']." < ".$_POST['spath']."install/tables.sql",
+                                                       "mysql ".$mysql['dbase']." --force --host=".$mysql['host']." --user=".$mysql['login']." --password=".$mysql['pass1']." < ".$_POST['spath']."install/menu-".GET_LANGUAGE().".sql"
+                                               );
+
+                                               foreach ($cmd as $c)
+                                               {
+                                                       @system($c);
+                                               }
+
+                                               if ((file_exists($ERRORS)) && (filesize($ERRORS) > 0))
+                                               {
+                                                       ADD_FATAL(MYSQLDUMP_ERROR);
+                                               }
+                                                elseif (!mxchange_installed)
+                                               {
+                                                       // Remove error file if empty
+                                                       if (file_exists($ERRORS)) @unlink ($ERRORS);
+
+                                                       // Ok, all done. So we can write the config data to the php files
+                                                       if ($_POST['spath'] != PATH) install_WriteData($_POST['spath']."inc/config.php", "SERVER-PATH", "define ('PATH', \"", "\");", $_POST['spath'], 0);
+                                                       if ($_POST['burl']  != URL)  install_WriteData($_POST['spath']."inc/config.php", "HOST-URL", "define ('URL', \"", "\");", $_POST['burl'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "MAIN_TITLE", "define ('MAIN_TITLE', \"", "\");", $_POST['title'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "SLOGAN", "define ('SLOGAN', \"", "\");", $_POST['slogan'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "WEBMASTER", "define ('WEBMASTER', \"", "\");", $_POST['email'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "NULLPASS-WARNING", "define ('warn_no_pass', ", ");", $_POST['warn_no_pass'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "WRITE-FOOTER", "define ('WRITE_FOOTER', ", ");", $_POST['wfooter'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "BACKLINK", "define ('ENABLED_BACKLINK', ", ");", $_POST['blink'], 0);
+                                                       // install_WriteData($_POST['spath']."inc/config.php", "FRAMESET", "define ('frameset_active', ", ");", $_POST['frameset'], 0);
+                                                       // install_WriteData($_POST['spath']."inc/config.php", "OUTPUT-MODE", "define ('OUTPUT_MODE', \"", "\");", $_POST['omode'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "MYSQL-HOST", "     'host'     => \"", "\",", $mysql['host'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "MYSQL-DBASE", "    'dbase'    => \"", "\",", $mysql['dbase'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "MYSQL-LOGIN", "    'login'    => \"", "\",", $mysql['login'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "MYSQL-PASSWORD", " 'password' => \"", "\",", $mysql['pass1'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "MYSQL-PREFIX", "define ('_MYSQL_PREFIX', \"", "\");", $mysql['prefix'], 0);
+                                                       install_WriteData($_POST['spath']."inc/config.php", "INSTALLED", "define ('mxchange_installed', ", ");", "true", 0);
+
+                                                       // Close the link
+                                                       SQL_CLOSE($link, __FILE__, __LINE__);
+                                               }
+                                                else
+                                               {
+                                                       ADD_FATAL(INSTALL_MAYBE_DONE);
+                                               }
+                                       }
+                                        else
+                                       {
+                                               // Installation area not found!
+                                               ADD_FATAL(INSTALL_MISSING_DUMPS);
+                                       }
+                               }
+                       }
+                       if ((sizeof($FATAL) > 0) || ($FATAL[0] != ""))
+                       {
+                               $OUT = "";
+                               foreach ($FATAL as $value)
+                               {
+                                       $OUT .= "    <LI>".$value."</LI>\n";
+                               }
+                               define('__FATAL_ERROR_LI', $OUT);
+                               $OUT = "";
+                               foreach ($mysql as $key=>$value)
+                               {
+                                       $OUT .= "    <INPUT type=\"hidden\" name=\"mysql[".$key."]\" value=\"".$value."\">\n";
+                               }
+                               define('__MYSQL_DATA' , $OUT);
+                               define('__SPATH_VALUE', $_POST['spath']);
+                               define('__BURL_VALUE' , $_POST['burl']);
+                               define('__TITLE_VALUE', $_POST['title']);
+
+                               OUTPUT_HTML ("<FORM action=\"".__BURL_ACTION."/install.php?page=2\" method=\"POST\">
+<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"install_content\">
+<TR>
+  <TD align=\"center\">
+    <STRONG class=\"install\">".HEADER_MYSQL_ERRORS."</STRONG>
+  </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD><SPAN class=\"install_intro\">
+    ".TEXT_MYSQL_ERRORS."
+  </SPAN></TD>
+</TR>
+<TR>
+  <TD align=\"center\"><STRONG>
+    <OL>
+".__FATAL_ERROR_LI."
+    </OL>
+".__MYSQL_DATA."
+    <INPUT type=\"hidden\" name=\"spath\" value=\"".__SPATH_VALUE."\">
+    <INPUT type=\"hidden\" name=\"burl\" value=\"".__BURL_VALUE."\">
+    <INPUT type=\"hidden\" name=\"title\" value=\"".__TITLE_VALUE."\">
+    <INPUT type=\"submit\" class=\"admin_submit\" name=\"ok\" value=\"".RETURN_MYSQL_PAGE."\">
+  </STRONG></TD>
+</TR>
+</TABLE>
+</FORM>");
+                       }
+                        else
+                       {
+                               // Installation is done!
+                               $URL = $burl."/install.php?page=finalize";
+                               LOAD_URL($URL);
+                       }
+               }
+                elseif (mxchange_installed)
+               {
+                       // Redirection after writing data... :-)
+                       OUTPUT_HTML ("<SPAN class=\"install_finished\">".INSTALL_FINISHED."</SPAN><BR>
+<BR>
+<SPAN class=\"install_security\">".INSTALL_FIN_SECU."</SPAN><BR>
+<BR>
+<FORM action=\"modules.php\" method=\"GET\">
+  <INPUT type=\"hidden\" name=\"module\" value=\"admin\">
+  <INPUT type=\"submit\" class=\"admin_submit submit\" value=\"".CONTINUE_ADMIN."\" class=\"install_submit\">
+</FORM>");
+               }
+                else
+               {
+                       // Something goes wrong during installation! :-(
+                       ADD_FATAL(INSTALL_FINALIZER_FAILED);
+                       include ("inc/fatal_errors.php");
+               }
+               break;
+
+       default:
+               OUTPUT_HTML ("    <STRONG class=\"install_error\">".WRONG_PAGE."</STRONG>");
+               break;
+       }
+}
+ else
+{
+       ADD_FATAL(ALREADY_INSTALLED);
+}
+//
+?>
diff --git a/0.2.1/inc/language.php b/0.2.1/inc/language.php
new file mode 100644 (file)
index 0000000..beced61
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 07/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : language.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Language loader                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sprache-Lader                                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+if (empty($mx_lang)) $mx_lang = DEFAULT_LANG;
+
+// Look for file
+$FILE = sprintf(PATH."inc/language/%s.php", $mx_lang);
+if (!file_exists($FILE))
+{
+       // Switch to default (DO NOT CHANGE!!!)
+       @setcookie("mx_lang", "de", (time() + $CONFIG['online_timeout']), COOKIE_PATH);
+       $mx_lang = "de";
+       $FILE = sprintf(PATH."inc/language/%s.php", $mx_lang);
+}
+
+// Load language file
+require($FILE);
+unset($FILE);
+
+// Check for installation mode
+if (!mxchange_installed)
+{
+       // Load matching language file
+       require(PATH."inc/language/install_".$mx_lang.".php");
+}
+
+//
+?>
diff --git a/0.2.1/inc/language/.htaccess b/0.2.1/inc/language/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/language/active_de.php b/0.2.1/inc/language/active_de.php
new file mode 100644 (file)
index 0000000..11347e2
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/26/2004 *
+ * ===============                              Last change: 11/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : active_de.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('GUEST_ACTIVE_LINK', "Heute Online");
+define('GUEST_ACTIVE_NO_MEMER_ONLINE_TODAY', "Heute war noch kein einziges Mitglied online!");
+define('GUEST_ACTIVE_HEADER', "Wir waren heute online!");
+define('GUEST_ACTIVE_FOOTER', "Diese Mitglieder waren heute bei <STRONG>{--MAIN_TITLE--}</STRONG> eingeloggt.");
+define('ADMIN_ACTIVE_SETTINGS', "Einstellungen an Aktiv-Liste");
+define('ADMIN_ACTIVE_LIMIT', "Anzahl Eintr&auml;ge in Liste");
+
+//
+?>
diff --git a/0.2.1/inc/language/admins_de.php b/0.2.1/inc/language/admins_de.php
new file mode 100644 (file)
index 0000000..76a56e2
--- /dev/null
@@ -0,0 +1,111 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/15/2004 *
+ * ===============                              Last change: 08/15/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : admins_de.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_ADMINS_ADD_NEW_ADMIN', "Neuen Administrator-Account anlegen");
+define('ADMIN_ADMINS_ADD_ADMIN', "Hinzuf&uuml;gen");
+define('ADMIN_ADMINS_ENTER_LOGIN', "Loginname eingeben");
+define('ADMIN_ADMINS_ENTER_EMAIL', "E-Mail eingeben");
+define('ADMIN_ADMINS_ENTER_PASS1', "Passwort eingeben");
+define('ADMIN_ADMINS_ENTER_PASS2', "Passwort wiederholen");
+define('ADMIN_ADMINS_ADD_DONE', "Das Admin-Account wurde angelegt.");
+define('ADMIN_ADMINS_EDIT_ACCOUNTS', "Admin-Accounts verwalten");
+define('ADMIN_ADMINS_EDIT', "Bearbeiten");
+define('ADMIN_ADMINS_DELETE', "L&ouml;schen");
+define('ADMIN_ADMINS_CONTACT', "Admin-Login");
+define('ADMIN_ADMINS_EMAIL', "E-Mail Adresse");
+define('ADMIN_ADMINS_PASSWORD', "Passwort und Wiederholung");
+define('ADMIN_ADMINS_EDIT_NOTE', "Bitte beachten Sie, dass Sie nur dann das Passwort zweimal eingeben m&uuml;ssen, wenn Sie es &auml;ndern wollen. Wollen Sie nur die Daten &auml;ndern, brauchen Sie kein Passwort eingeben!");
+define('ADMIN_ADMINS_DELETE_ACCOUNTS', "Wollen Sie wirklich diese Accounts l&ouml;schen?");
+define('ADMIN_ADMINS_CANNOT_DELETE_LAST', "Das letzte Admin-Account kann nicht gel&ouml;scht werden!");
+define('ADMINS_SELECT_ADMIN', "Bitte w&auml;hlen Sie einen Administrator aus dem Men&uuml;punkt <I>Admin-Account &auml;ndern</I> aus!");
+define('ADMINS_ADMIN_ID', "Admin-ID");
+define('ADMINS_CONTACT_SUBMIT', "Admin kontaktieren");
+define('ADMINS_ENTER_CONTACT_TEXT', "Kontaktgrund eingeben");
+define('ADMINS_SELECT_CONTACT_TYPE', "Nachricht &uuml;bertragen als");
+define('ADMINS_CONTACT_TYPE_MAIL', "Mail");
+define('ADMINS_CONTACT_TYPE_MSG', "Nachricht");
+define('ADMINS_CONTACT_DEFAULT_MAIL', "Ihre Nachricht wird als Mail versendet.");
+define('ADMINS_MSG_FROM_ADMIN', "Nachricht von einem Admin");
+define('ADMINS_ADMIN_CONTACTED', "Administrator wurde benachrichtigt!");
+define('ADMINS_ACCESS_DENIED', "Zugriff nicht gestattet.");
+define('ADMIN_ADMINS_ADD_ACL', "Zugriffkontrollzeile hinzuf&uuml;gen");
+define('ADMIN_ADMINS_SELECT_LOGIN', "Admin-Login ausw&auml;hlen");
+define('ADMIN_ADMINS_SELECT_ACTION', "Hauptmen&uuml;");
+define('ADMIN_ADMINS_SELECT_WHAT', "Untermen&uuml;");
+define('ADMIN_ADMINS_SELECT_MODE', "Zugriffsmodus ausw&auml;hlen");
+define('ADMINS_ALLOW_MODE', "Erlauben");
+define('ADMINS_DENY_MODE', "Ablehnen");
+define('ADMIN_ADMINS_ACCESS_MODE', "Zugriffsmodus");
+define('ADMIN_ADMINS_ACL_NOTE', "Sperren Sie nicht sich selber aus, indem Sie den Zugriffsmodus Ihres eigenen Accountes auf <STRONG>Ablehnen</STRONG> stellen! Dann k&ouml;nnen Sie zwar einloggen, aber nichts mehr machen!");
+define('ADMIN_ADMINS_SAME_MODE_SELECTED', "Bitte w&auml;hlen Sie den anderen Zugriffsmodus aus!");
+define('ADMIN_ADMINS_SELECT_ACTION_WHAT', "Bitte w&auml;hlen Sie ein Haupt- oder Untermen&uuml; aus!");
+define('ADMIN_ADMINS_ACL_ALREADY_ADDED', "Zugriffskontrollzeile bereits hinzugef&uuml;gt!");
+define('ADMIN_ADMINS_ACL_SAVED', "Zugriffskontrollzeile gespeichert.");
+define('ADMIN_ADMINS_LIST_ACLS', "Alle angelgten Zugriffkontrollzeilen auflisten");
+define('ADMINS_EDIT_ACLS', "Editieren");
+define('ADMINS_DEL_ACLS', "L&ouml;schen");
+define('ADMINS_AID', "Admin-Login");
+define('ADMIN_ADMINS_EDIT_ACLS', "Zugriffkontrollzeilen &auml;ndern");
+define('ADMINS_CHANGE_ACLS', "Eintr&auml;ge &auml;ndern");
+define('ADMINS_REMOVE_ACLS', "Eintr&auml;ge l&ouml;schen");
+define('ADMIN_ADMINS_ENTRIES_CHANGED', "Zugriffkontrollzeilen wurden ge&auml;ndert.");
+define('ADMIN_ADMINS_DELETE_ACLS', "Zugriffkontrollzeilen l&ouml;schen");
+define('ADMIN_ADMINS_ENTRIES_DELETED', "Zugriffkontrollzeilen wurden gel&ouml;scht.");
+define('ADMINS_MAILS_NO_ENTRIES', "Keine Eintr&auml;ge gefunden!");
+define('ADMINS_MAILS_TITLE', "Admins-Mails verwalten");
+define('ADMIN_ADMINS_TEMPLATE', "Mail-Template");
+define('ADMINS_ALL_ADMINS', "An alle Admins");
+define('ADMINS_TO_USERLOG', "Im Userlog vermerken");
+define('ADMINS_NO_MAIL_CHECKED', "Keine Mails zum Editieren ausgew&auml;hlt.");
+define('ADMINS_MAILS_EDIT_TITLE', "Ausgew&auml;hlte Templates den Admins zuweisen");
+define('ADMIN_ADMINS_CHANGE', "&Auml;ndern");
+define('ADMINS_ADD_MORE_ADMINS', "Weiteren Admin hinzuf&uuml;gen");
+define('ADMIN_ACCOUNT_SAVED', "Admin-Account gespeichert.");
+define('ADMINS_ERROR_PASS_MISMATCH', "Die beiden Passw&ouml;rter stimmen nicht &uuml;berein!");
+define('ADMIN_ACCOUNT_404', "Admin-Account nicht gefunden!");
+
+// Logical area constants
+define('ADMINS_GLOBAL_LA_SETTING', "Globale Einst.");
+define('ADMINS_OLD_LA_SETTING', "Altes Men&uuml;");
+define('ADMINS_NEW_LA_SETTING', "Neues Men&uuml;");
+
+//
+?>
diff --git a/0.2.1/inc/language/autopurge_de.php b/0.2.1/inc/language/autopurge_de.php
new file mode 100644 (file)
index 0000000..b4f8c0b
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/30/2004 *
+ * ===============                              Last change: 01/07/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : autopurge_de.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('AUTOPURGE_MEMBER_SUBJECT', "{!POINTS!}-Gutschrift bei Auto-Loeschung");
+define('AUTOPURGE_MEMBER_INACTIVE_SUBJECT', "Inaktivitaet --> Account wird bald geloescht!");
+define('AUTOPURGE_MEMBER_UNCONFIRMED_SUBJECT', "Loeschung --> EMail-Adresse nicht bestaetigt!");
+define('AUTOPURGE_ADMIN_SUBJECT', "[Auto-Purge:] Bestaetigungslinks");
+define('AUTOPURGE_ADMIN_INACTIVE_SUBJECT', "Inaktive User benachrichtigt");
+define('AUTOPURGE_ADMIN_DELETE_SUBJECT', "[Auto-Purge:] Inaktiven Mitgliedern");
+define('AUTOPURGE_ADMIN_UNCONFIRMED_SUBJECT', "[Auto-Purge:] Unbestaetigten Accounts");
+define('AUTOPURGE_ADMIN_TASKS_SUBJECT', "[Auto-Purge:] Zu Loeschen marktierte Aufgaben");
+define('AUTOPURGE_ADMIN_TURBO_SUBJECT', "[Auto-Purge:] Veraltete Bonus-Eintraege");
+define('AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT', "[Auto-Purge:] Mailbuchungen bereits gel. Mitglieder");
+
+define('ADMIN_AUTOPURGE_CONFIGURATION', "Konfiguration der automatischen L&ouml;schungen");
+define('ADMIN_AUTOPURGE_INACTIVE', "Sollten inaktive Accounts erkannt und gel&ouml;scht werden?");
+define('ADMIN_AUTOPURGE_INACTIVE_SINCE', "Dauer bis best&auml;tigtes Account als inaktiv markiert wird");
+define('ADMIN_AUTOPURGE_INACTIVE_TIME', "Dauer bis inaktives Account gel&ouml;scht wird");
+define('ADMIN_AUTOPURGE_UNCONFIRMED', "Sollen unbest&auml;tigte Accounts gel&ouml;scht werden?");
+define('ADMIN_AUTOPURGE_UNCONFIRMED_TIME', "Dauer bis unbest&auml;tigte Accounts gel&ouml;scht werden");
+define('ADMIN_AUTOPURGE_ALL_ACTIVE', "Alle Ihre Mitlieder sind aktiv!");
+define('ADMIN_AUTOPURGE_TASKS', "L&ouml;schen von veralteten zu L&ouml;schen markierten Aufgaben?");
+define('ADMIN_AUTOPURGE_TASKS_TIME', "Dauer bis zu l&ouml;schen marktierte Aufgaben gel&ouml;scht werden");
+define('ADMIN_AUTOPURGE_INACTIVE_TITLE', "Inaktive Accounts l&ouml;schen");
+define('ADMIN_AUTOPURGE_UNCONFIRMED_TITLE', "Unbest&auml;tigte Accounts l&ouml;schen");
+define('ADMIN_AUTOPURGE_TASKS_TITLE', "Veraltete Aufgaben l&ouml;schen");
+define('ADMIN_AUTOPURGE_NOTIFICATION_TITLE', "Benachtigung an Admin bei Auto-L&ouml;schung");
+define('ADMIN_AUTOPURGE_NOTIFY_INACTIVE', "Benachrichtigung bei inaktive Accounts l&ouml;schen");
+define('ADMIN_AUTOPURGE_NOTIFY_UNCONFIRMED', "Benachrichtigung bei unbest&auml;tigte Accounts l&ouml;schen");
+define('ADMIN_AUTOPURGE_NOTIFY_TASKS', "Benachrichtigung bei veraltete Aufgaben l&ouml;schen");
+define('AUTOPURGE_NOTIFIED', "Benachrichtigt");
+
+define('ADMIN_AUTOPURGE_DEL_MAILS_TITLE', "Mails von gel&ouml;schten Mitgliedern l&ouml;schen");
+define('ADMIN_AUTOPURGE_DEL_MAILS', "Sollen die Mailbuchungen von be bnreits gel&ouml;schten Mitgliedern gel&ouml;scht werden?");
+define('ADMIN_AUTOPURGE_DEL_MAILS_TIME', "Dauer bis Mails gel&ouml;scht werden");
+define('ADMIN_AUTOPURGE_NOTIFY_DEL_MAILS', "Benachrichtigen bei L&ouml;schung von Mails");
+
+// Moved from other extensions
+define('ADMIN_OPTION_AUTOPURGE_ACTIVE', "Auto-L&ouml;schung von Best&auml;tigungslink ist aktiviert?");
+define('ADMIN_OPTION_MAIL_LIFETIME', "G&uuml;tigkeitsdauer der Best&auml;tigungslinks (0 = Best&auml;tigungslinks laufen nie ab)");
+define('ADMIN_AUTOPURGE_MAILID_TITLE', "Mailbest&auml;tigungslinks l&ouml;schen");
+
+//
+?>
diff --git a/0.2.1/inc/language/bank_de.php b/0.2.1/inc/language/bank_de.php
new file mode 100644 (file)
index 0000000..f21123b
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/01/2007 *
+ * ===============                              Last change: 06/01/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : bank.php                                         *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__)) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_ADD_BANK_PACKAGE_TITLE', "Neues Angebotspaket hinzuf&uuml;gen");
+define('ADMIN_BANK_PACKAGE_TITLE', "Titel des Angebotspaketes");
+define('ADMIN_BANK_PACKAGE_DESCRIPTION', "Kurze Beschreibung des Paketes");
+define('ADMIN_BANK_PACKAGE_ACCOUNT_FEE', "Monatliche Grundgeb&uuml;hr (Kontof&uuml;hrung)");
+define('ADMIN_BANK_PACKAGE_FREE_TRANSFERS', "Anzahl kostenlose &Uuml;berweisungen pro Monat");
+define('ADMIN_BANK_PACKAGE_OUTPUT_MODE', "Abrufm&ouml;glichkeiten der Kontoausz&uuml;ge");
+define('ADMIN_BANK_PACKAGE_FREE_MONTHS_FEE', "Anzahl grundgeb&uuml;hrfreier Monate");
+define('ADMIN_BANK_PACKAGE_INTEREST_PLUS', "Zinssatz f&uuml;r Haben");
+define('ADMIN_BANK_PACKAGE_INTEREST_MINUS', "Zinssatz f&uuml;r Soll");
+define('ADMIN_BANK_PACKAGE_FIRST_PAYMENT', "H&ouml;he der ersten Einzahlung");
+define('ADMIN_BANK_PACKAGE_FREE_ACCOUNT_INCOME', "H&ouml;he der monatlichen Einnahmen, um Konto kostenlos zu erhalten");
+define('ADMIN_BANK_PACKAGE_FREE_ACCOUNT_STUFF', "Freitext f&uuml;r Dinge, die kostenlos sein werden.");
+define('ADMIN_BANK_PACKAGE_TAN_LOCK', "Anzahl Versuche richtige TAN einzugeben, bis TAN-Liste gesperrt wird.");
+define('ADMIN_BANK_PACKAGE_ACTIVE', "Ist dieses Angebotspaket vom Mitglied einsehbar, also aktiviert?");
+define('ADMIN_ADD_BANK_PACKAGE', "Angebotspaket einstellen");
+define('ADMIN_BANK_FOOTER_NOTE', "Bitte beachten Sie, dass keine Mail zu den Mitgliedern unterwegs ist. Seien Sie bei Titel, Beschreibung und Freitext kreativ und schreiben Sie aussagekr&auml;ftige Texte!");
+define('ADMIN_BANK_NO_PACKAGES_FOUND', "Keine Angebotspakete zum Auflisten gefunden!");
+define('ADMIN_LIST_BANK_PACKAGES', "Angebotspakete f&uuml;r Ihre Bank auflisten");
+define('ADMIN_LIST_BANK_PACKAGES_TITLE', "Pakettitel");
+define('ADMIN_LIST_BANK_PACKAGES_DESCR', "Paketbeschreibung");
+define('ADMIN_LIST_BANK_PACKAGES_ACCOUNT_FEE', "Grundgeb&uuml;hr");
+define('ADMIN_LIST_BANK_PACKAGES_STATUS', "Erwerbbar?");
+define('ADMIN_LIST_BANK_PACKAGES_ACCOUNT_INTEREST_PLUS', "Zinsen f. Haben");
+define('ADMIN_LIST_BANK_PACKAGES_ACCOUNT_INTEREST_MINUS', "Zinsen f. Soll");
+define('ADMIN_STATUS_CHANGED_1', "Es wurden <U>");
+define('ADMIN_STATUS_CHANGED_2', "</U> von <U>");
+define('ADMIN_STATUS_CHANGED_3', "</U> Eintr&auml;gen ge&auml;ndert.");
+define('ADMIN_DELETE_BANK_PACKAGES', "Angebotspakete entg&uuml;ltig entfernen");
+define('ADMIN_DELETE_BANK_PACKAGES_NOTES', "<STRONG>Hinweis:</STRONG> Wenn Sie die aufgelisteten Angebotspakete entg&uuml;ltig l&ouml;schen, kann eventuell Ihre Bank nicht korrekt funktionieren, da eventuell einige Mitglieder dieses Paket ausgew&auml;hlt haben. Bitte schauen Sie unter <EM>Konten auflisten</EM> vorher nach!");
+
+// Output modes
+define('BANK_OUTPUT_MODE_LOGIN', "Nur im Mitgliedsbereich");
+define('BANK_OUTPUT_MODE_EMAIL', "Per EMail&amp;Mitgliedsbereich");
+define('BANK_OUTPUT_MODE_DISABLED', "Keinen Zugriff");
+
+//
+?>
diff --git a/0.2.1/inc/language/beg_de.php b/0.2.1/inc/language/beg_de.php
new file mode 100644 (file)
index 0000000..e37956e
--- /dev/null
@@ -0,0 +1,133 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/09/2005 *
+ * ===============                              Last change: 01/09/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : beg_de.php                                       *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_EDIT_BEG_SETTINGS', "Einstellungen am Bettel-Link");
+define('ADMIN_BEG_POINTS', "{!POINTS!}-Gutschrift bei Klick auf Bettel-Link");
+define('ADMIN_CONFIG_BEG_TIMEOUT', "Zeitsperre global");
+define('ADMIN_CONFIG_BEG_UID_TIMEOUT', "Zeitsperre gegen eine Mitglieder-ID");
+define('ADMIN_CONFIG_BEG_REMOTE_IP_TIMEOUT', "Zeitsperre gegen eine IP-Nummer");
+define('BEG_LINK_BY_1', "Bettel-Link bei ");
+define('BEG_LINK_BY_2', "");
+define('BEG_LINK_USERID_1', "Unser Mitglied ");
+define('BEG_LINK_USERID_2', " hat {!POINTS!} gebettelt!");
+define('BEG_UID_STEAL_1', "Das Mitglied ");
+define('BEG_UID_STEAL_2', " hat soeben ");
+define('BEG_UID_STEAL_3', " {!POINTS!} bei Ihnen erbettelt!");
+define('BEG_CLICKS_1', "Dies war insgesamt der ");
+define('BEG_CLICKS_2', ". Klick auf sein Bettel-Link.");
+define('BEG_THANKS_FOR_CLICK', "Danke f&uuml;r Ihre Spende!");
+define('BEG_CONTINUE_REGISTER', "Und weiter geht es zur Anmeldung bei {--MAIN_TITLE--} ...");
+define('BEG_SORRY_ANOTHER_WAS_HERE_1', "Oh schade! Es war vor kurzem schon einer hier! Das Mitglied ");
+define('BEG_SORRY_ANOTHER_WAS_HERE_2', " hat von Ihnen auch keine ");
+define('BEG_SORRY_ANOTHER_WAS_HERE_3', " {!POINTS!} erhalten.");
+define('BEG_THANKS_FOR_CLICK_AGAIN', "Danke dennoch f&uuml;r den erneuten Klick!");
+define('BEG_MEMBER_YOUR_LINK', "Hier ist Ihr pers&ouml;nlicher Bettel-Link");
+define('BEG_MEMBER_CLICKS_TOTAL', "Anzahl Gesamtklicks auf Ihren Bettel-Link");
+define('BEG_MEMBER_EARN_1', "Sie erhalten von");
+define('BEG_MEMBER_EARN_2', "bis");
+define('BEG_MEMBER_EARN_3', "f&uuml;r jeden Klick auf Ihren Bettellink.");
+define('BEG_MEMBER_TIMEOUT_1', "Die Zeitsperre ist derzeit eingestellt auf ");
+define('BEG_MEMBER_TIMEOUT_2', ". Innerhalb dieser Zeit erhalten Sie keine erneute Verg&uuml;tung!");
+define('BEG_MEMBER_HAVE_FUN', "Viel Spass beim {!POINTS!}-Betteln.");
+define('BEG_GUEST_TRAILER', "{!POINTS!} erbetteln bei...");
+define('BEG_GUEST_EARN_1', "Betteln macht sich bezahlt! F&uuml;r jeden Klick erhalten Sie von");
+define('BEG_GUEST_EARN_2', "bis");
+define('BEG_GUEST_EARN_3', "auf Ihr Mitgliedskonto direkt gutgeschrieben. Zuddem verdienen Sie an den erbettelteten {!POINTS!} Ihrer Refferal mit.");
+define('BEG_GUEST_TIMEOUT_1', "Sie k&ouml;nnen derzeit alle ");
+define('BEG_GUEST_TIMEOUT_2', " {!POINTS!} betteln.");
+define('BEG_GUEST_HAVE_FUN', "Heute noch anmelden und Spass haben!");
+define('ADMIN_BEG_POINTS_MAX', "Maximale erbettelbare {!POINTS!} bei Klick auf Bettellink");
+define('ADMIN_BEG_USERID', "Mitglied-Account zum Abbuchen der erbettelten {!POINTS!}");
+define('ADMIN_SELECT_BEG_MODE', "Verg&uuml;tungsmodus der erbettelten {!POINTS!}");
+define('BEG_MODE_DIRECT', "Nur direktem Mitglied gutschreiben.");
+define('BEG_MODE_REF', "Auch dem Werber des Mitgliedes gutschreiben.");
+define('BEG_SORRY_YOURE_LOGGED_IN_1', "Oh schade! Sie haben vermutlich auf Ihren eigenen Bettel-Link mit der User-ID ");
+define('BEG_SORRY_YOURE_LOGGED_IN_2', " geklickt. Sie haben somit auch keine ");
+define('BEG_SORRY_YOURE_LOGGED_IN_3', " {!POINTS!} erhalten!");
+define('BEG_SAME_UID_AS_OWN', "Mitglieder-ID des Webmasters benutzt!");
+
+// Begging rallye
+define('BEG_RANK', "Bettel-Rank");
+define('BEG_TOTAL', "Gesamt erbettelt");
+define('BEG_POINTS', "Erbettelt");
+define('BEG_MEMBER_TOTAL', "Erbettelte {!POINTS!} aller Mitglieder");
+define('ADMIN_BEG_TIMEOUT_1', "Es werden nur Mitglieder ausgewertet und hier aufgelistet, die sp&auml;testens am ");
+define('ADMIN_BEG_TIMEOUT_2', "noch aktiv waren. Alle anderen Mitglieder erhalten die Verg&uuml;tung nicht!");
+define('ADMIN_EDIT_BEG_RALLYE_SETTINGS', "Einstellungen an der Bettel-Rallye");
+define('ADMIN_BEG_RALLYE_ACTIVE', "Ist die Bettel-Rallye aktiv? (Mails k&ouml;nnen optional versendet werden!)");
+define('ADMIN_BEG_RALLYE_ONLY_ACTIVE', "Nur aktive Mitglieder nehmen dran?<BR><FONT class=\"admin_note\">(Nur in Verbindung mit der Erweiterung <STRONG>autopurge</STRONG>!)</FONT>");
+define('ADMIN_BEG_NO_RALLYE', "Niemand nimmt an der Bettel-Rallye dran teil!");
+define('ADMIN_BEG_WITHDRAW_NOW', "Jetzt Verg&uuml;tung Bettel-Rallye verg&uuml;ten");
+define('ADMIN_BEG_WITHDRAW_NOTE', "Es wird nur die Verg&uuml;tung vorbereitet. Die eigentliche Verg&uuml;tung erfolgt beim T&auml;glichen Reset um 00:00 Uhr!");
+define('ADMIN_BEG_WITHDRAW_PREPARED', "Verg&uuml;tung der Bettel-Rallye vorbereitet.");
+define('ADMIN_BEG_WINNER_HIGLIGHTED', "M&ouml;gliche Gewinner der Bettel-Rallye sind dick marktiert.");
+define('ADMIN_BEG_ALREADY_WITHDRAW', "Manuelle Verg&uuml;tungvorbereitung bereits bet&auml;tigt!");
+define('BEG_RALLYE_NOTE', "Hinweis: Unter <STRONG>{--BEG_POINTS--}</STRONG> finden Sie Ihre gesamt erbettelten {!POINTS!} wieder!");
+define('BEG_RALLYE_CONDITIONS', "Wer alles an der Bettel-Rallye teilnehmen kann");
+define('BEG_RALLYE_CONDITION_1', "Es werden nur aktive und freigeschaltete Mitglieder ber&uuml;cksichtig.");
+define('BEG_RALLYE_CONDITION_2', "Es kann jeder dran teilnehmen, der Mitglied bei diesem {!MT_WORD!} (<STRONG>{--MAIN_TITLE--}</STRONG>) und freigegeben ist.");
+define('BEG_RALLYE_CONDITION_3', "Zur Erstellung des Rallye-Ergebnisses werden alle erbettelten {!POINTS!} ber&uuml;cksichtig.");
+define('BEG_RALLYE_CONDITION_4', "Der Rechtsweg ist ausgeschlossen.");
+define('BEG_MEMBER_HERE_IS_THE_LIST', "Hier finden Sie die aktuelle Liste mit den m&ouml;glichen Gewinnern!");
+define('BEG_LINK_HERE', "Betteln Sie am Besten gleich los! Hier ist der Link dazu!");
+define('ADMIN_BEG_RANKS', "Anzahl Gewinner der Bettel-Rallye");
+define('BEG_MONTHLY_RALLYE', "GEWONNEN: Monatliche Bettel-Rallye");
+define('BEG_RALLYE_NO_ONE_JOINED', "Niemand nimmt an der Bettel-Rallye dran teil, oder sie ist administrativ deaktiviert worden!");
+define('ADMIN_BEG_RALLYE_DEACTIVATED', "Bettel-Rallye nicht aktiviert.");
+define('ADMIN_EDIT_BEG_RALLYE_NOTIFICATIONS', "Benachrichtungen per Mail zur Bettel-Rallye");
+define('ADMIN_BEG_RAL_EN_NOTIFY', "Benachtigen, wenn Bettel-Rallye aktiviert wurde?");
+define('ADMIN_BEG_RAL_DI_NOTIFY', "Benachtigen, wenn Bettel-Rallye deaktiviert wurde?");
+define('ADMIN_BEG_NOTIFY_BONUS', "Bonus-Mail mit Anzahl {!POINTS!} aussenden, wenn Bettel-Rallye aktiviert wurde. <FONT class=\"admin_note\">(0 = Unverg&uuml;tete Benachrichtigung aussenden; nur in Verbindung mit der Erweiterung <STRONG>bonus!</STRONG>)</FONT>");
+define('ADMIN_BEG_NEW_MEMBER_NOTIFY', "Sollen neue Mitglieder mit selber Mail &uuml;ber eine laufende Bettel-Rallye benachrichtigt werden?");
+define('ADMIN_BEG_NOTIFY_WAIT', "Wie lange soll die Wartezeit der Bonus-Mail sein?");
+define('BEG_NO_LIMITATION', "Keine IP-Sperre eingerichtet!!!");
+define('ADMIN_BEG_INCLUDE_OWN', "Soll Ihre Mitglieder-ID an der Bettel-Rallye dran teilnehmen?");
+
+// Task overview
+define('TASK_ADMIN_LIST_BEG', "Bettel-Rallye-Teilnehmer");
+define('TASK_ADMIN_LIST_BEG_TITLE', "Es nehmen Mitglieder an der Bettel-Rallye dran teil!");
+
+// Subject lines
+define('BEG_RALLYE_EN_NOTIFY', "HINWEIS: Eine Bettel-Rallye ist am Laufen!");
+define('BEG_RALLYE_DI_NOTIFY', "HINWEIS: Eine Bettel-Rallye wurde gestoppt!");
+
+//
+?>
diff --git a/0.2.1/inc/language/birthday_de.php b/0.2.1/inc/language/birthday_de.php
new file mode 100644 (file)
index 0000000..aeebaf4
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/23/2004 *
+ * ===============                              Last change: 05/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : birthday_de.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('HAPPY_BIRTHDAY', "Herzlichen Glueckwunsch zum Geburtstag!");
+define('ADMIN_CONFIG_BIRTHDAY_HEADER', "Einstellungen zu Geburtstagsmails");
+define('ADMIN_BIRTHDAY_POINTS', "{!POINTS!} als &quot;Geburtstagsgeschenk&quot;");
+define('ADMIN_BIRTHDAY_POINTS_NOTE', "Wert <STRONG>0</STRONG> deaktiviert die Extragutschrift!");
+define('BIRTHDAY_CANNOT_STATUS_1', "Kann keine {!POINTS!} gutschreiben! Status Ihres Accounts: <STRONG>");
+define('BIRTHDAY_CANNOT_STATUS_2', "</STRONG>");
+define('BIRTHDAY_CANNOT_LOAD_DATA', "Entweder haben Sie bereits Ihr Geburtsgeschenk erhalten oder Sie haben heute keinen Geburtstag!");
+define('ADMIN_SELECT_BIRTHDAY_MODE', "Verg&uuml;tungsmodus der {!POINTS!}");
+define('BIRTHDAY_MODE_DIRECT', "Nur direktem Mitglied gutschreiben.");
+define('BIRTHDAY_MODE_REF', "Auch dem Werber des Mitgliedes gutschreiben.");
+define('ADMIN_BIRTHDAY_ONLY_ACTIVE', "Nur aktive Mitglieder erhalten die Geburtstagsgutschrift?<BR><FONT class=\"admin_note\">(Nur in Verbindung mit der Erweiterung <STRONG>autopurge</STRONG>!)</FONT>");
+
+//
+?>
diff --git a/0.2.1/inc/language/bonus_de.php b/0.2.1/inc/language/bonus_de.php
new file mode 100644 (file)
index 0000000..e77599e
--- /dev/null
@@ -0,0 +1,139 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/04/2004 *
+ * ===============                              Last change: 11/14/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : bonus_de.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('BONUS_LOGIN_TOTAL', "Login-Bonus");
+define('BONUS_TURBO_TOTAL', "Aktiv-Bonus beim Best.");
+define('ADMIN_EDIT_BONUS_SETTINGS', "Einstellungen an Verg&uuml;tungen");
+define('ADMIN_BONUS_LOGIN_BONUS', "Bonus f&uuml;r Login");
+define('ADMIN_BONUS_TURBO_BONUS', "Rang-Bonus f&uuml;r Erst-Klicker");
+define('ADMIN_BONUS_TURBO_RATES', "Bonus f&uuml;r Klicker 2 bis x");
+define('ADMIN_BONUS_TURBO_RATES_NOTE1', "Hinweise");
+define('ADMIN_BONUS_TURBO_RATES_NOTE2', "Lassen Sie den letzten Eintrag frei, damit kein weiterer Eintrag hingef&uuml;gt wird.");
+define('ADMIN_BONUS_TURBO_RATES_NOTE3', "Eintr&auml;ge l&ouml;schen, um Bonus zu entfernen (alle unteren r&uuml;cken beim Speichern nach!)");
+define('ADMIN_BONUS_TURBO_RATES_NOTE4', "Wenn Sie alle Eintr&auml;ge gel&ouml;scht haben, werden Platz 2 und 3 automatisch neu berechnet.");
+define('ADMIN_CONFIG_LOGIN_TIMEOUT', "Zeitspanne zwischen zwei Logins");
+define('ADMIN_BONUS_TURBO_RANKS', "Wie viele Mitglieder sollen die monatliche Auszahlung der Aktiv-Verg&uuml;tung gewinnen k&ouml;nnen?");
+define('ADMIN_BONUS_NO_ACTIVE_RALLYE', "Niemand nimmt an der Aktiv-Rallye dran teil!");
+define('BONUS_SHOW_TURBO_BONUS', "Sehen Sie hier nach, wer alles schon best&auml;tigt hat...");
+define('BONUS_SHOW_WRONG_CALL', "Falscher Aufruf des Scriptes, bitte nur aus dem Best&auml;tigungsframe aufrufen!");
+define('BONUS_SHOW_WRONG_TYPE', "Falscher Typ an das Script &uuml;bergeben! Bitte melden Sie sich <A href=\"mailto:{!WEBMASTER!}\">beim Webmaster</A> !");
+define('BONUS_SHOW_NO_DATA', "Entweder haben Sie f&uuml;r diese Mail keine Aktiv-Verg&uuml;tung erhalten oder der Link ist nicht mehr g&uuml;ltig.");
+define('BONUS_NO_RANKS_1', "Es hat noch niemand {!POINTS!} zur Mail <U>");
+define('BONUS_NO_RANKS_2', "</U> gewonnen! Sie k&ouml;nnten der erste sein! :-)");
+define('BONUS_LOGIN_TURBO_NOTE', "Der Login-, Referral-, Klickrate-, Mailbuchungs-  und Best&auml;tigungsbonus wird Ihnen nicht sofort verg&uuml;tet, sondern erst am Ende jeden Monats in Form einer Aktiv-Rallye. Den Mailbuchungsbonus erhalten Sie erst bei Freischaltung Ihrer Mail auf das Bonus-Konto gutgeschrieben.");
+define('BONUS_POINTS_TITLE', "Sonderbonus-{!POINTS!}");
+define('BONUS_RANK_YOU_ARE_NOT_FOUND', "Sie haben bis jetzt noch keine Aktiv-Verg&uuml;tung erhalten!");
+define('BONUS_RANK', "Platz");
+define('BONUS_SHOW_FOOTER_NOTE_1', "Wir w&uuml;nschen allen Gewinnern viel Gl&uuml;ck bei der monatlichen Aktiv-Rallye!");
+define('BONUS_SHOW_FOOTER_NOTE_2', "Es k&ouml;nnen nur die ersten {--__BONUS_TOTAL_RANKS--} die Aktiv-Rallye gewinnen. Der Rechtsweg ist ausgeschlossen.");
+define('BONUS_SHOW_HEADER_LINE_1', "Hier sehen Sie eine &Uuml;bersicht, wer alles");
+define('BONUS_SHOW_HEADER_LINE_2', "f&uuml;r die Mail");
+define('BONUS_SHOW_HEADER_LINE_3', "erhalten hat");
+define('BONUS_SHOW_YOU_HAVE_CONFIRMED', "Sie haben diese Mail am");
+define('BONUS_SHOW_CONFIRMED_BONUS_IS', "Stelle best&auml;tigt. Ihre Gutschrift f&uuml;r diese eMail");
+define('BONUS_TOTAL', "Gesamtbonus");
+define('BONUS_RALLYE_NO_ONE_JOINED', "Niemand nimmt an unserer Aktiv-Rallye dran teil. :-(");
+define('BONUS_RALLYE_NOTE', "Bitte beachten Sie, dass Ihr Login-Bonus hier nicht mit angezeigt wird. Bei der monatlichen Auswertung wird er Ihnen jedoch gutgeschrieben.");
+define('BONUS_RALLYE_CONDITIONS', "Wer alles an der Aktiv-Rallye teilnehmen kann");
+define('BONUS_RALLYE_CONDITION_1', "Es werden nur aktive und freigeschaltete Mitglieder ber&uuml;cksichtig.");
+define('BONUS_RALLYE_CONDITION_2', "Der Login-Bonus wird bei der Auswertung nicht beachtet, aber dem Mitglied gutgeschrieben.");
+define('BONUS_RALLYE_CONDITION_3', "Es kann jeder dran teilnehmen, der Mitglied bei diesem {!MT_WORD!} (<STRONG>{--MAIN_TITLE--}</STRONG>) und freigegeben ist.");
+define('BONUS_RALLYE_CONDITION_4', "Zur Erstellung des Rallye-Ergebnisses wird nur die Aktiv-Verg&uuml;tung ber&uuml;cksichtig, welche Sie beim Best&auml;tigen von Mails erhalten k&ouml;nnen.");
+define('BONUS_RALLYE_CONDITION_5', "Der Rechtsweg ist ausgeschlossen.");
+define('BONUS_START_CONFIRMING_MAILS', "Hier sind Ihre unbest&auml;tigten Mails...");
+define('BONUS_MEMBER_HERE_IS_THE_LIST', "Hier finden Sie die aktuelle Liste mit den m&ouml;glichen Gewinnern!");
+define('BONUS_MONTHLY_ONLINE_BONUS', "Gewonnen: Monatliche Aktiv-Rallye");
+define('BONUS_TURBO_TOTAL2', "Aktiv-Bonus");
+define('ADMIN_BONUS_WITHDRAW_NOW', "Jetzt Aktiv-Bonus verg&uuml;ten");
+define('ADMIN_BONUS_WITHDRAW_NOTE', "Es wird nur die Verg&uuml;tung vorbereitet. Die eigentliche Verg&uuml;tung erfolgt beim T&auml;glichen Reset um 00:00 Uhr!");
+define('ADMIN_BONUS_WITHDRAW_PREPARED', "Verg&uuml;tung des Aktiv-Bonuses vorbereitet.");
+define('ADMIN_BONUS_WINNER_HIGLIGHTED', "M&ouml;gliche Gewinner der Aktiv-Rallye sind dick marktiert.");
+define('ADMIN_BONUS_ALREADY_WITHDRAW', "Manuelle Verg&uuml;tungvorbereitung bereits bet&auml;tigt!");
+define('ADMIN_BONUS_TIMEOUT_1', "Es werden nur Mitglieder ausgewertet und hier aufgelistet, die sp&auml;testens am ");
+define('ADMIN_BONUS_TIMEOUT_2', "noch aktiv waren. Alle anderen Mitglieder erhalten die Verg&uuml;tung nicht!");
+define('ADMIN_BONUS_USERID', "Mitgliedskonto zum Abbuchen der {!POINTS!}");
+define('ADMIN_CONFIG_BONUS_TIMEOUT', "Verweildauer von Aktiv-Bonus-Eintr&auml;gen");
+define('ADMIN_BONUS_TURBO_LINES', "Anzahl angezeigter Aktiv-Bonus-Empf&auml;nger in <STRONG>show_bonus.php</STRONG>");
+define('ADMIN_SEND_BONUS_MAILS', "Versenden von Bonus-Mails");
+define('ADMIN_SEND_BONUS_NORMAL', "Text-Mail versenden");
+define('ADMIN_SEND_BONUS_HTML', "HTML-Mail versenden");
+define('ADMIN_SEND_BONUS_NORMAL_NOTES', "Standart Text-Mail an Ihre Mitglieder aussenden.");
+define('ADMIN_SEND_BONUS_HTML_NOTES', "HTML-Mail an Ihre Mitglieder versenden. Dazu muss die Erweiterung html_mail jedoch installiert sein!");
+define('ADMIN_BONUS_ORDER_BONUS', "Bonus f&uuml;r eine Mailbuchung");
+define('ADMIN_BONUS_REF_BONUS', "Bonus f&uuml;r das Werben eines weiteren Mitgliedes");
+define('ADMIN_BONUS_STATS_BONUS', "Einmalige Bonus bei Erreichen von 100% Klickrate auf eine Mailbuchung (=<STRONG class=\"tiny\">Statistik-Bonus</STRONG>)");
+define('ADMIN_BONUS_TURBO_BONUS_TITLE', "Bonus-{!POINTS!} f&uuml;r best&auml;tigte Mails");
+define('ADMIN_BONUS_TURBO_TIMEOUT_TITLE', "Zeitabst&auml;nde und Aufbewahrungszeiten");
+define('ADMIN_BONUS_TURBO_MISC_TITLE', "Sonstige Einstellungen zur Bonus-Erweiterung");
+define('BONUS_REF_TOTAL', "Referral-Bonus");
+define('BONUS_ORDER_TOTAL', "Mailbestellungsbonus");
+define('BONUS_STATS_TOTAL', "100%-Klickratebonus");
+define('BONUS_POINTS_DISABLED', "Aktiv-Rallye derzeit nicht aktiv.");
+define('BONUS_MEMBER_STATS_SUBJECT', "Ihr Aktiv-Bonus wegen 100% Klickrate");
+define('BONUS_LOGIN_BONUS_ADDED_1', "Login-Bonus mit");
+define('BONUS_LOGIN_BONUS_ADDED_2', "verg&uuml;tet!");
+define('BONUS_LOGIN_BONUS_NOT_ADDED', "Login-Bonus nicht verg&uuml;tet!");
+define('LIST_UNCONFIRMED_BONUS_LINKS', "Unbest. Bonus-Mail");
+define('ADMIN_BONUS_MAIL_ALREADY_DELETED', "Bonus-Mail bereits gel&ouml;scht!");
+define('ADMIN_ACTIVATE_BONUS_SETTINGS', "Einstellungen an der Aktiv-Rallye");
+define('BONUS_MEMBER_TOTAL', "Gesamtbonus aller teilnehmenden Mitglieder");
+define('ADMIN_BONUS_RALLYE_DEACTIVATED', "Aktiv-Rallye deaktiviert.");
+define('ADMIN_BONUS_RALLYE_NOTIFTICATIONS', "Benachrichtigungen per Mail &uuml;ber Bonus-Rallye");
+define('ADMIN_BONUS_RALLYE_EN_NOTIFY', "Sollen die Mitglieder bei Aktivierung benachtichtigt werden?");
+define('ADMIN_BONUS_RALLYE_DI_NOTIFY', "Sollen die Mitglieder bei Deaktivierung benachtichtigt werden?");
+define('ADMIN_BONUS_RALLYE_NOTIFY_POINTS', "Bonus-Mail mit Anzahl {!POINTS!} aussenden, wenn Bonus-Rallye aktiviert wurde. <FONT class=\"admin_note\">(0 = Unverg&uuml;tete Benachrichtigung aussenden)</FONT>");
+define('ADMIN_BONUS_RALLYE_NEW_MEMBER_NOTIFY', "Sollen neue Mitglieder mit selber Mail &uuml;ber eine laufende Bonus-Rallye benachrichtigt werden?");
+define('ADMIN_BONUS_RALLYE_NOTIFY_WAIT', "Wie lange soll die Wartezeit der Bonus-Mail sein?");
+define('ADMIN_BONUS_INCLUDE_OWN', "Soll Ihre Mitglieder-ID an der Aktiv-Rallye dran teilnehmen?");
+
+// Switches
+define('ADMIN_BONUS_RALLYE_IS_ACTIVE'    , "Ist die Aktiv-Rallye aktiv?");
+define('ADMIN_BONUS_RALLYE_LOGIN_INCLUDE', "Login-Bonus in monatlicher Auswertung mit einschliessen?");
+define('ADMIN_BONUS_RALLYE_ORDER_INCLUDE', "Mailbuchungsbonus in monatlicher Auswertung mit einschliessen?");
+define('ADMIN_BONUS_RALLYE_STATS_INCLUDE', "Statistik-Bonus in monatlicher Auswertung mit einschliessen?");
+define('ADMIN_BONUS_RALLYE_CLICK_INCLUDE', "Mailbest&auml;tigungsbonus in monatlicher Auswertung mit einschliessen?");
+define('ADMIN_BONUS_RALLYE_REF_INCLUDE'  , "Referral-Bonus in monatlicher Auswertung mit einschliessen?");
+
+// Subject lines
+define('BONUS_RALLYE_EN_NOTIFY', "HINWEIS: Aktiv-Rallye ist am Laufen!");
+
+//
+?>
diff --git a/0.2.1/inc/language/cache_de.php b/0.2.1/inc/language/cache_de.php
new file mode 100644 (file)
index 0000000..3dcf19a
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/11/2004 *
+ * ===============                              Last change: 10/11/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : cache_de.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('CACHE_PROBLEMS_DETECTED', "Probleme mit dem Cache-Subsystem erkannt!");
+define('CACHE_CANNOT_LOAD_1', "Kann nicht Cache-Datei <STRONG><U>");
+define('CACHE_CANNOT_LOAD_2', "</U></STRONG> laden!");
+define('CACHE_CANNOT_INITIALIZE', "Konnte das Caching-System nicht initialisieren. Bitte die Dokumentation <STRONG>DOCS/de/cache/README.txt</STRONG> lesen!");
+define('ADMIN_CACHE_STATS_TITLE', "Statistiken des Caching-Systems");
+define('ADMIN_CACHE_DB_HITS', "Zugriffe auf die Datenbank");
+define('ADMIN_CACHE_HITS', "Zugriffe auf den Cache");
+define('ADMIN_CACHE_PERCENTS', "Prozentual (*)");
+define('ADMIN_CACHE_NOTES', "(*): Es ist normal, dass die Prozente sp&auml;ter sehr niedrig sind, da trotz vieler eingesparter Zugriffe immer noch deutlich mehr Zugriffe auf die Datenbank gemacht werden.");
+define('ADMIN_TOTAL_HITS', "Gesamtzugriffe");
+define('CACHE_CANNOT_UNLINK_1', "Kann nicht die Cache-Datei <STRONG><U>");
+define('CACHE_CANNOT_UNLINK_2', "</U></STRONG> vom Server entfernen!");
+
+// Administrative settings
+define('ADMIN_CONFIG_CACHE_SETTINGS', "Caching-Einstellung");
+define('ADMIN_CACHE_ADMINS', "Soll der Zugriff auf die Tabelle <STRONG>"._MYSQL_PREFIX."_admins</STRONG> beschleunigt werden?");
+define('ADMIN_CACHE_ACLS', "Soll der Zugriff auf die Tabelle <STRONG>"._MYSQL_PREFIX."_admins_acls</STRONG> beschleunigt werden?");
+define('ADMIN_CACHE_EXTS', "Soll der Zugriff auf die Tabelle <STRONG>"._MYSQL_PREFIX."_extensions</STRONG> beschleunigt werden?");
+define('ADMIN_CACHE_CONFIG', "Soll der Zugriff auf die Tabelle <STRONG>"._MYSQL_PREFIX."_config</STRONG> beschleunigt werden?");
+define('ADMIN_CACHE_MODREG', "Soll der Zugriff auf die Tabelle <STRONG>"._MYSQL_PREFIX."_mod_reg</STRONG> beschleunigt werden?");
+define('ADMIN_CACHE_REFDEPTH', "Soll der Zugriff auf die Tabelle <STRONG>"._MYSQL_PREFIX."_refdepths</STRONG> beschleunigt werden?");
+define('ADMIN_CACHE_REFSYS', "Soll der Zugriff auf die Tabelle <STRONG>"._MYSQL_PREFIX."_refsystem</STRONG> beschleunigt werden?");
+define('ADMIN_CACHE_PATH', "Relativer Pfad f&uuml;r alle Cache-Dateien zum Pfad <STRONG>inc</STRONG>");
+
+//
+?>
diff --git a/0.2.1/inc/language/country_de.php b/0.2.1/inc/language/country_de.php
new file mode 100644 (file)
index 0000000..ba04f5a
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/30/2005 *
+ * ===============                              Last change: 04/30/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : country_de.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_ADD_COUNTRY_CODE', "L&auml;ndercode hinzuf&uuml;gen");
+define('ADMIN_ENTER_COUNTRY_CODE', "Zweistelligen L&auml;dercode eingeben (z.B. PL)");
+define('ADMIN_ENTER_COUNTRY_NAME', "L&auml;ndernamen eingeben (z.B. Polen)");
+define('ADMIN_COUNTRY_CODE_ACTIVE', "Soll der L&auml;ndercode angezeigt werden?");
+define('ADD_COUNTRY', "Land hinzuf&uuml;gen");
+define('ADMIN_COUNTRY_NO_CODES_SETUP', "Noch keine L&auml;ndercodes eingerichtet!");
+define('ADMIN_LIST_COUNTRIES', "L&auml;ndercodes auflisten");
+define('ADMIN_COUNTRY_CODE', "Code");
+define('ADMIN_COUNTRY_NAME', "Name");
+define('ADMIN_COUNTRY_STATUS', "Anzeigen?");
+define('ADMIN_COUNTRY_ALREADY_1', "L&auml;ndercode <U>");
+define('ADMIN_COUNTRY_ALREADY_2', "</U> existiert bereits!");
+define('ADMIN_COUNTRY_ADDED_1', "L&auml;ndercode f&uuml;r Land <U>");
+define('ADMIN_COUNTRY_ADDED_2', "</U> hinzugef&uuml;gt.");
+define('ADMIN_COUNTRY_EDIT_NOW', "L&auml;ndercodes &auml;ndern");
+define('ADMIN_COUNTRY_DELETE_NOW', "L&auml;ndercodes l&ouml;schen");
+define('ADMIN_COUNTRY_EDIT_TITLE', "L&auml;ndercodes &auml;ndern");
+define('ADMIN_COUNTRY_DELETE_TITLE', "L&auml;ndercodes l&ouml;schen");
+define('ADMIN_COUNTRIES_MODIFIED', "L&auml;ndercode(s) ge&auml;ndert.");
+define('ADMIN_COUNTRIES_REMOVED', "L&auml;ndercode(s) gel&ouml;scht.");
+define('COUNTRY_NOT_FOUND', "Land nicht gefunden!");
+
+//
+?>
diff --git a/0.2.1/inc/language/de.php b/0.2.1/inc/language/de.php
new file mode 100644 (file)
index 0000000..69cc058
--- /dev/null
@@ -0,0 +1,1138 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/26/2003 *
+ * ===============                              Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : de.php                                           *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterst&uuml;tzung                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language identifier
+define('__LANG_ID', "Deutsch (Dtl.)");
+
+// Installation/setup
+define('CONFIG_IS_WRITE_PROTECTED', "Die Konfigurationsdatei <strong>inc/config.php</strong> ist schreibgesch&uuml;tzt. Bitte setzen Sie CHMOD 666 auf die Datei!");
+define('DUMMY_IS_WRITE_PROTECTED', "In dem Verzeichnis <strong>inc/</strong> kann keine Datei erzeugt werden. Bitte setzen Sie CHMOD 777 auf das Verzeichnis!");
+define('SECRET_IS_WRITE_PROTECTED', "In dem Verzeichnis <strong>inc/.secret/</strong> kann keine Datei erzeugt werden. Bitte setzen Sie CHMOD 777 auf das Verzeichnis oder probieren Sie auch 770 aus!");
+
+// Language constants
+define('_TABLE', "Tabelle");
+define('_SIZE', "Gr&ouml;&szlig;e");
+define('_STATUS', "Status");
+define('_SPACESAVED', "Freigegeben");
+define('_ORESULT', "Optimization Resultat");
+define('_OJETZT', "Jetzt freigegeben");
+define('_ONR', "Sie haben bereits ");
+define('_ONRR', "mal die Tabellen optimiert");
+define('_OGESAMT', "KiloByte Gesamt optimiert");
+define('_WOPT', "wurde bereits optimiert");
+define('_OKOPT', "Optimiert!");
+define('LANG_DOWN_MAINTAINCE', "System wegen Wartungsarbeiten geschlossen!");
+define('LANG_MOD_REG_404_1', "Modul <U>");
+define('LANG_MOD_REG_404_2', "</U> existiert nicht!");
+define('LANG_MOD_NOT_REG', " ist nicht registriert!");
+define('LANG_UNKNOWN_MODULE', "Unbekanntes Modul");
+define('META_YOUR_NAME_1', "Ihr Name hier");
+define('META_YOUR_NAME_2', "Ihr Name nochmal");
+define('META_DESCRIPTION', "Beschreibung Ihrer Webseite hier");
+define('META_KEYWORDS', "mailtausch, mailversand, kostenlos, kostenloser, mailexchange, werbemail, werbemailversand, exchange, werbepunkte, punkte, auktion, auktionen, umsonst, sms kostenlos, produkte, produktproben, gewinn, gewinnspiel, gratis sms, promotion, besucher, werbung, linkliste, geldverdienen, verdienen, traffic, hits");
+define('LANG_WARNING', "Warnung");
+define('DIE_CONFIG_CHANGED_YOU', "Sie haben Ihre Config-Datei editiert! Auf Wiedersehen...");
+define('DIE_RUN_INSTALL_MYSQL', "Bitte rufen Sie http://your-domain.com/install.php auf, um Ihre MySQL-Daten einzurichten!");
+define('WARN_NULL_PASSWORD', "Sie haben kein Passwort eingegeben! Bitte lesen Sie in der <STRONG>inc/config.php</STRONG> nach, wie Sie diese Warnung abschalten k&ouml;nnen.");
+define('FATAL_CONFIG_WRITABLE', "Ihre Datei inc/config.php ist beschreibbar! Dies ist ein m&ouml;gliches Sicherheitsrisiko!");
+define('FATAL_CANNOT_WRITE_CONFIG', "Kann Konfigurationsdaten nicht speichern, da ich keinen Schreibzugriff auf inc/config.php habe!");
+define('FATAL_CANNOT_CREATE_TMP', "Kann eine tempor&auml;re Datei nicht erzeugen! Bitte setzen Sie CHMOD 777 auf Verzeichnis inc!");
+define('FATAL_ERROR', "Fataler Fehler");
+define('LANG_NO_RENDER_DIRECT', "Sie haben weder 'render' noch 'direct' als Ausgabe-Modus eingestellt!");
+define('INSTALLATION', "Installation des Scriptes");
+define('INSTALL_PROBLEMS_DETECTED', "Es wurden bei der Initialisierung des Installationsvorganges Probleme festgestellt!");
+define('FATAL_NO', "Fataler Fehler Nr. #");
+define('FATAL_CORRECT_ERRORS', "Kann nicht fortsetzen! Bitte korregieren Sie erst die obrigen Probleme und versuchen Sie es dann erneut!");
+define('WRONG_PAGE', "Sie oder dieses Script haben eine falsche Seite ausgew&auml;hlt!");
+define('WELCOME_TEXT', "Willkommen zum Installationsscript von MXChange-{!MT_WORD!}, dem kostenlosen {!MT_WORD!} Powered by MyAutoInstaller-Community!");
+define('INTRO_TEXT', "Dieses Script wird den {!MT_WORD!} f&uuml;r Sie soweit installieren, die Datenbank einrichten und vorkonfigurieren.<BR>Sie werden w&auml;hrend der Installation Schritt-F&uuml;r-Schritt durch die Installation gebracht! Bitte halten Sie die MySQL-Daten, sowie den absoluten Server-Pfad bereit!<BR>Nach erfolgreicher Installation sollten Sie als n&auml;chstes das erste Administrator-Login einrichten. Anschliessend k&ouml;nnen Sie sich einloggen und weitere Einstellungen verfeinern.<BR>Wir empfehlen dann alle Installationsdateien von Ihrem Server zu l&ouml;schen.");
+define('NEXT_PAGE', "Weiter zur n&auml;chsten Seite...");
+define('HEADER_TEXT_PAGE1', "Server-Pfad, Basis-URL und Webseitentitel");
+define('HEADER_TEXT_PAGE2', "MySQL-Daten: Hostname, Login und Passwort");
+define('HEADER_TEXT_PAGE3', "META-Angaben (Author, Keywords, etc.)");
+define('HEADER_TEXT_PAGE4', "Cascading Stylesheet-Datei");
+define('HEADER_TEXT_PAGE5', "Verschiedene Einstellungen");
+define('HEADER_MYSQL_ERRORS', "Fehler beim Verbinden zur MySQL-Datenbank!");
+define('TEXT_PAGE_1', "Geben Sie hier den absoluten Server-Pfad (/ihr/server/pfad/) <STRONG>mit</STRONG> abschliessendem Slash (/), die Basis-URL (vorgegebene stimmt meistens) und den Titel Ihres {!MT_WORD2!} ein.");
+define('TEXT_PAGE_2', "Geben Sie hier die Daten vom MySQL-Server ein, die Ihnen vom Hoster mitgeteilt wurden. Es wird dann anschliessend versucht, eine Testverbindung aufzubauen.");
+define('TEXT_PAGE_3', "Geben Sie hier die fehlenden META-Daten ein. Diese sind f&uuml;r den normalen Betrieb des {!MT_WORD2!} nicht wichtig, wenn aber Suchmaschinen Ihre Webseite gut hoch plazieren sollen, so geben Sie hier passendes ein.");
+define('TEXT_PAGE_4', "Geben Sie hier die URL Ihrer hochgeladenen CSS-Datei an. Wenn Sie die bestehende Standart-Datei verwenden m&ouml;chten, so klicken Sie einfach auf Weiter.");
+define('TEXT_PAGE_5', "Hier k&ouml;nnen Sie weitere Einstellungen vornehmen, wie zum Beispiel den Ausgabe-Modus festlegen, in der der HTML-Code ausgegeben werden soll, usw.");
+define('TEXT_MYSQL_ERRORS', "Es konnte keine Verbindung zur Datenbank aufgebaut werden! Ist das Login richtig? Ist auch die UMSCHALT-Taste nicht bet&auml;tigt? (zweite gr&uuml;ne Lampe leuchtet!) Ist somit das Passwort richtig?<BR><BR>Hier sind / ist alle Fehler aufgelistet:");
+define('SERVER_PATH', "Absoluter Server-Pfad");
+define('BASE_URL', "Basis-URL");
+define('HP_TITLE', "{!MT_WORD!}-Titel");
+define('HP_SLOGAN', "Werbespruch");
+define('HP_EMAIL', "E-Mail-Adresse");
+define('MYSQL_HOST', "Server-Hostname");
+define('MYSQL_DBASE', "Datenbank");
+define('MYSQL_PREFIX', "Pr&auml;fix f&uuml;r alle Tabellen");
+define('MYSQL_LOGIN', "Ihr Loginname");
+define('MYSQL_PASS1', "Ihr Passwort");
+define('MYSQL_PASS2', "Passwortwiederholung");
+define('CSS_URL', "URL zur CSS-Datei (relativ)");
+define('FATAL_NO_MHOST', "Sie haben keinen Hostnamen eingeben!");
+define('FATAL_NO_MDBASE', "Bitte geben Sie einen Datenbankname ein.");
+define('FATAL_NO_MLOGIN', "Bitte geben Sie Ihr Loginname zum MySQL-Server ein.");
+define('FATAL_NO_MPASS1', "Sie haben kein Passwort eingegeben! Dies ist sehr unsicher und wird daher als Fehler gewertet!");
+define('FATAL_NO_MPASS2', "Bitte geben Sie noch die Passwortbest&auml;tigung ein!");
+define('FATAL_MPASS1_MPASS2', "Ihre beiden Passw&ouml;rter sind nicht identisch!");
+define('LANG_OUTPUT_MODE', "Ausgabemodus des HTML-Codes");
+define('MODE_RENDER', "HTML-Code wird vom Server komplett erzeugt und dann ausgegeben");
+define('MODE_DIRECT', "HTML-Code wird sofort ausgegegeben. (Langsam)");
+define('WARN_NO_PASSWORD', "Warnen, wenn kein Passwort angegeben wurde?");
+define('YES', "Ja");
+define('NO', "Nein");
+define('RETURN_MYSQL_PAGE', "Zur&uuml;ck zu den MySQL-Einstellungen");
+define('INSTALL_FINALIZER_FAILED', "W&auml;hrend der Installation ist ein unerwarteter Fehler aufgetreten! Der Finalizer konnte die Installation nicht abschliessen!");
+define('INSTALL_MAYBE_DONE', "Die Installation ist m&ouml;glicherweise abgeschlossen oder es ist ein unerwarteter Fehler aufgetreten!");
+define('INSTALL_FINISHED', "Die Installation ist abgeschlossen! :-)");
+define('INSTALL_FIN_SECU', "<STRONG><U>Sicherheitshinweise:</U></STRONG><BR>Installieren Sie eine .htaccess Datei in alle Unterverzeichnisse ab dem Verzeichnis inc!");
+define('CONTINUE_ADMIN', "Weiter zum Administrationsbereich...");
+define('RUNTIME_PROBLEMS_DETECTED', "Laufzeit-Problem erkannt!");
+define('FATAL_INC_WRITABLE', "Das Verzeichnis inc ist beschreibbar! Bitte setzen Sie die Zugriffsrechte auf 755 oder 555.");
+define('LANG_WRITE_FOOTER', "Scriptname, -version und -author anzeigen?");
+define('LANG_FRAMESET_ACTIVE', "Soll das Frameset aktiviert werden? (Wenn nein wird ein Table-Set aktiviert)");
+define('MYSQL_ERRORS', "Es sind MySQL-Fehler aufgetreten! Bitte korregieren Sie diese!");
+define('LANG_MOD_UNKNOWN_1', "Der Return-Code <U>");
+define('LANG_MOD_UNKNOWN_2', "</U> ist unbekannt!");
+define('LANG_MOD_LOCKED_1', "Das Modul <U>");
+define('LANG_MOD_LOCKED_2', "</U> wurde gesperrt!");
+define('ADMIN_UNKNOWN_ACTION_1', "Unbekannte Admin-Aktion <U>");
+define('ADMIN_UNKNOWN_ACTION_2', "</U> erkannt! Bitte das Modul richtig aufrufen!");
+define('ADMIN_ACTION_404_1', "Admin-Modul f&uuml;r Aktion <U>");
+define('ADMIN_ACTION_404_2', "</U> nicht gefunden!");
+define('ADMIN_NOT_REGISTERED', "Es ist noch kein Administrator-Account angelegt worden.");
+define('ADMIN_REGISTER_NOW', "Legen Sie jetzt das Administrator-Account an:");
+define('ADMIN_LOGIN', "Geben Sie ein Administrator-Login ein");
+define('ADMIN_PASS', "Geben Sie das Passwort ein");
+define('CLEAR_FORM', "Nochmal eingeben");
+define('ADMIN_REG_SUBMIT', "Admin-Account erstellen");
+define('ADMIN_NO_LOGIN', "Sie haben keinen Loginnamen eingegeben!");
+define('ADMIN_NO_PASS', "Sie haben kein Passwort eingegeben!");
+define('ADMIN_SHORT_PASS', "Das Passwort ist zu kurz! Mindestens 4 Zeichen!");
+define('ADMIN_LOGIN_ALREADY_REG', "Das von Ihnen eingegebene Admin-Login existiert bereits!");
+define('ADMIN_REGISTER_FAILED', "Bei der Registrierung eines Admin-Accounts ist ein unerwarteter Fehler unterlaufen!");
+define('ADMIN_REGISTER_DONE', "Das Admin-Account wurde soeben erstellt. Sie k&ouml;nnen sich nun mit den eingegeben Login-Daten einloggen.");
+define('ADMIN_CANNOT_COMPLETE', "Kann die Regsitrierung des Admin-Accounts nicht abschliessen!");
+define('ADMIN_LOGIN_NOW', "Sie k&ouml;nnen sich nun in den Administratorbereich einloggen.<BR>Geben Sie dazu Ihren Admin-Login (nicht Benutzer-Login!) und das Passwort dazu ein.");
+define('ENTER_ADMIN_LOGIN', "Administrator-Login");
+define('ENTER_ADMIN_PASS', "Passwort zum Admin-Account");
+define('ADMIN_LOGIN_SUBMIT', "Einloggen zum Admin-Bereich");
+define('WRONG_PASS', "Falsches Passwort!");
+define('ADMIN_NOT_FOUND', "Administrator-Account wurde nicht gefunden!");
+define('ADMIN_LOGIN_FAILED', "Einloggen in den Administrator-Bereich fehlgeschlagen!");
+define('CANNOT_REGISTER_SESS', "Konnte eine Sitzungsvariable nicht setzen! Vermutlich sind bei Ihnen Cookies deaktiviert.");
+define('SELECT_TIMEOUT', "G&uuml;tigkeitsdauer des Auto-Logins");
+define('TIMEOUT_ONE_DAY', "1 Tag");
+define('TIMEOUT_TWO_DAYS', "2 Tage");
+define('TIMEOUT_THREE_DAYS', "3 Tage");
+define('TIMEOUT_ONE_WEEK', "1 Woche");
+define('TIMEOUT_TWO_WEEKS', "2 Wochen");
+define('TIMEOUT_ONE_MONTH', "1 Monat");
+define('TIMEOUT_HALF_YEAR', "1/2  Jahr");
+define('TIMEOUT_FULL_YEAR', "1 Jahr");
+define('ADMIN_LOGOUT_DONE', "Ausloggen aus dem Admin-Bereich abgeschlossen!");
+define('ADMIN_LOGOUT_FAILED', "Konnte nicht aus dem Admin-Bereich ausloggen! :-(");
+define('ADMIN_RELOGIN_LINK', "Klicken Sie hier, um sich erneut einzuloggen.");
+define('ADMIN_404_ACTION', "Admin-Modul nicht gefunden!");
+define('ADMIN_404_ACTION_1', "Das aufgerufe Admin-Modul <U>");
+define('ADMIN_404_ACTION_2', "</U> ist zwar g&uuml;ltig, konnte aber nicht auf dem Server gefunden werden.");
+define('ALREADY_INSTALLED', "Dieses Script ist bereits auf diesem Server installiert worden Bitte l&ouml;schen Sie install.php inc/install-inc.php und install.sql von Ihrem Server! (Keine Sorge, Sie k&ouml;nnen es tun...)");
+define('ADMIN_MAIN_TITLE', "Willkommen zum Administrationsbereich");
+define('YOU_ARE_HERE', "Sie sind hier:");
+define('ID_SELECT', "ID:");
+define('DISPLAY_ACTION', "Aktion");
+define('DISPLAY_WHAT', "Unteraktion");
+define('DISPLAY_TITLE', "Titel");
+define('UNDO_SELECTIONS', "Auswahl zur&uuml;cknehmen");
+define('EDIT_MENUS', "Men&uuml;s bearbeiten");
+define('DEL_MENUS', "Men&uuml;s l&ouml;schen");
+define('EDIT_ADMIN_MENU', "Admin-Men&uuml;eintr&auml;ge &auml;ndern");
+define('EDIT_MENU_1', "Es soll/sollen <STRONG>");
+define('EDIT_MENU_2', "</STRONG> Men&uuml;eintrag/-eintr&auml;ge ge&auml;ndert werden:");
+define('ENTRY_MODIFY', "Eintrag");
+define('SUBMIT_CHANGES', "&Auml;nderungen durchf&uuml;hren");
+define('ENTRY_404_1', "Eintrag <I>");
+define('ENTRY_404_2', "</I> wurde nicht gefunden!");
+define('EDIT_UNKNOWN_OKAY', "Es wurde eine unbekannte Aktion durchgef&uuml;hrt!");
+define('SAVING_DATA', "Speichere Daten ab");
+define('SAVING_DONE', "Speicherung beendet!");
+define('DEL_ADMIN_MENU', "Admin-Men&uuml;eintr&auml;ge l&ouml;schen");
+define('DEL_MENU_1', "Es soll/sollen <STRONG>");
+define('DEL_MENU_2', "</STRONG> Men&uuml;eintrag/-eintr&auml;ge gel&ouml;scht werden:");
+define('DEL_ENTRIES', "Eintr&auml;ge unwiederruflich l&ouml;schen");
+define('EDIT_ACTION', "Aktionswert &auml;ndern");
+define('EDIT_WHAT', "Unteraktionswert &auml;ndern");
+define('EDIT_TITLE', "Linktitel &auml;ndern");
+define('ADMIN_ADD_MENU', "Men&uuml; hinzuf&uuml;gen");
+define('ENTER_TITLE', "Geben Sie den Linktitel zum neuen Men&uuml;punkt ein");
+define('SELECT_PARENT_MENU', "W&auml;hlen Sie das &uuml;bergeordnete Hauptmen&uuml; aus");
+define('IS_TOP_MENU', "Ist ein Hauptmen&uuml;");
+define('SELECT_WHAT_NAME', "W&auml;hlen Sie den passenden Suffix aus der Liste aus");
+define('ENTER_DESCR', "Geben Sie eine kurze aussagekr&auml;ftige Beschreibung des Men&uuml;punktes ein");
+define('SELECT_BELOW_MENU', "W&auml;hlen Sie den Men&uuml;punkt aus, unterhalb dem der neue Punkt erscheinen soll");
+define('EDIT_DESCR', "Beschreibung &auml;ndern");
+define('CREATE_WHAT_FIRST', "Bitte erstellen Sie zuerst die what-xxxxx.php Datei. Dann k&ouml;nnen Sie sie hier ausw&auml;hlen.");
+define('MENU_IS_VISIBLE', "Men&uuml;punkt ist sichtbar");
+define('MENU_IS_ACTIVE', "Men&uuml;punkt ist aktiviert");
+define('CREATE_ACTION_FIRST', "Bitte erstellen Sie zuerst die action-xxxxx.php Datei. Dann k&ouml;nnen Sie sie hier ausw&auml;hlen.");
+define('IS_FIRST_MENU', "Ist das erste Hauptmen&uuml;");
+define('NO_DB_LINK', "Keine Verbindung zur Datenbank!");
+define('MYSQL_DATA_MISSING', "Etwas stimmt mit der MySQL-Konfiguration nicht!");
+define('REGISTER_PERSONAL_DATA', "Pers&ouml;nliche Daten");
+define('REGISTER_CATEGORIES', "Interessengebiete");
+define('REGISTER_MISC', "Passwort, maximale Mails pro Tag etc.");
+define('SURNAME', "Vorname");
+define('FAMILY_NAME', "Nachname");
+define('STREET_NR', "Stra&szlig;e + Hausnummer");
+define('COUNTRY', "Land");
+define('ZIP', "Postleitzahl");
+define('CITY', "Wohnort");
+define('ADDY', "Email-Adresse");
+define('BIRTHDAY', "Geburtstag (TT.MM.JJJJ)");
+define('PASS_1', "Passwort");
+define('PASS_2', "Passwortbest&auml;tigung");
+define('ADD_NEW_CATEGORY', "Neue Kategorie hinzuf&uuml;gen");
+define('ENTER_CATNAME', "Kategoriebezeichnung");
+define('SELECT_PARENT', "Unter welcher Kategorie soll diese eingeblendet werden?");
+define('IS_TOP_CATEGORY', "Ist oberste Kategorie");
+define('ADD_NEW_CAT', "Neue Kategorie dazuf&uuml;gen");
+define('CAT_IS_VISIBLE', "Kategorie wird eingeblendet?");
+define('CATEGORY_ADDED', "Kategorie wurde hinzugef&uuml;gt");
+define('CATEGORY_ALREADY_EXISTS', "Kategorie existiert bereits!");
+define('EDIT_DEL_CATEGORIES', "Aufgelistete Kategorien bearbeiten / l&ouml;schen");
+define('CATNAME', "Kategoriebezeichnung:");
+define('EDIT_CATS', "Kategorien bearbeiten");
+define('DEL_CATS', "Kategorien l&ouml;schen");
+define('NO_CATEGORIES_VISIBLE', "Derzeit sind keine Kategorien anzeigbar!");
+define('MAX_RECEIVE', "Wie viel Mails sollen Ihre Mitglieder maximal empfangen k&ouml;nnen? F&uuml;gen Sie bitte mehrere Werte hinzu, damit sich die Mitglieder dies individuell einstellen k&ouml;nnen.");
+define('ADD_MAX_RECEIVE', "Hinzuf&uuml;gen");
+define('SAVE_SETTINGS', "Einstellungen speichern");
+define('ENTER_MAX_VALUE', "Neuen Maximal-Wert (0 bis 9999)");
+define('ENTER_MAX_COMMENT', "Optionaler Hinweis (erscheint in Klammern hinter dem Wert!)");
+define('MAX_VALUE_SAVED', "Maximal-Wert gespeichert");
+define('MAX_VALUE_ALREADY', "Maximal-Wert existiert bereits!");
+define('EDIT_DEL_MAX_VALUES', "Maximal-Werte bearbeiten / l&ouml;schen");
+define('MAX_VALUE', "Maximal zu empfangene Mails");
+define('MAX_COMMENT', "Hinweis zum Maximal-Wert");
+define('EDIT_MAX_V', "Bearbeiten");
+define('DEL_MAX_V', "L&ouml;schen");
+define('NO_MAX_VALUES', "Derzeit klappt die Anmeldung nicht, da Sie keine maximal zu empfangenen Mails einstellen k&ouml;nnen!");
+define('MAX_PER_DAY', "Maximale Mitgliedermails/Tag");
+define('PER_DAY', "Mails");
+define('REFID_BY', "Sie wurden geworben von");
+define('TERMS_OF_USAGE', "AGBs zustimmen und absenden");
+define('YOU_FINALIZE', "Sie haben es gleich geschafft!");
+define('AGREE_TO_THIS', "Stimmen Sie unseren [<A href=\"".URL."/modules.php?module=index&amp;what=agb\" class=\"register_term\" target=\"_blank\">AGBs</A>] zu?");
+define('SUBMIT_REGISTER', "Anmeldedaten abschicken");
+define('HAVE_TO_AGREE', "Sie m&uuml;ssen unseren AGBs zustimmen, damit Sie an diesem {!MT_WORD!} teilnehmen k&ouml;nnen!");
+define('ENTER_BOTH_PASSWORDS', "Bitte geben Sie ein Passwort und das selbe Passwort noch einmal ein!");
+define('ENTER_PASS1', "Bitte geben Sie ein Passwort ein!");
+define('ENTER_PASS2', "Bitte geben Sie noch die Best&auml;tigung Ihres Passwortes ein!");
+define('ENTER_EMAIL', "Bitte geben Sie Ihre Email-Adresse ein! Diese muss auch erreichbar sein!");
+define('ENTER_SURNAME', "Bitte geben Sie Ihren Vornamen ein!");
+define('ENTER_FAMILY', "Bitte geben Sie Ihren Nachnamen ein!");
+define('EDIT_SECURITY_SETTINGS', "&Auml;ndern von sicherheits-relevanten Einstellungen");
+define('MIN_PASS_LENGTH', "Minimale Passwortl&auml;nge");
+define('SETTINGS_NOT_SAVED', "Einstellungen NICHT gespeichert / ge&auml;ndert!");
+define('SETTINGS_SAVED', "Einstellungen gespeichert.");
+define('FATAL_CANNOT_LOAD_CONFIG', "Kann die Konfigurationsdaten nicht laden! Vermutlich richtet der Webmaster diesen {!MT_WORD2!} gerade das Script erst ein! Bitte schauen Sie sp&auml;ter noch einmal vorbei!");
+define('ADMIN_INVALID_ACTION', "Ung&uuml;ltige action/what-Kombination erkannt! Bitte rufen Sie das Admin-Men&uuml; richtig auf!");
+define('ADMIN_INVALID_ACTION_1', "Die action/what-Kombination <U>");
+define('ADMIN_INVALID_ACTION_2', "</U> ist ung&uuml;ltig!");
+define('SHORT_PASS', "Das eingegebene Passwort ist nach unseren Sicherheitseinstellungen zu kurz. Mindestl&auml;nge ist");
+define('EDIT_POINTS_SETTINGS', "&Auml;ndern der Willkommensgutschrift und anderer {!POINTS!}");
+define('POINTS_REGISTER', "Willkommensgutschrift");
+define('POINTS_REF', "Einmalige Referral-Gutschrift");
+define('EDIT_REGFORM_SETTINGS', "Einstellungen am Anmeldeformular");
+define('LEAST_CATS', "Mindestens auszuw&auml;hlende Kategorieanzahl");
+define('CATS_LEAST', "Bitte w&auml;hlen Sie mehr Kategorien aus! Minimum ist");
+define('EMAIL_ALREADY_DB', "Sie haben sich bereits mit dieser Email-Adresse angemeldet, oder jemand anderes verwendet Ihre. Doppelte Anmeldungen sind bei uns verboten.");
+define('REJECT_DOUBLE_EMAIL', "Doppelt angemeldete Email-Adressen ablehnen?");
+define('REJECT_DOUBLE_PASS', "Gleiche Passw&ouml;rter bei der Anmeldung ablehnen? (Wird nicht angezeigt!)");
+define('ADMIN_EDIT_POINTS', "Willkommensgutschrift und andere Festbetr&auml;ge editieren");
+define('ADMIN_EDIT_REFDEPTHS', "Referral-Ebenen editieren / l&ouml;schen / hinzuf&uuml;gen");
+define('ADD_NEW_REFDEPTH', "Neue Referral-Ebene hinzuf&uuml;gen");
+define('ADD_DEPTH', "Referral-Ebene hinzuf&uuml;gen");
+define('ENTER_REF_LVL', "Referral-Ebene");
+define('ENTER_REF_PERCENTS', "Prozentuale Verg&uuml;tung");
+define('EDIT_DEL_REFDEPTH', "Referral-Ebenen editieren / l&ouml;schen");
+define('REF_LEVEL', "Referral-Ebene");
+define('REF_PERCENT', "Prozentuale Verg&uuml;tung");
+define('EDIT_LVL', "Ref-Ebene editieren");
+define('DEL_LVL', "Ref-Ebene l&ouml;schen");
+define('HELLO', "Hallo");
+define('GUEST_YOU_REGISTERED_WITH_US', "vielen Dank, dass Sie sich f&uuml;r unseren {!MT_WORD!} entschieden haben! Sollten Sie dies nicht gewesen sein, so melden Sie sich bitte bei uns!");
+define('GUEST_YOUR_PERSONA_DATA', "Hier sind nochmals zur &Uuml;berpr&uuml;fung Ihre pers&ouml;nlichen Daten");
+define('GUEST_SURNAME', "Vorname");
+define('GUEST_FAMILY', "Nachname");
+define('GUEST_STREET_NR', "Stra&szlig;e und Hausnummer");
+define('GUEST_COUNTRY', "L&auml;ndercode");
+define('GUEST_ZIPCODE', "Postleitzahl");
+define('GUEST_CITY', "Wohnort");
+define('GUEST_ADDY', "Email-Adresse");
+define('GUEST_BIRTHDAY', "Geburtsdatum");
+define('GUEST_REF', "Geworben von");
+define('GUEST_YOUR_REFLINK', "Hier ist Ihr pers&ouml;nlicher Referral-Link, mit dem Sie bereits jetzt schon neue Mitglieder werben k&ouml;nnen:");
+define('GUEST_CONFIRM_LINK', "Ihr Best&auml;tigungslink");
+define('THANX', "Vielen Dank.\n\nMit freundlichem Gruss,");
+define('YOUR', "Ihr");
+define('TEAM', "Team");
+define('HELLO_ADMIN', "Hallo lieber Administrator");
+define('ADMIN_GUEST_REGISTERED_WITH_US', "Ein Gast hat sich soeben bei uns angemeldet.");
+define('ADMIN_GUEST_PERSONA_DATA', "Hier sind zur &Uuml;berpr&uuml;fung nochmals seine pers&ouml;nlichen Daten");
+define('ADMIN_THANX', "Mit freundlichem Gruss,");
+define('SCRIPT', "Script");
+define('ADMIN_NEW_ACCOUNT', "Neue Anmeldung zu Ihrem {!MT_WORD!}");
+define('REGISTRATION_DONE', "Vielen Dank f&uuml;r die Anmeldung. Ein Best&auml;tigungslink ist zur angemeldeten EMail-Adresse unterwegs!");
+define('GUEST_404_ACTION_1', "Das angegeben Aktionsmodul <U>");
+define('GUEST_404_ACTION_2', "</U> existiert leider nicht, oder dieses Script hat einen Fehler gemacht!");
+define('GUEST_LOCKED_ACTION', "Aktionsmodul wurde gesperrt!");
+define('FATAL_REPORT_ERRORS', "Es wurde ein Problem w&auml;hrend der Abarbeitung von Anweisungen festgestellt. Wenn ein Modul gesperrt sein sollte, so wird vermutlich gerade dran gearbeitet, anderfalls melden Sie sich bitte bei uns!");
+define('TEMPLATE_404', "Template nicht gefunden!");
+define('EDIT_GUEST_MENU', "G&auml;stemen&uuml; bearbeiten");
+define('EDIT_MEMBER_MENU', "Mitgliedsmen&uuml; bearbeiten");
+define('DEL_GUEST_MENU', "G&auml;stemen&uuml; l&ouml;schen");
+define('DEL_MEMBER_MENU', "Mitgliedsmen&uuml; l&ouml;schen");
+define('GUEST_PASSWORD', "Ihr Passwort");
+define('GUEST_THANX_CONFIRMATION', "Sie haben soeben Ihre Email-Adresse best&auml;tigt und sind somit f&uuml;r den {!MT_WORD!} ".MAIN_TITLE." freigeschaltet!");
+define('GUEST_MAY_LOGIN_HERE', "Sie k&ouml;nnen sich nun hier einloggen:");
+define('HAPPY_MAILING', "Wir w&uuml;nschen Ihnen viel Spass und Erfolg beim Mail-Versand!\n\nMit freundlichem Gruss,");
+define('GUEST_THANX_CONFIRM', "Email-Adresse best&auml;tigt");
+define('GUEST_CONFIRMED_TWICE', "Sie haben bereits Ihre Email-Adresse best&auml;tigt oder Ihr Account ist derzeit gesperrt.");
+define('TOP', "Nach oben");
+define('YOUR_LOGIN', "Ihre Login-ID lautet");
+define('LOGIN_URL', "URL zum Login");
+define('GUEST_WELCOME_MEMBER', "Willkommen zum Login-Bereich f&uuml;r Mitglieder");
+define('GUEST_ENTER_LOGIN', "Login-ID");
+define('GUEST_ENTER_PASSWORD', "Passwort");
+define('LOGIN_SUBMIT', "Einloggen");
+define('GUEST_GET_NEW_PASS', "Neues Passwort zuschicken");
+define('GUEST_ENTER_EMAIL', "Angemeldete Email-Adresse");
+define('NEW_PASSWD', "Jetzt zuschicken!");
+define('GUEST_WRONG_ID_EMAIL', "Konnte Account-Daten nicht auffinden! Vermutlich haben Sie eine falsche Login-ID oder Email-Adresse eingegeben! Bitte probieren Sie es nochmal!");
+define('GUEST_NEW_PASS_1', "Sie oder ein anderes Mitglied");
+define('GUEST_NEW_PASS_2', "haben soben ein neues Passwort angefordert. Hier ist Ihr neues Passwort:");
+define('YOUR_NEW_PASS', "Neues Passwort");
+define('GUEST_NOT_THIS_REPORT', "Sollten Sie dies nicht gewesen sein, so melden Sie sich bitte bei uns!\n\nMit freundlichem Gruss,");
+define('GUEST_NEW_PASSWORD', "Ihre Passwortanfrage");
+define('LOGIN_UNKNOWN_CODE', "Unbekannter R&uuml;ckgabewert!");
+define('LOGIN_WRONG_PASS', "Falsches Passwort eingegben!");
+define('LOGIN_WRONG_ID', "Die Login-ID ist nicht mehr g&uuml;ltig!");
+define('LOGIN_ID_LOCKED', "Ihr Account wurde gesperrt!");
+define('LOGIN_ID_UNCONFIRMED', "Bitte best&auml;tigen Sie erst Ihre Email-Adresse!<BR>Haben Sie den Best&auml;tigungslink verloren? Links im Men&uuml; k&ouml;nnen Sie ihn erneut anfordern.");
+define('LOGIN_NO_COOKIES', "Sie haben in Ihrem Browser entweder die Cookies ausgeschaltet, oder die Sicherheitsstufe ist zu hoch eingestellt!");
+define('GUEST_REG_POINTS_1', "F&uuml;r Ihre Anmeldung haben wir Ihnen als Willkommensgutschrift");
+define('GUEST_REG_POINTS_2', "{!POINTS!} gutgeschrieben. Sie k&ouml;nnen bereits jetzt schon Mails an die anderen Mitglieder verschicken - solange Empf&auml;nger auch erreichbar sind.");
+define('GUEST_SELECT_LIFETIME', "Wie lange soll Auto-Login aktiv sein?");
+define('LIFE_CLOSE_BROWSER', "Browser wurde geschlossen");
+define('LIFE_HOURS', "Stunde(n)");
+define('LIFE_DAYS', "Tag(e)");
+define('LIFE_WEEKS', "Woche(n)");
+define('LIFE_MONTHS', "Monat(e)");
+define('LIFE_YEARS', "Jahr(e)");
+define('LANG_MEM_ONLY_1', "Auf das ausgew&auml;hlte Modul <U>");
+define('LANG_MEM_ONLY_2', "</U> d&uuml;rfen nur eingeloggte Mitglieder zugreifen!");
+define('MEMBER_404_ACTION_1', "Das Mitgliedsaktionsmodul <U>");
+define('MEMBER_404_ACTION_2', "</U> ist nicht auffindbar!");
+define('_GUEST', "Gast");
+define('_UNKNOWN', "Name ist nicht ladbar");
+define('_ADMIN', "Administrator");
+define('LAST_ONLINE', "Sie waren als letztes Online am");
+define('LAST_MODULE', "Ihr zuletzt ausgew&auml;hltes Modul");
+define('MEMBER_EDIT_PROFILE', "Profildaten &auml;ndern");
+define('SEX', "Anrede");
+define('GUEST_SEX', "Anrede");
+define('SEX_M', "Herr");
+define('SEX_F', "Frau");
+define('SEX_C', "Firma");
+define('SAVE_CHANGES', "&Auml;nderungen speichern");
+define('MYDATA_NOTE', "Geben Sie nur bei <STRONG>Passwort</STRONG> Ihr aktuelles Passwort ein, wenn Sie nur Daten &auml;ndern wollen. Geben Sie bei <STRONG>Passwortbest&auml;tigung</STRONG> das neue Passwort erneut ein, wenn Sie Ihr aktuelles Passwort &auml;ndern wollen.");
+define('MEMBER_UPDATE_PWD_WRONG', "Bitte geben Sie Ihr aktuelles Passwort zum &Auml;ndern Ihrer Einstellungen ein. Wir haben dies zur Sicherheit unserer Mitglieder eingebaut.");
+define('MEMBER_HAVE_CHANGED_DATA', "Sie haben heute Ihr Benutzerprofil ge&auml;ndert.");
+define('YOUR_NEW_DATA', "Hier sind Ihre neuen Profildaten");
+define('PLEASE_NOTIFY_ABUSE_MYDATA', "Sollten Sie diese &auml;nderungen nicht durchgef&uuml;hrt haben, benachrichten Sie uns bitte! (".WEBMASTER.")");
+define('MEMBER_UNKNOWN_MODE', "Unbekannter Modus erkannt");
+define('MEMBER_CHANGED_EMAIL', "Sie haben Ihre Email-Adresse ge&auml;ndert! Alte Adresse war");
+define('MEMBER_CHANGED_PASS', "Sie haben Ihr Passwort ge&auml;ndert.");
+define('MEMBER_CHANGED_DATA', "&auml;nderung Ihrer Profildaten");
+define('MYDATA_MAIL_SENT', "Es ist eine Email zu Ihnen unterwegs.");
+define('ADMIN_CHANGED_DATA', "Profildaten geaendert");
+define('ADMIN_MEMBER_CHANGED_PROFILE', "Eines Ihrer Mitglieder hat seine Profildaten ge&auml;ndert!");
+define('MEMBER_UID', "Seine Login-ID lautet");
+define('LOGOUT_DONE', "Ausloggen abgeschlossen!");
+define('LOGOUT_FAILED', "Ausloggen fehlgeschlagen!");
+define('MEMBER_NO_CATS', "Es wurden bis jetzt noch keine Kategorien eingerichtet!");
+define('SELECT_CAT', "Mails aus Kategorie empfangen?");
+define('MEMBER_CATS_SAVED', "Kategorien gespeichert.");
+define('YOUR_PERSONAL_REFLINK', "Ihr pers&ouml;nlicher Ref-Link zum Werben neuer Mitglieder lautet");
+define('YOUR_REFCLICKS', "Klicks auf Ihren Referral-Link");
+define('CLICKS', "Klicks");
+define('YOU_REFERRAL_ONE', "Sie haben heute ein neues Mitglied f&uuml;r unseren {!MT_WORD!} geworben!\n\nHier sehen Sie genau, in welcher Ebene Sie ihn geworben haben:");
+define('YOU_THANX_REFERRAL', "Sie werden nun auch weiterhin {!POINTS!} &uuml;ber diese geworbene Person erhalten.\n\nVielen Dank f&uuml;r Ihr Mitwerben! Wir w&uuml;nschen Ihnen noch weiterhin viele neue Referrals!\n\nMit freundlichem Gruss,");
+define('POINTS_REF_REGISTER', "Referral-Pauschale und prozentual vom Anmeldebonus!");
+define('NO_REFLEVEL_LEFT', "Keine Referral-Ebenen mehr verf&uuml;gbar! Bitte melden Sie sich bei uns.");
+define('ENGINE', "{!MT_WORD!}-Engine");
+define('ADD_NEW_PAYMENT', "Neue Mailverg&uuml;tung hinzuf&uuml;gen");
+define('ENTER_PAY_TIME', "Wartezeit");
+define('ENTER_PAY_PAYMENT', "Verg&uuml;tete {!POINTS!}");
+define('ENTER_PAY_PRICE', "{!POINTS!}-Kosten");
+define('ENTER_PAY_TITLE', "Mailname");
+define('ADD_PAYMENT', "Mailverg&uuml;tung hinzuf&uuml;gen");
+define('EDIT_DEL_PAYMENT', "Mailverg&uuml;tung editieren / l&ouml;schen");
+define('PAY_TIME', "Wartezeit");
+define('PAY_PAYMENT', "Verg&uuml;tete {!POINTS!}");
+define('PAY_PRICE', "{!POINTS!}-Kosten");
+define('PAY_TITLE', "Mailname");
+define('EDIT_PAY', "Editeren");
+define('DEL_PAY', "L&ouml;schen");
+define('ADD_NEW_REFBANNER', "Neuen Banner hinzuf&uuml;gen");
+define('ENTER_URL', "Banner-URL");
+define('ENTER_ALTERNATE', "Alternativen Text");
+define('SELECT_VISIBLE', "Ist der Banner aktiv?");
+define('ADD_REFBANNER', "Banner hinzuf&uuml;gen");
+define('EDIT_DEL_REFBANNER', "Werbebanner editieren / l&ouml;schen");
+define('VIEWS', "Views");
+define('REF_URL', "Banner");
+define('REF_TITLE', "Alternativer Text");
+define('REF_CNTR', "Views");
+define('REF_VIS', "Aktiv?");
+define('POINTS_USED', "Verbrauchte {!POINTS!}");
+define('MEMBER_NO_POINTS', "Sie haben keine {!POINTS!} mehr zum Versenden &uuml;brig!");
+define('MEMBER_NO_PAYMENTS', "Der Admin diesen {!MT_WORD2!} hat noch keine Mailarten definiert!");
+define('MEMBER_POINTS_LEFT', "{!POINTS!}-Guthaben zum Mailversand &uuml;brig");
+define('SELECT_MAIL_TYPE', "Mailart ausw&auml;hlen");
+define('PLEASE_SELECT', "Bitte ausw&auml;hlen");
+define('PER_MAIL', "{!POINTS!} / Mail");
+define('PAYMENT', "{!POINTS!} Verg&uuml;tung");
+define('SELECT_CATEGORY', "Zielkategorie");
+define('USER_IN_CAT', "Empf&auml;nger");
+define('ENTER_RECEIVER', "Empf&auml;ngeranzahl");
+define('ENTER_SUBJECT', "Betreffzeile");
+define('ENTER_TEXT', "Werbetext");
+define('MEMBER_PLEASE_NOTE', "Bitte beachten Sie vor dem Absenden:");
+define('MEMBER_ENTER_URL', "URL");
+define('CONTINUE_FRAMETESTER', "Weiter zum Framekiller-Test");
+define('MEMBER_URL_TIME_LOCK', "Sie hatten bereits die selbe URL gebucht:");
+define('MEMBER_LAST_TLOCK', "Ihre letzte Buchung war am");
+define('CONFIG_URL_TLOCK', "Selbe URLs sind buchbar in");
+define('HOURS', "Stunden");
+define('MINS', "Minuten");
+define('SECS', "Sekunden");
+define('_AND', "und");
+define('UNKNOWN_CODE_1', "Es ist w&auml;hrend der Ausf&uuml;hrung ein unbekannter Fehler-Code <STRONG>");
+define('UNKNOWN_CODE_2', "</STRONG> enstanden, f&uuml;r den Sie vermutlich nicht verantwortlich sind. Bitte informieren Sie uns &uuml;ber diese Meldung!");
+define('MEMBER_TEXT_CONTAINS_URL', "Ihr Werbetext enth&auml;lt eine URL, dies ist in unserem {!MT_WORD!} nicht zul&auml;ssig. Bitte entfernen Sie diese aus Ihrem Text und versuchen Sie es erneut.");
+define('MEMBER_TEXT_OVERLENGTH', "Ihr Text hat die maximale Textl&auml;nge &uuml;berschritten. Bitte fassen Sie ihn etwas k&uuml;rzer.");
+define('MEMBER_SUBJ_CONTAINS_URL', "Ihre eingegebe Betreffzeile enth&auml;lt eine URL,  dies ist in unserem {!MT_WORD!} nicht zul&auml;ssig. Bitte entfernen Sie diese aus Ihrer Betreffzeile und versuchen Sie es erneut.");
+define('MEMBER_URL_BLACK_LISTED', "Ihre eingegebene URL wurde in unsere Ausschlussliste aufgenommen!");
+define('MEMBER_BLIST_TIME', "Datum der Sperrung war");
+define('MEMBER_SELECTED_MORE_RECS', "Sie haben f&uuml;r diese Kategorie zu viele Empf&auml;nger eingegeben!");
+define('MEMBER_GO_BACK', "Zur&uuml;ck zum Buchungsformular");
+define('MEMBER_DO_ORDER', "Mailbuchung jetzt durchf&uuml;hren");
+define('LOADER_NOT_WORKING', "Falls die Weiterleitung nicht automatisch in einer Sekunde klappen sollte,");
+define('LOADER_CLICK_HERE', "so kommen Sie hier zur externen Seite weiter");
+define('ADMIN_NEW_MAIL_IN_QUEUE', "Ein Mitglied hat soeben eine Mailbuchung durchgef&uuml;hrt!\n\nSeine Buchung befindet sich nun im Sende-Pool und wird automatisch in 100-Mail-Bloecken versand.\n\nHier sind nochmals seine Daten, gebuchter Text und URL zur Verifizierung");
+define('ADMIN_SECOND_MAIL', "Sie werden bald nochmals benachrichtig, sobald der Versand vollstaendig beendet wurde.");
+define('_CATEGORY_404', "Kategorie nicht gefunden!");
+define('_PAYMENT_404', "Payment-Typ nicht gefunden!");
+define('ORDERED_CATEGORY', "Gebuchte Kategorie");
+define('MEMBER_MAILTYPE', "Gebuchter Payment-Typ");
+define('MEMBER_SUBJECT', "Betreffzeile in den Mails");
+define('MEMBER_URL', "Gebuchte URL");
+define('MEMBER_NEW_MAIL_IN_QUEUE', "Ihre Mailbuchung befindet sich derzeit in Warteschleife und wird bald ausgesendet!\n\nHier sind nochmals Ihre Daten aus dem Buchungsformular");
+define('MEMBER_SECOND_MAIL', "Sobald Ihre Mailbuchung vollst&auml;ndig gesendet wurde, erhalten Sie eine zweite Mail! Sie k&ouml;nnen bereits eine weitere Mailbuchung durchf&uuml;hren!");
+define('ADMIN_NEW_QUEUE', "Mailbuchung in Ihrem {!MT_WORD!}");
+define('MEMBER_NEW_QUEUE', "Vielen Dank fuer die Mailbuchung!");
+define('MEMBER_CONTINUE_AREA', "Weiter zum Mitgliedsbereich");
+define('MEMBER_THANX_ORDER', "Vielen Dank f&uuml;r Ihre Mailbuchung! Es ist eine Mail zu Ihnen unterwegs.");
+define('ADMIN_NO_MAILS_IN_POOL', "Es wurden noch keine Mailbuchungen aufgegeben, kann somit keine Mails anzeigen!");
+define('ADMIN_POOL_CONTENT', "Mailbuchungen im Sende-Pool");
+define('POOL_UNKNOWN', "Unbekannt");
+define('POOL_TEMP', "Neuer Auftrag");
+define('POOL_SEND', "Gesendet");
+define('POOL_NEW', "Wartet auf Versand");
+define('POOL_ADMIN', "Wartet auf Freischaltung");
+define('EMAIL_SENDER', "Versender");
+define('EMAIL_SUBJECT', "Betreffzeile");
+define('EMAIL_TEXT', "Gebuchter Text");
+define('EMAIL_PAYMENT', "Mailart");
+define('EMAIL_CATEGORY', "Gebuchte Kategorie");
+define('EMAIL_RECEIVERS', "Anzahl Empf&auml;nger");
+define('EMAIL_RUIDS', "User-IDs");
+define('EMAIL_POOL_TYPE', "Derzeitiger Status");
+define('EMAIL_TSEND', "Noch zu sendene Mails");
+define('EMAIL_URL', "Beworbene URL");
+define('EMAIL_URL_TEST', "URL testen");
+define('EMAIL_TIMESTAMP', "Gebucht am");
+define('GUEST_FRAMETESTER_TOP', "Sollte dieser Text verschwinden, enth&auml;lt Ihre Webseite einen Frame-Killer!");
+define('ADMIN_SELECT_EMAIL_EDIT', "Email ausw&auml;hlen, um diese zu editieren");
+define('RESET_SELECT', "Auswahl zur&uuml;cknehmen");
+define('ADMIN_EDIT_EMAIL', "Mailbuchung bearbeiten");
+define('ADMIN_CHANGE_EMAIL', "&Auml;nderungen speichern");
+define('EMAIL_EDIT_URL', "URL bearbeiten");
+define('EMAIL_EDIT_SUBJ', "Betreff bearbeiten");
+define('EMAIL_EDIT_TEXT', "Werbetext bearbeiten");
+define('ADMIN_UNLOCK_EMAILS', "Neue Mailbuchungen freischalten");
+define('EMAIL_ACCEPT', "Annehmen");
+define('EMAIL_REJECT', "Ablehnen und umleiten");
+define('CANNOT_RE_REGISTER_SESS', "Kann Sitzungs-Cookies nicht doppelt registrieren oder es liegt ein Script-Fehler vor!");
+define('ADMIN_MAILS_ACTIVATED', "Die Mailbuchungen wurden in den Sende-Pool &uuml;bertragen und werden bald versand.");
+define('ADMIN_REJECTED_URLS', "URLs ausw&auml;hlen, die in die Black-List aufgenommen werden sollen:");
+define('ADMIN_LOCK_URLS', "URLs in die Black-List aufnehmen");
+define('ADMIN_URLS_BLOCKED', "URLs wurden in die Black-List aufgenommen!");
+define('ADMIN_SENDING_DONE', "Eine gebuchte Mail wurde soeben vollstaendig ausgesendet. Das werbende Mitglied wurde darueber in Kenntnis gesetzt.");
+define('ADMIN_NOTIFY_DONE', "Sollte diese Buchung nicht Ihren AGBs entsprechen, loggen Sie sich bitte in den Admin-Bereich ein und aendern die Mail.");
+define('ADMIN_SUBJ_SEND_DONE', "Vollstaendig: Aussendung einer Werbebbuchung!");
+define('MEMBER_SENDING_DONE', "Ihre gebuchte Mail wurde soeben vollstaendig von unserem System versendet! Wir wuenschen Ihnen viel Erfolg mit Ihrer Werbebuchung!");
+define('MEMBER_NOTIFY_DONE', "Den weiteren Verlauf dieser Werbebuchung koennen Sie im Mitgliedsbereich unter Statistiken verfolgen!");
+define('MEMBER_SUBJ_SEND_DONE', "Ihre Werbebuchung wurde versandt");
+define('GUEST_SELECT_LEAST_CATS_1', "Bitte w&auml;hlen Sie mindestens <STRONG><BIG>");
+define('GUEST_SELECT_LEAST_CATS_2', "</BIG></STRONG> Kategorien aus. Anderfalls erfolgt keine Anmeldung!");
+define('MEMBER_POOL_CONTENT', "Ihre Mails im Sende-Pool");
+define('EMAIL_END_SEND', "Vollst&auml;ndig versendet");
+define('EMAIL_CONFIRMED', "Best&auml;tigt");
+define('EMAIL_PERCENT', "Klickrate");
+define('MEMBER_NO_MAILS_TO_CONFIRM', "Keine Mails &uuml;brig zum Best&auml;tigen!");
+define('MEMBER_SID', "Mail-ID");
+define('CONFIRM_LINK', "Best&auml;tigungslink");
+define('MAIL_ALREADY_CONFIRMED', "Mail bereits verg&uuml;tet oder Link ist nicht mehr g&uuml;ltig!");
+define('MAIL_STATS_404', "Konnte Daten aus der Statistik-Tabelle nicht laden!");
+define('USER_NOT_FOUND', "Mitgliedsdaten nicht gefunden! Sind Sie noch angemeldet?");
+define('UNKNOWN_STATUS', "Unbekannter Account-Status");
+define('ADMIN_UNCONFIRMED_ACCOUNTS', "Hier alle Accounts, deren Email-Adresse nicht best&auml;tigt ist");
+define('_UID', "User-ID");
+define('REMOTE_IP', "IP-Nummer");
+define('REF_UID', "Werber-ID");
+define('UNKNOWN_STATUS_1', "Unbekannter Status <STRONG>");
+define('UNKNOWN_STATUS_2', "</STRONG> erkannt!");
+define('ACCOUNT_STATUS', "Account-Status");
+define('ACCOUNT_UNCONFIRMED', "<SPAN class=\"admin_failed\">Unbest&auml;tigt</SPAN>");
+define('ACCOUNT_CONFIRMED', "<SPAN class=\"admin_green\">Best&auml;tigt</SPAN>");
+define('ACCOUNT_LOCKED', "Gesperrt");
+define('ADMIN_ALL_ACCOUNTS', "Alle Mitglieder-Accounts auflisten");
+define('ADMIN_LIST_LOCKED_ACCOUNTS', "Alle gesperrten Mitglieder-Accounts auflisten");
+define('ADMIN_LIST_CONFIRMED_ACCOUNTS', "Alle best&auml;tigten Mitglieder-Accounts auflisten");
+define('ADMIN_NO_NONE_REGISTERED', "Ihre Suchkriterieren ergaben keine Treffer in der Mitgliederliste. ");
+define('ADMIN_MEMBER_404_1', "Mitglieds-Account <STRONG>");
+define('ADMIN_MEMBER_404_2', "</STRONG> existiert nicht!");
+define('ADMIN_LAST_ONLINE', "Zuletzt aktiv");
+define('ADMIN_LAST_MODULE', "Letzte Aktion");
+define('RECEIVE_MAILS', "Kann Mails empfangen");
+define('REF_CLICKS', "Klicks auf Ref-Link");
+define('TOTAL_LOGINS', "Logins gesamt");
+define('USED_POINTS', "Verwendete {!POINTS!}");
+define('MAILS_SENT', "Mails versendet");
+define('HAS_JOINED', "Beigetreten am");
+define('TOTAL_POINTS', "{!POINTS!} gesamt");
+define('TOTAL_REFERRALS', "Referrals gesamt");
+define('ADMIN_MEMBER_FUNCTIONS', "Administrative Funktionen");
+define('ADMIN_DEL_USER', "L&ouml;schen");
+define('ADMIN_LOCK_USER', "Sperren");
+define('ADMIN_UNLOCK_USER', "Entsperren");
+define('ADMIN_ADD_POINTS', "{!POINTS!} aufbuchen");
+define('ADMIN_EDIT_USER', "&Auml;ndern");
+define('ADMIN_ALL_REFS', "Alle Refs auflisten");
+define('BIRTHDAY2', "Geburtstag");
+define('TOTAL_CATS', "Ausgew&auml;hlte Kategorien");
+define('ADMIN_GOTO_USERLIST', "Dieser Men&uuml;punkt kann nicht direkt aufgerufen werden. Bitte rufen Sie stattdessen <I><U>User auflisten</U></I> auf.");
+define('ADMIN_USER_UPDATED', "Das Mitgliedsaccount wurde aktualisiert!");
+define('ADMIN_LOCKED_YOUR_ACCOUNT', "Ihr Account wurde von einem unserer Administratoren gesperrt! Bitte halten Sie sich an unsere AGBs.");
+define('REASON_LOCKED', "Grund der Sperrung war");
+define('MEMBER_PLEASE_RESPECT', "Sollten Sie damit nicht einverstanden sein, so melden Sie sich bitte bei uns. Wir kommen dann in Kontakt mit Ihnen.");
+define('ADMIN_LOCKED_SUBJ', "Ihr Account wurde gesperrt!");
+define('ADMIN_UNLOCKED_SUBJ', "Ihr Account wurde wieder freigegeben!");
+define('ADMIN_UNLOCKED_YOUR_ACCOUNT', "Einer unserer Administratoren hat soeben Ihren Account wieder freigeben! Sie koennen sich nun wieder unter folgender URL einloggen:\n\n".URL."/login.php");
+define('REASON_UNLOCKED', "Nachricht vom Admin");
+define('ADMIN_WELCOME_BACK', "Bitte beachten Sie beim naechsten Mal auf unsere AGBs, damit Ihnen diese Unangenehmlichkeiten erspart bleiben.");
+define('ADMIN_DEL_ACCOUNT', "Loeschung Ihres Accounts!");
+define('ADMIN_DELETED_YOUR_ACCOUNT', "Einer unserer Administratoren hat soeben Ihren Account geloescht!");
+define('REASON_DELETE', "Grund der Loeschung war folgender");
+define('ADMIN_BYE_BYE', "Wir wuenschen Ihnen weiterhin noch alles Gute und koennen Sie vielleicht irgentwann einmal wieder begruessen.");
+define('ADMIN_ALL_CONFIRMED_EMAIL', "Alle Ihre Mitglieder haben ihre Email-Adresse best&auml;tigt! Keine Neuanmeldungen vorhanden.");
+define('GUEST_CONFIRM_SUBJ', "Bitte Ihre Email-Adresse bestaetigen!");
+define('MEMBER_ORDER_ACCEPTED', "Ihre Mailbuchung wurde freigeschaltet");
+define('MEMBER_ORDER_REJECTED', "Ihre Mailbuchung wurde abgelehnt");
+define('THANX_REFERRAL_ONE', "Vielen Dank fuer die Referral-Werbung!");
+define('ADMIN_SEND_MAIL', "Bonusmail versenden");
+define('ADMIN_BONUS_SEND', "Bonusmail wurde in den Sende-Pool eingef&uuml;gt!");
+define('ENTER_POINTS', "Verg&uuml;tung");
+define('ENTER_SECONDS', "Wartezeit");
+define('ADMIN_MORE_SELECTED', "Sie haben mehr Empf&auml;nger eingegeben, als das empfangsbereit sind!");
+define('ADMIN_BONUS_CONTENT', "Versendete Bonus-Mails");
+define('EMAIL_POINTS', "Verg&uuml;tung");
+define('EMAIL_SECONDS', "Wartezeit");
+define('POOL_ACTIVE', "Wird gerade versendet");
+define('ALL_MEMBERS', "Alle Mitglieder");
+define('ADMIN_SELECT_USERID', "Benuzter ausw&auml;hlen");
+define('ADMIN_SELECT_USER', "Benuzter ausw&auml;hlen");
+define('ENTER_POINTS_ADD', "{!POINTS!} zum Aufbuchen");
+define('ENTER_ADD_REASON', "Grund der Aufbuchung");
+define('ADMIN_ADDED_POINTS_1', "Einer unserer Administratoren hat Ihnen soeben");
+define('ADMIN_ADDED_POINTS_2', " {!POINTS!} gutgeschrieben!");
+define('ADMIN_ADDED_REASON', "Grund dazu war folgender");
+define('ADMIN_ADD_SUBJ', "{!POINTS!}-Gutschrift durch unsere Admins!");
+define('ADMIN_POINTS_ADDED', "{!POINTS!} wurden gutgeschrieben. Das Mitglied hat eine Mail erhalten!");
+define('MAILS_PER_DAY', "Mails / Tag");
+define('GUEST_CONFIRMED_DONE', "Danke f&uuml;r die Best&auml;tigung Ihrer Email-Adresse! Es ist eine Mail mit den Login-Daten zu Ihnen unterwegs.");
+define('VALIDATING_LOGIN', "Logindaten werden gepr&uuml;ft . . .");
+define('MEMBER_ACCOUNT_LOCKED_UNC', "Kann keine {!POINTS!} gutschreiben, da Ihr Account gesperrt wurde!");
+define('MAIL_POSSIBLE_INVALID', "Konnte keine {!POINTS!} gutschreiben: Daten moeglicherweise beschaedigt!");
+define('MEMBER_COOKIES_DISABLED', "Kann nicht einloggen, da Cookies bei Ihnen deaktiviert sind.");
+define('ADMIN_DEL_COMPLETED', "Account wurde gel&ouml;scht! Die {!POINTS!} werden immer in den Jackpot transferiert!");
+define('NORMAL_MAIL_PROBLEM', "Mail vom Mitgliedern bereits gel&ouml;scht");
+define('BONUS_MAIL_PROBLEM', "Bonus-Mail bereits gel&ouml;scht");
+define('MEMBER_BACK_JACKPOT', "{!POINTS!}-Rueckgutschrift");
+define('ADMIN_BACK_JACKPOT', "{!POINTS!}-Aufbuchung fuer Jackpot");
+define('MEDIA_DATA', "Mediendaten");
+define('USERS_TOTAL', "Mitglieder gesamt");
+define('USERS_MAX_MAILS', "Erreichbare Mitglieder");
+define('USERS_REC_PER_DAY', "Heute noch erreichbar");
+define('USERS_LINKS', "Unbest&auml;tigte Mails");
+define('USERS_STATS', "Werbebuchungen");
+define('USERS_SENT_MAILS', "Gesendete Mails");
+define('USERS_MAX_PER_DAY', "Versendbare Mails pro Tag");
+define('USERS_MAX_REC', "Heute versendbare Mails");
+define('EDIT_CATEGORIES', "Kategorien &auml;ndern");
+define('CATEGORY_ID', "Kategorie-ID");
+define('CAT_DESCRIPTION', "Kategoriebeschreibung");
+define('CHANGE_CATS', "&Auml;ndern");
+define('SORT_KEY', "Sortierung");
+define('CATEGORIES_SAVED', "Kategorien gespeichert...");
+define('CATEGORIES_DELETED', "Kategorien gel&ouml;scht...");
+define('DELETE_CATEGORIES', "Kategorien l&ouml;schen");
+define('REMOVE_CATS', "L&ouml;schen");
+define('EDIT_MRECEIVE', "Maximal-Werte editieren");
+define('DELETE_MRECEIVE', "Maximal-Werte l&ouml;schen");
+define('MRECEIVE_ID', "Max-Wert ID");
+define('MREC_VALUE', "Mails pro Tag");
+define('MREC_COMMENT', "Kommentar");
+define('CHANGE_MREC', "&Auml;ndern");
+define('REMOVE_MREC', "L&ouml;schen");
+define('MRECEIVE_SAVED', "Maximal-Werte gespeichert...");
+define('MRECEIVE_DELETED', "Maximal-Werte gel&ouml;scht...");
+define('EDIT_REF_DEPTHS', "Referral-Ebenen editieren");
+define('DELETE_REF_DEPTHS', "Referral-Ebenen l&ouml;schen");
+define('REF_DEPTHS_ID', "Ref-Level ID");
+define('CHANGE_REF', "&Auml;ndern");
+define('REMOVE_REF', "L&ouml;schen");
+define('REF_DEPTHS_SAVED', "Referral-Ebenen gespeichert...");
+define('REF_DEPTHS_DELETED', "Referral-Ebenen gel&ouml;scht...");
+define('EDIT_PAYMENT', "Mailverg&uuml;tungen editieren");
+define('PAYMENT_ID', "Verg&uuml;tungs-ID");
+define('CHANGE_PAY', "&Auml;ndern");
+define('REMOVE_PAY', "L&ouml;schen");
+define('REFERRALS', "Referrals");
+define('POINTS_SUM', "Gesamtsumme");
+define('NEW_VERSION_AVAILABLE', "Neue Version verf&uuml;gbar!");
+define('YOUR_VERSION_IS', "Installierte Version");
+define('ONLINE_VERSION_IS', "Verf&uuml;gbare Version");
+define('UPDATE_CREATE_TIME', "Update wurde erstellt");
+define('DOWNLOAD_NEW_VERSION', "Jetzt neue Version herunterladen!");
+define('NO_UPDATES_AVAILABLE', "Keine neuen Updates/Patches verf&uuml;gbar!");
+define('NEW_PATCHES_AVAILABLE', "Neue Entwickler-Patches verf&uuml;gbar!");
+define('PATCH_FNAME', "Download-Link");
+define('PATCH_CTIME', "Patch erstellt");
+define('PATCH_FSIZE', "Downloadgr&ouml;sse");
+define('KBYTES', "KBytes");
+define('DEFAULT_SUBJECT_LINE', "Klick-Mail von ".TITLE);
+define('MEBER_UPDATE_PWD_WRONG', "Sie haben das falsche Passwort eingegeben! Bitte nochmal versuchen!");
+define('ADMIN_MEM_NO_CATS_1', "Das Mitglied <U>");
+define('ADMIN_MEM_NO_CATS_2', "</U> hat keine Kategorien ausgew&auml;hlt!");
+define('USER_ID', "Mitglied");
+define('UNCONFIRMED_LINKS', "Unbest&auml;tigte Mails");
+define('ADMIN_MEMBER_LINKS_1', "Das Mitglied <U>");
+define('ADMIN_MEMBER_LINKS_2', "</U> hat alle seine Mails best&auml;tigt.");
+define('MEMBER_TOTAL_LINKS_1', "Es m&uuml;ssen noch <STRONG>");
+define('MEMBER_TOTAL_LINKS_2', "</STRONG> Mails von diesem Mitglied best&auml;tigt werden!");
+define('ADMIN_DEL_UNCONFIRMED_LINKS', "Alle unbest&auml;tigten Mails l&ouml;schen");
+define('ADMIN_LINKS_DELETED', "Links f&uuml;r unbest&auml;tigte Mails wurden gel&ouml;scht!");
+define('ADMIN_DEL_LINK_SUBJ', "Ihr unbestaetigen Mails wurden geloescht!");
+define('MEMBER_LINKS_LEFT_1', "Sie haben <STRONG>");
+define('MEMBER_LINKS_LEFT_2', "</STRONG> unbest&auml;tigte Mails. Bitte best&auml;tigen Sie diese zuerst. Wenn Sie weniger als <STRONG>");
+define('MEMBER_LINKS_LEFT_3', "</STRONG> Mails im Account haben, k&ouml;nnen Sie auch wieder buchen.");
+define('TODAY', "Heute");
+define('MEMBER_PROFILE_LOCKED_1', "Sie k&ouml;nnen Ihren Account erst am <STRONG>");
+define('MEMBER_PROFILE_LOCKED_2', "</STRONG> wieder &auml;ndern!");
+define('MEMBER_HAS_ZERO_MMAILS', "Sie haben Ihren Empfang auf <STRONG>Urlaub</STRONG> stehen! Bitte stellen Sie unter &quot;Profildaten &auml;ndern&quot; den Empfang h&ouml;her ein!");
+define('REF_CLIX', "Clicks");
+define('REF_VIEWS', "Views");
+define('REFBANNER_TOTALS', "Gesamt");
+define('DAYS', "Tage");
+define('GUESTS_ONLINE', "G&auml;ste");
+define('MEMBERS_ONLINE', "Mitglieder");
+define('ADMINS_ONLINE', "Administratoren");
+define('USER_NOW_ONLINE', "User Online");
+define('ADMIN_ONLINE_DETAILS', "Detailierte Statistik f&uuml;r alle Besucher");
+define('_REFID', "Ref-ID");
+define('_MODULE', "Modul");
+define('MENU_ACTION', "Hauptmen&uuml;");
+define('MENU_WHAT', "Untermen&uuml;");
+define('_IS_ADMIN', "Administrator");
+define('_IS_GUEST', "Gast");
+define('LAST_SEEN', "Zuletzt gesehen");
+define('ADMIN_TOTAL_PATCH_SIZES', "Gesamtgr&ouml;sse aller Patches");
+define('ADMIN_DELETE_BONUS_MAIL', "Obrige Bonus-Mail l&ouml;schen");
+define('ADMIN_DELETE_NORMAL_MAIL', "Obrige Normal-Mail l&ouml;schen");
+define('ADMIN_REALLY_DELETE_ALL_MAILS', "Wollen Sie wirklich alle Mails l&ouml;schen?");
+define('SURNAME_FAMILY', "Vor- und Nachname");
+define('ADMIN_TOTAL_REFS_1', "Das Mitglied <STRONG>");
+define('ADMIN_TOTAL_REFS_2', "</STRONG> hat bereits <STRONG>");
+define('ADMIN_TOTAL_REFS_3', "</STRONG> weitere(s) Mitglied(er) geworben, davon sind <STRONG>");
+define('ADMIN_TOTAL_REFS_4', "</STRONG> gesperrt oder nicht best&auml;tigt!");
+define('REFS_COUNT', "Refs");
+define('MEMBER_JOINED', "Beigetreten");
+define('ADMIN_EMAIL_DELETED', "E-Mail wurde aus dem System gel&ouml;scht.");
+define('_ALL', "alle");
+define('PROFILE_LAST_CHANGE', "Letzte &Auml;nderung");
+define('PROFILE_OUTDATED', "Haben Sie Neuigkeiten fuer uns?");
+define('PROFILE_NEVER_CHANGED', "Sie haben noch nie eine Aenderung durchgefuehrt!");
+define('PROFILE_UPDATED', "Profildaten wurden ge&auml;ndert!");
+define('NEW_PATCHES_AVAILABLE_1', "Neue Entwickler-Patches f&uuml;r Version <STRONG>");
+define('NEW_PATCHES_AVAILABLE_2', "</STRONG> verf&uuml;gbar!");
+define('SORT_BY', "Sortieren:");
+define('_OTHERS', "Andere");
+define('_ALL2', "Alle");
+define('WE_HAVE', "Wir haben");
+define('MEMBER_TEST_URL', "Zur beworbenen Seite");
+define('ADMIN_LOGS_DIR_404_1', "Das Verzeichnis mit den Zugriffslogb&uuml;chern konnte nicht gefunden werden! (<STRONG>");
+define('ADMIN_LOGS_DIR_404_2', "</STRONG>)");
+define('ADMIN_USAGE_DIR_404_1', "Das Verzeichnis mit den Webalizer-Statistiken konnte nicht gefunden werden! (<STRONG>");
+define('ADMIN_USAGE_DIR_404_2', "</STRONG>)");
+define('ADMIN_ENTER_REDIRECT_URL', "URL eingeben, wenn abgelehnt werden soll");
+define('ADMIN_ID_404_1', "ID <STRONG>");
+define('ADMIN_ID_404_2', "</STRONG> nicht gefunden!");
+define('ADMIN_ASSIGNED_ADMIN', "Zugewiesener Admin-Login");
+define('ADMIN_MEMBER_UID', "ID des Mitgliedes");
+define('ADMIN_TASK_TYPE', "Aufgabenbereich");
+define('ADMIN_TASK_CREATED', "Task erstellt");
+define('ADMIN_NO_ADMIN_ASSIGNED', "Kein Admin-Login zugewiesen!");
+define('ADMIN_TASK_IS_MEMBER_SUPPORT', "Support-Anfrage eines Mitgliedes");
+define('ADMIN_UNKNOWN_TASK_TYPE_1', "Unbekannter Task-Typ <STRONG>");
+define('ADMIN_UNKNOWN_TASK_TYPE_2', "</STRONG> im Task <STRONG>");
+define('ADMIN_UNKNOWN_TASK_TYPE_3', "</STRONG> erkannt!");
+define('ADMIN_TASK_SYSTEM_WELCOME', "Task-Management Ihres {!MT_WORD2!}");
+define('ADMIN_UNSELECT_ALL', "Alles abw&auml;hlen");
+define('ADMIN_ASSIGN_TASKS', "Bearbeiten");
+define('ADMIN_UNASSIGN_TASKS', "Zuweisung aufheben");
+define('ADMIN_REDIRECT_TASKS', "An uns weiterleiten");
+define('PATCHES_APPLIED', "Patches an der Datenbank durchgef&uuml;hrt!");
+define('PATCH_NOTES', "Bitte beachten Sie, dass wenn bei der Installation die SQL-Dateien nicht automatisch eingespielt werden konnten, dass sie auch hier nicht eingespielt worden sind! Sie m&uuml;ssen sie dann manuell einspielen.");
+define('LATEST_PATCH_INSTALLED', "Es wurde bereits die Datenbank aktualisiert!");
+define('PATCH_LISTED', "Anbei eine Liste der noetigen Dateien:");
+define('NO_PATCHES_APPLIED', "Keine Patches wurden ausgef&uuml;hrt!");
+define('LOAD_URL_ERROR_1', "Konnte nicht weiterleiten, da bereits Kopfinformationen gesendet wurden! <A href=\"");
+define('LOAD_URL_ERROR_2', "\">Bitte klicken Sie hier</A>, um zur URL zu kommen.<BR>
+<BR>
+Danke.");
+define('GUEST_STATS', "Statistiken unseres {!MT_WORD2!}");
+define('GUEST_STATS_MONTHLY', "Mitgliederverteilung auf Kalendermonate");
+define('GUEST_STATS_CATS', "Mitgliederverteilung auf Mail-Kategorien");
+define('GUEST_STATS_MALES', "Angemeldete M&auml;nner");
+define('GUEST_STATS_FEMALES', "Angemeldete Frauen");
+define('GUEST_STATS_TONLINE', "Heute Online gewesen");
+define('GUEST_STATS_YONLINE', "Gestern Online gewesen");
+define('GUEST_STATS_TREGISTER', "Heutige Anmeldungen");
+define('GUEST_STATS_YREGISTER', "Gestrige Anmeldungen");
+define('CHANGE_MENUS', "&Auml;ndern");
+define('CHANGE_MEMBER_MENU', "Verdecken, anzeigen, deaktivieren, aktivieren des Mitgliedsmen&uuml;s");
+define('CHANGE_MENU_1', "&Auml;ndern von <STRONG>");
+define('CHANGE_MENU_2', "</STRONG> Men&uuml;eintr&auml;gen");
+define('IS_VISIBLE', "Wird angezeigt");
+define('IS_ACTIVE', "Aktiviert");
+define('CHANGE_ENTRIES', "&Auml;nderungen durchf&uuml;hren");
+define('BASE_URL_NOTE', "Ohne abschliessendem /!");
+define('ADMIN_WRONG_CALL', "Falscher Aufruf einer Aktion oder des Scriptes. Bitte navigieren Sie links weiter.");
+
+// Description of all months
+$MONTH_DESCR = array(
+       '01' => "Januar",
+       '02' => "Februar",
+       '03' => "M&auml;rz",
+       '04' => "April",
+       '05' => "Mai",
+       '06' => "Juni",
+       '07' => "Juli",
+       '08' => "August",
+       '09' => "September",
+       '10' => "Oktober",
+       '11' => "November",
+       '12' => "Dezember",
+);
+//
+define('ADMIN_IS_SYSTEM_TASK', "System-Task");
+define('ADMIN_TASK_IS_EXTENSION', "Erweiterung-Management");
+define('ADMIN_NEW_EXT_SUBJ', "Neue Erweiterung gefunden");
+define('ADMIN_TASK_SUBJECT', "Aufgabenbetreff");
+define('ADMIN_TASK_TEXT', "Aufgabentext");
+define('ADMIN_REGISTER_EXTENSION', "Registrieren");
+define('ADMIN_SELECTED_TASKS_ASSIGN', "Zum Bearbeiten ausgew&auml;hlte Tasks");
+define('ADMIN_REG_FAILED_INVALID', "Registrierung fehlgeschlagen: Ung&uuml;tige ID &uuml;bermittelt!");
+define('ADMIN_REG_FAILED_ID_404', "Registrierung fehlgeschlagen: Erweiterung-ID nicht auffindbar!");
+define('ADMIN_REG_FAILED_404', "Registrierung fehlgeschlagen: Erweiterung nicht auffindbar!");
+define('ADMIN_REG_FAILED_ASSIGED', "Registrierung fehlgeschlagen: Sie sind nicht zugewiesen oder Task ist veraltet!");
+define('ADMIN_NO_EXTENSION_REGISTERED', "Derzeit haben Sie keine Erweiterung in Ihrem {!MT_WORD!} registriert.");
+define('ADMIN_EXTENSION_REGISTERED', "Erweiterung wurde in Ihrem {!MT_WORD!} registriert.");
+define('ADMIN_EXT_ALREADY_REGISTERED', "Erweiterung bereits registriert!");
+define('ADMIN_DELETE_ENTRIES', "L&ouml;schen");
+define('ADMIN_REGISTERED_EXTENSIONS', "Registrierte Erweiterungen");
+define('ADMIN_EXT_NAME', "Erweiterungsname");
+define('ADMIN_EXT_LANG', "Sprachdatei");
+define('ADMIN_EXT_ADMIN', "Admin-Bereich?");
+define('ADMIN_EXT_ACTIVE', "Aktiviert?");
+define('ADMIN_DE_ACTIVATE', "De-/Aktivieren");
+define('ADMIN_SEARCH_NEW_EXTENSIONS', "Nach neuen Erweiterungen suchen...");
+define('JACKPOT_POINTS', "{!POINTS!} im Jackpot");
+define('CLICK_RATE', "Klickrate");
+define('GUEST_STATS_MODULES', "Klicks in allen Modulen (TOP-10)");
+define('GUEST_STATS_MEMBERS', "Statistiken &uuml;ber unsere Mitglieder");
+define('EDIT_REFBANNER', "Werbebanner editieren");
+define('REQUEST_CONFIRM_LINK_TITLE', "Best&auml;tigungslink erneut anfordern");
+define('GUEST_CONFIRM_LINK_NOTE', "Sie haben Ihren Best&auml;tigungslink verlegt? Kein Problem, hier k&ouml;nnen Sie ihn erneut anfordern. Geben Sie dazu einfach Ihre angemeldete eMail-Adresse an. Der Link wird Ihnen dann per Mail zugesandt.");
+define('REQUEST_CONFIRM_LINK', "Erneut anfordern");
+define('LOGIN_ID_CONFIRMED', "Sie haben bereits Ihre E-Mail Adresse best&auml;tigt!");
+define('CONFIRM_LINK_SENT', "Der Best&auml;tigungslink wurde an Ihre E-Mail Adresse ausgesandt.");
+define('REQUEST_CONFIRM_LINK_SUBJ', "Anforderung Ihres Bestaetigunglinkes");
+define('EMAIL_ADDY_404', "Unter der angegebenen E-Mail Adresse konnten wir keinen Account finden! Bitte versuchen Sie es erneut.");
+define('SELECT_NONE', "Keine/s/r");
+define('ADMIN_SETUP_STATS_TITLE', "Einstellungen an den Gast-Statistiken");
+define('ADMIN_GSTATS_MEMBERS', "Mitglieder-Statistik zuerst");
+define('ADMIN_GSTATS_MODULES', "TOP10-Modul-Statistik zuerst");
+define('ADMIN_GSTATS_INACTIVE', "Gast-Statistik deaktivieren");
+define('ADMIN_GSTATS_MEMBERS_NOTE', "Die Mitglieder-Statistik zeigt an, wie viele Mitglieder Ihr {!MT_WORD!} hat und wie viele Mitglieder welche Kategorien ausgew&auml;hlt haben.");
+define('ADMIN_GSTATS_MODULES_NOTE', "Zeigt Klicks in den 10 am h&auml;ufigsten angeklickten Gast- und Mitgliedsmodulen an.");
+define('ADMIN_GSTATS_INACTIVE_NOTE', "Deaktiviert die Gast-Statistiken komplett.");
+define('DELETE_PAYMENT', "Verg&uuml;tungen l&ouml;schen");
+define('REF_PAYOUT', "Anzahl zu best&auml;tigender Mails, bevor die {!POINTS!} gutgeschrieben werden");
+define('REF_PAYOUT_NOTE', "0 = Verg&uuml;tung erfolgt sofort.");
+define('ADMIN_EXT_NO_INFO_FOUND', "Keine Informationen zu dieser Erweiterung gefunden!");
+define('ADMIN_EXT_NEW_FOUND_TITLE', "Neue Erweiterungen gefunden");
+define('ADMIN_EXT_DOWNLOAD_LINK', "Download-Link");
+define('ADMIN_EXT_FILE_SIZE', "Downloadgr&ouml;&szlig;e");
+define('ADMIN_EXT_FILE_CTIME', "Erweiterung erstellt am");
+define('ADMIN_EXT_FILE_VERSION', "Version (alt)");
+define('ADMIN_EXT_TOTAL_FSIZE', "Downloadgesamtgr&ouml;sse");
+define('ADMIN_EXT_TOTAL_FOUND', "Gesamt gefundene Erweiterungen");
+define('ADMIN_EXT_ALREADY_INSTALLED_1', "Alle <STRONG><U>");
+define('ADMIN_EXT_ALREADY_INSTALLED_2', "</U></STRONG> gefundenen Erweiterungen sind bereits installiert!");
+define('ADMIN_EXT_NOTHING_FOUND', "Keine Erweiterungen auf dem Server gefunden!");
+define('ADMIN_EXT_VERSION', "Version");
+define('ADMIN_TASK_IS_EXTENSION_UPDATE', "Erweiterung-Update");
+define('ADMIN_EXTENSION_UPDATED', "Erweiterung aktualisiert!");
+define('ADMIN_UPDATE_EXT_SUBJ', "Erweiterung-Update installiert");
+define('MEMBER_ORDER_PAGE1_INTRO', "Mailbuchung - Schritt 1 von 4: PLZ eingeben");
+define('MEMBER_ORDER_PAGE2_INTRO', "Mailbuchung - Schritt 2 von 4: Daten eingeben");
+define('MEMBER_ORDER_PAGE3_INTRO', "Mailbuchung - Schritt 3 von 4: Frame-Killer Test und Absenden");
+define('MEMBER_ORDER_PAGE4_INTRO', "Mailbuchung - Schritt 4 von 4: Vielen Dank!");
+define('MEMBER_ORDER_PAGE1_NOTE', "Geben Sie hier die ersten ein bis drei Stellen der Postleitzahl ein, in der gesendet werden soll.<BR>
+<BR>
+Beispiele:
+<UL>
+  <LI><STRONG>1</STRONG> : Sendet nur an Mitglieder, deren Postleitzahl mit 1 anf&auml;ngt.</LI>
+  <LI><STRONG>12</STRONG> : Sendet nur an Mitglieder, deren Postleitzahl mit 12 anf&auml;ngt.</LI>
+  <LI><STRONG>123</STRONG> : Sendet nur an Mitglieder, deren Postleitzahl mit 123 anf&auml;ngt.</LI>
+</UL>
+<BR>
+Oder geben Sie nichts ein, wenn Sie diese Option nicht w&uuml;nschen.");
+define('MEMBER_ENTER_ZIP_CODE', "PLZ eingeben");
+define('ORDER_PAGE_2', "Weiter zur Seite 2");
+define('UNCONFIRMED_USERIDS', "Unbest./Gesperrte Accounts");
+define('LOCKED_POINTS', "Nicht verg&uuml;tete {!POINTS!}");
+define('LAST_UPDATE', "Letzte Profil&auml;nderung");
+define('LAST_PROFILE_SENT', "Erinnerung gesendet");
+define('USER_REF_PAYOUT', "Noch zu best. Mails");
+define('DISPLAY_REFID', "Ref-ID anzeigen");
+define('SORT_NAVIGATION', "Sortieren");
+define('HIGHER', "H&ouml;her");
+define('LOWER', "Niedriger");
+define('MEMBER_SETTINGS_SAVED', "Einstellungen gespeichert.");
+define('REMOTE_ADDR_TIMEOUT', "Ein Mitglied ist mit Ihrer IP-Nummer <U>".getenv('REMOTE_ADDR')."</U> bereits registriert! Bitte kontaktieren Sie uns, wenn dies ein Fehler sein sollte!");
+define('IP_TIMEOUT', "IP-Zeitsperre");
+define('ADMIN_PAYOUT_NOT_INSTALLED', "payout-Erweiterung nicht installiert!");
+define('ADMIN_WERNIS_NOT_INSTALLED', "wernis-Erweiterung nicht installiert!");
+define('ADMIN_ADD_MAX_VALUE', "Neuen Maximal-Wert hinzuf&uuml;gen");
+define('ADMIN_CANNOT_CHECK_VERSION', "Konnte Versionsnummer nicht abgleichen! (Fehlende Internet-Verbindung? Server ist down?)");
+define('GUEST_STATS_DEACTIVATED', "Statistiken sind deaktiviert.");
+define('GUEST_TOPTEN_STATS', "Die am h&auml;ufigsten angeklickten Men&uuml;s");
+define('GUEST_TOP_GUEST_STATS', "Gastmen&uuml;");
+define('GUEST_TOP_MEMBER_STATS', "Mitgliedmen&uuml;");
+define('ADMIN_EDIT_BANNER_URL', "Banner-URL &auml;ndern");
+define('ADMIN_EDIT_ALTERNATE', "Alternativen Text &auml;ndern");
+define('ADMIN_EDIT_POINT_SETTINGS', "Einstellungen an Mailverg&uuml;tungen");
+define('ADMIN_CONFIG_DIRECT_PAY', "Sollen die &quot;erklickten&quot; {!POINTS!} nach der Anmeldung direkt oder nach eingestellter Anzahl von Mails verg&uuml;tet werden?");
+define('CHANGE_PROFILE', "Profil &auml;ndern");
+define('ADMIN_PASS1', "Passwort eingeben");
+define('ADMIN_PASS2', "Passwortbest&auml;tigung");
+define('ADMIN_EDIT_USER_PROFILE', "Editieren eines Mitgliederaccountes");
+define('ADMIN_EDIT_USER_PASSWORD_NOTE', "Geben Sie nur zweimal das Passwort ein, wenn Sie es &auml;ndern wollen. Wollen Sie nur Daten &auml;ndern, geben Sie bitte keines ein.");
+define('POINTS_LOCKED', "Noch wartende {!POINTS!}");
+define('ADMIN_TASK_INFOS', "Infos");
+define('NICKNAME', "Nickname");
+define('EXT_NICKNAME_404', "<FONT class=\"note\">nickname-Erweiterung fehlt!</FONT>");
+define('ADMIN_PROBLEM_NO_MENU', "Konnte keine Men&uuml;eintr&auml;ge finden!");
+define('USER_REF_404', "Dieses Mitglied hat keine Referals gemacht.");
+define('USER_NICKNAME', "Nickname");
+define('ADMIN_EXT_AUTOPURGE_404', "autopurge nicht installiert!");
+define('ADMIN_EXT_BONUS_OUTDATED_1', "Ihre Bonus-Erweiterung ist veraltet! Version <U>");
+define('ADMIN_EXT_BONUS_OUTDATED_2', "</U> oder h&ouml;her wird ben&ouml;tigt!");
+define('ADMIN_EXT_BONUS_404', "bonus nicht installiert!");
+define('ADMIN_CONFIG_POINTS_DIRECT', "Direkt auszahlen");
+define('ADMIN_CONFIG_POINTS_MAILS', "Nach best. Mails");
+define('MEMBER_MORE_POINTS_NEEDED', "Sie haben nicht ausreichend {!POINTS!} &uuml;brig, um die Buchung durchzuf&uuml;hren! Bitte stellen Sie weniger Empf&auml;nger oder eine kleinere Mailart ein.");
+define('CANNOT_SEND_ADMIN_MAILS', "Fehler bei Mailversand an Admin!");
+define('MAILID_CLICK_BUTTON', "Einmal den Button anklicken");
+define('ADMIN_ADD_POINTS_TO_ALL', "Allen Mitgliedern {!POINTS!} gutschreiben");
+define('ADMIN_ALL_POINTS_ADDED', "Allen Mitgliedern wurden die {!POINTS!} gutgeschrieben!");
+define('EMAILS_PAGENAV', "Seite");
+define('_IS_CURRENT_HOME', "Liegt in Home");
+define('_IS_NEW_HOME', "In Home setzen");
+define('ADMIN_CONFIG_HOME', "Legen Sie hier die neue Home-Seite fest");
+define('HOME_ACTION', "Funktion");
+define('HOME_BOTTOM_NOTE', "Es werden nur aktive Men&uuml;punkte aus dem Gasthauptmen&uuml; (main) angezeigt.");
+define('ADMIN_EXT_CSSFILE', "CSS?");
+define('ADMIN_EDIT', "&Auml;ndern");
+define('ADMIN_EDIT_EXTENSIONS', "&Auml;ndern von Erweiterungen");
+define('ADMIN_EXT_CHANGED', "Erweiterungen ge&auml;ndert.");
+define('POOL_DELETED', "Bereinigt");
+define('ONLINE_TIMEOUT_IS_1', "Die Liste zeigt die Besucher der letzten <STRONG>");
+define('ONLINE_TIMEOUT_IS_2', "</STRONG> an.");
+define('ADMIN_CONFIG_EXTENSIONS_SETTINGS', "Erweiterungs-Management konfigurieren");
+define('ADMIN_VERBOSE_SQL', "SQL-Anweisungen beim Registrieren/Updates/Entfernen ausgeben");
+define('ADMIN_REMOVING_THESE_EXTENSIONS', "Diese Erweiterungen werden deinstalliert");
+define('ADMIN_REMOVE_EXTENSIONS', "Erweiterungen jetzt entfernen");
+define('ADMIN_SQLS_EXECUTED_ON_REMOVAL', "Beim Entfernen ausgef&uuml;hrte SQL-Anweisungen");
+define('ADMIN_NO_ADDIONAL_SQLS', "Keine weiteren SQL-Anweisungen zum Ausf&uuml;hren!");
+define('ADMIN_SQLS_EXECUTED_ON_UPDATE', "Beim Aktualisieren ausgef&uuml;hrte SQL-Anweisungen");
+define('ADMIN_SQLS_EXECUTED_ON_REGISTER', "Beim Registrieren ausgef&uuml;hrte SQL-Anweisungen");
+define('ADMIN_UNKNOWN_FIELD_TYPE_1', "Unbekannter Datentyp <STRONG>");
+define('ADMIN_UNKNOWN_FIELD_TYPE_2', "</STRONG> erkannt!");
+define('ADMIN_ADD_POINTS_TO_USER', "Einem Mitglied {!POINTS!} gutschreiben");
+define('MEMBER_ORDER_DELETED', "Ihre Mailbuchung wurde soeben geloescht");
+define('ADMIN_CALL_NOT_DIRECTLY', "Bitte diesen Men&uuml;punkt nicht direkt aufrufen!");
+define('ADMIN_UNCONFIRMED_POOL_MISSING_1', "Es fehlen Daten im Sende-Pool zur Mail-ID <U>");
+define('ADMIN_UNCONFIRMED_POOL_MISSING_2', "</U> !");
+define('ADMIN_UNCONFIRMED_STATS_MISSING_1', "Es fehlen Daten in der User-Statistik zur Mail-ID <U>");
+define('ADMIN_UNCONFIRMED_STATS_MISSING_2', "</U> !");
+define('ADMIN_UNCONFIRMED_INVALID_LINK', "Ung&uuml;tigen Link aufgerufen oder Mail ist nicht mehr vorhanden!");
+define('ADMIN_UNCONFIRMED_NO_LINK_LEFT', "Diese Mailbuchung wurde komplett best&auml;tigt!");
+define('ADMIN_CONFIG_REFMODE', "Verg&uuml;tungsmodus f&uuml;r einmalige Referral-Gutschrift");
+define('ADMIN_CONFIG_REFMODE_REF', "&Uuml;ber das Ref-System");
+define('ADMIN_CONFIG_REFMODE_DIRECT', "Nur User selber aufbuchen");
+define('ADMIN_HEADER_LOCK_ACCOUNT_1', "Mitgliedsaccount <U>");
+define('ADMIN_HEADER_LOCK_ACCOUNT_2', "</U> sperren");
+define('ADMIN_HEADER_UNLOCK_ACCOUNT_1', "Mitgliedsaccount <U>");
+define('ADMIN_HEADER_UNLOCK_ACCOUNT_2', "</U> freigeben");
+define('ADMIN_HEADER_DEL_ACCOUNT_1', "Mitgliedsaccount <U>");
+define('ADMIN_HEADER_DEL_ACCOUNT_2', "</U> l&ouml;schen");
+define('ADMIN_TEXT_DEL_ACCOUNT_1', "M&ouml;chten Sie den User <STRONG>");
+define('ADMIN_TEXT_DEL_ACCOUNT_2', "</STRONG> nun <STRONG>unwiederruflich</STRONG> l&ouml;schen? Bitte geben Sie einen Grund der L&ouml;schung mit an!");
+define('ADMIN_TEXT_LOCK_ACCOUNT_1', "M&ouml;chten Sie den User <STRONG>");
+define('ADMIN_TEXT_LOCK_ACCOUNT_2', "</STRONG> nun sperren? Bitte geben Sie einen Grund der Sperrung mit an!");
+define('ADMIN_TEXT_UNLOCK_ACCOUNT_1', "M&ouml;chten Sie den User <STRONG>");
+define('ADMIN_TEXT_UNLOCK_ACCOUNT_2', "</STRONG> nun freischalten? Sie k&ouml;nnen auch optional einen Text mit angeben.");
+define('ADMIN_EDIT_HOME_TARGET', "Home-Seite festlegen");
+define('ADMIN_EDIT_HOME_SETTINGS', "Einstellungen an Eingangsseite");
+define('ADMIN_CONFIG_HOME_TITLE', "Einstellungen an der Home-Seite");
+define('ADMIN_CONFIG_INDEX_DELAY', "Verz&ouml;gerung bevor weitergeleitet wird");
+define('ADMIN_INDEX_MANUAL_FORWARD', "Klicken leitet weiter");
+define('ADMIN_INDEX_NO_DELAY', "Sofort weiterleiten");
+define('ADMIN_CONTINUE_TO_CONFIG', "Weiter zu den Einstellungen");
+define('ADMIN_CONFIG_INDEX_COOKIE', "Wie lange soll der Besucher die Eingangsseite nicht mehr sehen?");
+define('BONUS_EXTENSION_UPGRADE_1', "Bitte aktualisieren Sie Ihre Bonus-Erweiterung auf Version <U>");
+define('BONUS_EXTENSION_UPGRADE_2', "</U> oder neuer!");
+define('_ON', "an");
+define('CLICK_STATISTICS', "Mail-Statistik");
+define('ADMIN_SELECT_DEF_REFID', "Standart Referral-ID bei Anmeldung &uuml;ber keinen Ref-Link");
+define('ADMIN_SELECT_REFID_TARGRT', "Ziel-Seite des Referral-Linkes");
+define('ADMIN_REF_TARGET_REGISTER', "Zur Anmeldeseite");
+define('ADMIN_REF_TARGET_INDEX', "Zur Eingangsseite");
+define('ADMIN_THEME_ALREADY_INSTALLED', "Theme bereits installiert.");
+define('ADMIN_INSTALL_THEME', "Theme importieren");
+define('ADMIN_NO_THEMES_FOUND', "Keine Themes gefunden!");
+define('THEME_UNIX', "Uni*-Name");
+define('THEME_NAME', "Theme-Titel");
+define('THEME_AUTHOR', "Author");
+define('THEME_URL', "Download-URL");
+define('THEME_VERSION', "Versionsnummer");
+define('THEME_INSTALL', "Import-Status");
+define('THEME_ACTIVE', "Aktiviert?");
+define('ADMIN_THEME_LIST_NOTE', "Diese Liste zeigt alle auf Ihrem Server abgelegten Themes sortiert nach dem Uni*-Namen an.");
+define('ADMIN_CHANGE_STATUS_THEME', "Themes de-/aktivieren");
+define('ADMIN_THEME_NO_OUTPUT', "Problem: Kein Text zum Ausgeben!");
+define('ADMIN_THEMES_UPDATED', "Themes wurden aktualisiert.");
+define('ADMIN_THEMES_DELETED', "Themes wurden gel&ouml;scht.");
+define('ADMIN_THEME_IMPORTED_1', "Theme <U>");
+define('ADMIN_THEME_IMPORTED_2', "</U> wurde importiert.");
+define('CURR_THEME_IS_1', "Aktuelles Design: <STRONG>");
+define('CURR_THEME_IS_2', "</STRONG>");
+define('ADMIN_NO_THEME_INSTALLED_WARNING', "Kein Design installiert!");
+define('CHANGE_THEME', "Design &auml;ndern");
+define('ADMIN_SET_AS_NEW_THEME', "Dieses Theme als Standart-Theme setzen");
+define('ADMIN_THEME_NEW_DEFAULT_THEME', "Durch Anklicken des Uni*-Names wird das jeweilige Theme als Standart-Theme gesetzt, welches Ihre Besucher sofort sehen werden.");
+define('ENTRY_DELETE', "Eintrag l&ouml;schen");
+define('ADMIN_NO_MENUS_FOUND', "Keine Men&uuml;s gefunden!");
+define('ADMIN_CONFIG_TITLE_SETTINGS', "Einstellungen am Seitentitel");
+define('ADMIN_CONFIG_TITLE_DECORATIONS', "Titeldekorationen");
+define('ADMIN_TITLE_ENABLE_DECORATIONS', "Dekorationen aktivieren");
+define('ADMIN_TITLE_ENABLE_MODULE_TITLE', "Modul-Titel in Seiten titel einblenden");
+define('ADMIN_TITLE_ENABLE_WHAT_TITLE', "Titel vom Men&uuml;punkt einblenden");
+define('ADMIN_TITLE_LEFT', "Linke Seite");
+define('ADMIN_TITLE_MIDDLE', "Mittleres Trennzeichen");
+define('ADMIN_TITLE_RIGHT', "Rechte Seite");
+define('ADMIN_MENU_PROBLEM_TITLE', "Problem im Admin-Men&uuml;system erkannt");
+define('CONFIRM_ACCOUNT', "Account best&auml;tigen");
+define('CONFIRMATION_LINK', "Hier best&auml;tigen");
+define('CLICK_NOW', "Klick!");
+define('MAILID_LINK', "Best.-Link");
+define('UNKNOWN_MAILID_CODE_1', "Unbekannter Fehler-Code <STRONG>");
+define('UNKNOWN_MAILID_CODE_2', "</STRONG> erkannt!");
+define('EXTENSION_PROBLEM_EXT_INACTIVE', "Erweiterung <strong>%s</strong> deaktiviert! Fehler: Kann nicht fortfahren!");
+define('CHANGE_GUEST_MENU', "Verdecken, anzeigen, deaktivieren, aktivieren des Gastmen&uuml;s");
+define('IS_LOCKED', "Ist gesperrt");
+define('ADMIN_REMOVE_STATS_ENTRY', "Hier klicken, um Mitgliederstatistik zu entfernen!");
+define('ADMIN_USER_STATS_REMOVED', "Mitgliederstatistiken entfernt.");
+define('MAIL_WILL_NEVER_EXPIRE', "Bestaetigungslink verfaellt nicht.");
+define('MEMBER_ENTER_MORE_RECEIVERS', "Geben Sie mindestens ein Empf&auml;nger ein!");
+define('MEMBER_NO_MORE_RECEIVERS_FOUND', "Es konnten nicht ausreichend genug empfangsbereite Mitglieder gefunden werden.");
+define('ADMIN_USER_PROFILE_TITLE', "Mitgliedsprofil aufrufen");
+define('LIST_UNCONFIRMED_MEMBER_LINKS', "Unbest&auml;tigte Maillinks eines Mitgliedes auflisten");
+define('MEMBER_ENTER_MORE_MIN_RECEIVERS_1', "Geben Sie mehr als <U>");
+define('MEMBER_ENTER_MORE_MIN_RECEIVERS_2', "</U> Empf&auml;nger ein!");
+define('NO_TEMPLATE_SUPPLIED', "Keinen Template-Namen uebergeben! Fehler im Script erkannt. Bitte den Webmaster (".WEBMASTER.") verstaendigen!");
+define('_OR', "oder");
+define('GUEST_NEW_PASSWORD_SEND', "Neues Passwort ist zu Ihrem Postfach unterwegs!");
+define('UNDER_CONSTRUCTION', "Funktion noch im Aufbau!");
+define('ADMIN_SUB_SUBJ', "{!POINTS!}-Abzug durch unsere Admins");
+define('ADMIN_POINTS_SUBTRACTED', "{!POINTS!} wurden erfolgreich abgezogen!");
+define('ADMIN_ALL_POINTS_SUBTRACTED', "Allen Mitgliedern wurden {!POINTS!} abgezogen!");
+define('ADMIN_SUB_POINTS_FROM_USER', "Abzug von {!POINTS!} eines Mitgliedes");
+define('ENTER_POINTS_SUB', "Abzuziehende {!POINTS!}");
+define('ENTER_SUB_REASON', "Grund des Abzuges");
+define('ADMIN_SUB_POINTS', "{!POINTS!} abziehen");
+define('ADMIN_SUB_POINTS_FROM_ALL', "Allen Mitgliedern {!POINTS!} abziehen");
+define('PATCH_DESCRIPTION', "Beschreibung zum Patch");
+define('DOWNLOAD_ZIP', "Direktes ZIP-Archiv downloaden");
+define('DOWNLOAD_BZIP2', "Direkten Tar-Ball downloaden");
+define('DOWNLOAD_FROM_SERVER', "&Uuml;ber unseren Server downloaden");
+define('DOWNLOAD_NOW', "Jetzt downloaden!");
+define('ADMIN_MEMBER_STATS_TITLE', "Einstellungen an der Mitglieder-Statistik");
+define('ADMIN_MEMBER_STATS_LIMIT', "Anzahl Mailbuchungen pro Seite");
+define('MEMBER_NO_THEMES_FOUND', "Keine Design gefunden!");
+define('MEMBER_THEME_LIST_NOTE', "Wenn Sie Fragen zu einem der Designs haben, wenden Sie sich bitte an den jeweiligen Autor!");
+define('MEMBER_SAVE_THEME', "Design speichern");
+define('MEMBER_THEME_LIST_USAGE', "W&auml;hlen Sie unten ein neues Design aus und klicken Sie auf <STRONG>Theme abspeichern</STRONG>, das Design wird dann nur f&uuml;r Sie dauerhaft ge&auml;ndert.");
+define('MEMBER_THEME_SAVED', "Design gespeichert.");
+define('TASK_NO_TITLE', "Aufgabe ohne SQL-Anweisungen");
+define('UNCONFIRMED_LOCKED', "Noch zu best. Mails");
+define('CONFIRMED_MAILS', "Bereits best. Mails");
+define('_YEARS'  , "Jahre");
+define('_MONTHS' , "Monate");
+define('_WEEKS'  , "Wochen");
+define('_DAYS'   , "Tage");
+define('_HOURS'  , "Stunden");
+define('_MINUTES', "Minuten");
+define('_SECONDS', "Sekunden");
+define('SORT_ASCENDING', "Aufsteigend");
+define('SORT_DESCENDING', "Absteigend");
+define('INVALID_EMAIL_ADDRESS_ENTERED', "Ung&uuml;tige EMail-Adresse eingegeben!");
+define('NEVER_HAPPENED', "Nie");
+define('WRONG_DB_SELECTED', "Falsche oder fehlende Datenbank ausgew&auml;hlt!");
+define('NO_CONFIG_FOUND', "Keine Konfigurationsdaten gefunden! (Leere Datenbank? Oder haben Sie die SQL-Dateien in andere Datenbank eingespielt?)");
+define('NO_CONFIG_FOUND_TITLE', "Keine Konfigurationsdaten gefunden!");
+define('SORTING_KEY', "Sortierung");
+define('ADMIN_ADD_BANNER', "Neuen Banner hinzuf&uuml;gen");
+define('ADMIN_ENTER_BANNER_URL', "Banner-URL");
+define('ADMIN_ENTER_ALTERNATE_TEXT', "Alternativen Text");
+define('ADMIN_SELECT_BANNER_ACTIVE', "Ist der Banner aktiv?");
+define('ADMIN_SUBMIT_BANNER', "Banner hinzuf&uuml;gen");
+define('ADMIN_LIST_REFERRALS_1', "Referrals des Mitgliedes ");
+define('ADMIN_LIST_REFERRALS_2', " in erster Ebene");
+define('ADMIN_LIST_REFERRALS_NOTE', "<STRONG>&Auml;nderung:</STRONG> Klicken Sie die User-ID an und gelangen Sie zum Mitgliederprofil. Klicken Sie Anzahl Referrals an, werden die Referrals des jeweiligen Mitgliedes aufgelistet.");
+define('ADMIN_NORMAL_MAIL_ALREADY_DELETED', "Mitglieder-Mail bereits gel&ouml;scht!");
+define('INITIAL_RELEASE', "Erste Alpha-Version");
+define('NO_UPDATE_NOTES', "Keine Update-Hinweise gefunden!");
+define('MYSQL_QUERY_STRING', "MySQL-Abfragebefehl war:");
+// Until this line goes en.ph (please translate it to english!)
+define('MEMBER_NO_MAILS_IN_POOL', "Sie haben noch keine Mailbuchungen aufgegeben! Es k&ouml;nnen somit Ihnen auch keine angezeigt werden.");
+define('ADMIN_CONFIG_ADMIN_MENU_HEADER', "Einstellungen am Adminmen&uuml;");
+define('ADMIN_SELECT_MENU_TYPE', "Men&uuml;typ ausw&auml;hlen");
+define('ADMIN_MENU_NEW', "Neues Men&uuml;system mit &quot;logischen Bereichen&quot;");
+define('ADMIN_MENU_OLD', "Herk&ouml;mliches Men&uuml;system links im Browser");
+define('ADMIN_BACK_TO_GUEST_MENU', "Zum Gastmen&uuml; zur&uuml;ck...");
+define('ADMIN_LOGOUT_NOW', "Aus dem Admin-Bereich ausloggen");
+define('ADMIN_LOGOUT_NOTE', "Loggen Sie sich immer aus dem Admin-Bereich aus, wenn Sie beabsichten, ihn nicht mehr zu benutzen. Auch sollten Sie dies <STRONG>auf jedem Fall</STRONG> in einem Internet-Cafe vor Verlassen des Platzes tun!");
+define('ADMIN_LOGOUT_QUESTION', "Wollen Sie sich jetzt ausloggen?");
+define('ADMIN_LA_MODE', "Men&uuml;typ");
+define('ADMIN_ACCOUNT_NOREFS_404', "Es wurden keine Mitgliederaccounts ohne Werber gefunden, oder ver&auml;ndern Sie die Aussortierung!");
+define('ADMIN_SALT_LENGTH', "L&auml;nge des Zufallshashes f&uuml;r alle Passw&ouml;rter");
+define('MEMBER_PASS_SALTED', "Passwort wegen Update geaendert");
+define('MEMBER_PASSWORD_ERROR', "Fehler beim Abgleichen der Passw&ouml;rter!");
+define('ADMIN_PASS_SALTED', "Admin-Password wegen Update geaendert");
+define('ADMIN_SALT_LENGTH_NOTE', "Um f&uuml;r alle Accounts (Mitglieder/Admins derzeit) neue Passw&ouml;rter zu generieren, lassen Sie das Eingabefeld <STRONG>{--ADMIN_SALT_LENGTH--}</STRONG> leer oder geben Sie eine <STRONG>0</STRONG> ein! <STRONG>Vorsicht!</STRONG> Sie m&uuml;ssen sich dann anschliessend erneut einloggen!");
+define('LOGIN_FAILED_GENERAL', "Genereller Loginfehler! Bitte kontaktieren Sie den Webmaster!");
+define('DEFAULT_MT_WORD', "Mailtausch");
+define('DEFAULT_MT_WORD2', "Mailtausches");
+define('DEFAULT_POINTS', "Punkte");
+define('EXTENSION_PROBLEM_NOT_INSTALLED', "Erweiterung <u>%s</u> nicht installiert.");
+define('PROBLEM_POINTS_OVERVIEW_UNAVAILABLE', "{!POINTS!}-&Uuml;bersicht derzeit nicht verf&uuml;gbar.");
+define('ADMIN_NOTHING_SELECTED_CHANGE', "Sie haben nichts zum &Auml;ndern des Status ausgew&auml;hlt.");
+define('TEMPLATE_CONTENT', "Template-Content:");
+define('TEMPLATE_DATA', "Template-Daten:");
+define('ADMIN_LINK_DEL_USER_TITLE', "Mitglied l&ouml;schen (mit Abfrage)");
+define('ADMIN_LINK_EDIT_USER_TITLE', "Mitglied editieren");
+define('ADMIN_LINK_LOCK_USER_TITLE', "Mitglied sperren");
+define('ADMIN_LINK_UNLOCK_USER_TITLE', "Mitglied entsperren");
+define('ADMIN_LINK_ADD_POINTS_TITLE', "{!POINTS!} aufbuchen");
+define('ADMIN_LINK_SUB_POINTS_TITLE', "{!POINTS!} abziehen");
+define('LOGFILE_NOT_READABLE_1', "Das Logbuch <u>");
+define('LOGFILE_NOT_READABLE_2', "</u> konnte nicht geladen werden.");
+define('UNKNOWN_LOGFILE_FORMAT_1', "Das Logbuch <u>");
+define('UNKNOWN_LOGFILE_FORMAT_2', "</u> hat ein ung&uuml;ltiges oder nicht unterst&uuml;tztes Format.");
+define('MESSAGE_HEADER', "Hinweis");
+define('ADMIN_ALPHA_SELCTION', "Alphabetische Suche:");
+define('CATEGORY_NOT_SAVED', "Kategorie <u>%d</u> nicht gespeichert.");
+define('USER_ACCOUNT_404', "User-Account <u>%d</u> nicht gefunden.");
+define('ADMIN_CONTACT_USER', "Mitglied kontaktieren");
+define('CONTACT_USER', "Mitglied kontaktieren");
+define('ADMIN_USER_CONTACTED', "Das Mitglied wurde per EMail kontaktiert.");
+define('ADMIN_CONTACT_USER_SUBJECT', "Nachricht vom {!MT_WORD!} {!MAIN_TITLE!}");
+//
+?>
diff --git a/0.2.1/inc/language/doubler_de.php b/0.2.1/inc/language/doubler_de.php
new file mode 100644 (file)
index 0000000..a318cfc
--- /dev/null
@@ -0,0 +1,145 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2005 *
+ * ===============                              Last change: 02/12/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : doubler_de.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_EDIT_DOUBLER_SETTINGS', "Einstellungen am {!POINTS!}-Verdoppler");
+define('ADMIN_DOUBLER_CHARGE', "Prozentuale Geb&uuml;hr zum Verdoppeln");
+define('ADMIN_DOUBLER_JACKPOT', "Soll der Jackpot zum Verdoppeln verwendet werden?");
+define('ADMIN_DOUBLER_SEND_MODE', "Aussendemodus der Benachrichtigungsmails");
+define('ADMIN_DOUBLER_SEND_DIRECT', "Aussenden, sobald gen&uuml;gend {!POINTS!} zur Auszahlung der Verdoppelung bereit stehen.");
+define('ADMIN_DOUBLER_SEND_RESET', "Erst beim t&auml;glichen Reset pr&uuml;fen, ob Verdoppelungen ausgezahlt werden k&ouml;nnen.");
+define('ADMIN_DOUBLER_TIMEOUT', "Verweildauer ausgezahlter Verdoppelungen in der Datenbank");
+define('ADMIN_DOUBLER_USERID', "Mitglieder-Account zur Verdoppelung verwenden");
+define('ADMIN_DOUBLER_DISPLAY_SETTINGS', "Anzeige-Einstellungen f&uuml;r Anzahl Eintr&auml;ge");
+define('ADMIN_DOUBLER_DISPLAY_NEW', "Anzahl ersten X neuen Eintr&auml;ge");
+define('ADMIN_DOUBLER_DISPLAY_PAY', "Anzahl ersten X vor Auszahlung stehender Verdoppelungen");
+define('ADMIN_DOUBLER_DISPLAY_OLD', "Anzahl ersten X bereits ausgezahlter Verdoppelungen");
+define('ADMIN_DOUBLER_REFERRAL', "Prozentuale Referral-Verg&uuml;tung");
+define('ADMIN_DOUBLER_MINIMUM', "Minimum {!POINTS!} die verdoppelt werden sollen");
+define('ADMIN_DOUBLER_MAXIMUM', "Maximum {!POINTS!} die verdoppelt werden sollen");
+define('ADMIN_DOUBLER_LEFT', "Auf dem Mitgliedsaccount nach Verdoppelung Minimum-{!POINTS!}-Guthaben");
+define('ADMIN_DOUBLER_OWN', "{!POINTS!}-Guthaben des Verdopplers zur Auszahlung verwenden");
+define('ADMIN_DOUBLER_GROUP_SENT', "Auf Anzahl durchf&uuml;hrbare Auszahlungen warten, damit an diese ausgezahlt werden kann. (Gruppenauszahlung!)");
+define('ADMIN_DOUBLER_MAX_SENT', "Pro Klick/Reset auf Auszahlungsf&auml;higkeit hin zu testende Verdopplungen");
+define('ADMIN_DOUBLER_SENT_ALL', "Soll anstelle der Gruppenauszahlung alle m&ouml;glichen Auszahlungen durchgef&uuml;hrt werden?");
+define('ADMIN_DOUBLER_LIST_OVERVIEW', "Auflistung der Verdoppelungen - &Uuml;bersichtsseite");
+define('ADMIN_DOUBLER_LIST_ALREADY', "Bereits get&auml;tigte Auszahlungen");
+define('ADMIN_DOUBLER_LIST_WAITING', "Wartene Auszahlungen");
+define('ADMIN_DOUBLER_ALREADY_ALL', "Gesamt Auszahlungen");
+define('ADMIN_DOUBLER_ALREADY_DIRECT', "Direkte Auszahlungen");
+define('ADMIN_DOUBLER_ALREADY_REF', "Referral-Auszahlungen");
+define('ADMIN_DOUBLER_WAITING_ALL', "Gesamt wartend");
+define('ADMIN_DOUBLER_WAITING_DIRECT', "Direkte w. Auszahlungen");
+define('ADMIN_DOUBLER_WAITING_REF', "W. Referral-Auszahlungen");
+define('ADMIN_DOUBLER_PAYMENT_TIMEMARK', "Eingezahlt");
+define('ADMIN_DOUBLER_LIST_ALREADY_ALL', "Alle bereits ausgezahlten {!POINTS!}");
+define('ADMIN_DOUBLER_LIST_ALREADY_DIRECT', "Direkt ausgezahlte {!POINTS!}");
+define('ADMIN_DOUBLER_LIST_ALREADY_REF', "Ausgezahlte Referral-{!POINTS!}");
+define('ADMIN_DOUBLER_LIST_WAITING_ALL', "Alle wartenden {!POINTS!}-Auszahlungen");
+define('ADMIN_DOUBLER_LIST_WAITING_DIRECT', "Wartende Direkt-Auszahlungen");
+define('ADMIN_DOUBLER_LIST_WAITING_REF', "Wartende Referral-Auszahlungen");
+
+define('DOUBLER_TITLE', "Verdoppler");
+define('DOUBLER_ENTER_LOGIN_DATA', "Geben Sie hier Ihre Zugangsdaten ein:");
+define('DOUBLER_NOTE_FOR_PASSWORD', "Das Passwort wird nicht gespeichert.");
+define('DOUBLER_ENTER_POINTS', "{!POINTS!} zum Verdoppeln");
+define('DOUBLER_NOW', "Verdoppeln!");
+define('DOUBLER_ALREADY_PAYED_1', "Es wurden bereits");
+define('DOUBLER_ALREADY_PAYED_2', "ausgezahlt.");
+define('DOUBLER_MINIMUM_IS', "Mindestens");
+define('DOUBLER_MAXIMUM_IS', "verdoppeln, maximal");
+define('DOUBLER_HAVE_FUN', "Viel Spa&szlig;!");
+define('DOUBLER_POINTS_1', "Wenn Sie {!POINTS!} verdoppeln, kommen Sie diese nach Abzug von");
+define('DOUBLER_POINTS_2', "Betriebergeb&uuml;hr in einen Topf; bei Erreichen einer Verdopplung wird diese der Einzahlungsreihe nach, automatisch ausgef&uuml;hrt.");
+define('DOUBLER_EXAMPLE_1', "Beispiel: Einzahlung");
+define('DOUBLER_EXAMPLE_2', "Auszahlung:");
+define('DOUBLER_EXAMPLE_3', ", sobald Sie an der Reihe sind, ohne(*) ein Risiko einzugehen!");
+define('DOUBLER_FULL_PAYOUT', "100% Auszahlung");
+define('DOUBLER_REFERRAL_1', "Refverdienst: Es gibt");
+define('DOUBLER_REFERRAL_2', "Refverdienst. Wenn Sie {!POINTS!} auf dem Refkonto durch Werbung erwirtschaftet haben,");
+define('DOUBLER_REFERRAL_3', "(Wichtig! Maximal Verdoppelung darf nicht &uuml;berschritten werden)");
+define('DOUBLER_REFERRAL_4', "werden diese bei Ihrer n&auml;chsten Verdoppelung aufgeschlagen.");
+define('DOUBLER_REFERRAL_5', "Beispiel: Sie haben");
+define('DOUBLER_REFERRAL_6', "Refverdienst und verdoppeln");
+define('DOUBLER_REFERRAL_7', ", Sie bekommen - sobald Sie an der Reihe sind -");
+define('DOUBLER_REFERRAL_8', "zur&uuml;ck.");
+define('DOUBLER_TIMEOUT_1', "Es werden Eintr&auml;ge nicht &auml;lter als");
+define('DOUBLER_TIMEOUT_2', "angezeigt.");
+define('DOUBLER_REFERRAL_LINK', "Den Reflink erfahren Sie nach jeder Verdoppelung.");
+define('DOUBLER_NOT_YET_REGISTERED', "Noch nicht angemeldet?");
+define('DOUBLER_REGISTER_NOW', "Weiter zur Anmeldung!");
+define('DOUBLER_YOUR_ADVERTISING_HERE', "Hier k&ouml;nnte auch Ihre Werbung stehen:");
+define('DOUBLER_CONTACT_US', "Fragen Sie uns nach unseren Konditionen!");
+define('DOUBLER_FORM_404_LOGIN', "Login nicht eingegeben!");
+define('DOUBLER_FORM_404_PASSWORD', "Password nicht eingeben!");
+define('DOUBLER_FORM_404_POINTS', "Keine {!POINTS!} zum Verdoppeln eingegeben!");
+define('DOUBLER_FORM_404_NICKNAME', "Unbekannter Nickname eingegeben oder falsches Passwort!");
+define('DOUBLER_FORM_404_MEMBER', "Mitgliedsaccount nicht gefunden oder falsches Passwort!");
+define('DOUBLER_FORM_STATUS_UNCONFIRMED', "Bitte best&auml;tigen Sie erst Ihre EMail-Adresse. Den Best&auml;tigungslink k&ouml;nnen Sie <A href=\"".URL."/modules.php?module=index&amp;what=confirm\">hier erneut per EMail anfordern</A> !");
+define('DOUBLER_FORM_STATUS_LOCKED', "Ihr Account wurde von einem Administrator oder durch Urlaub gesperrt. Bitte <A href=\"".URL."/modules.php?module=index&amp;what=impressum\">melden Sie sich bei uns</A>, damit wir Ihren Account freischalten k&ouml;nnen!");
+define('DOUBLER_FORM_WRONG_PASS', "Passwort ist falsch!");
+define('DOUBLER_FORM_POINTS_MIN', "Zu wenig {!POINTS!} zum Verdoppeln eingegeben!");
+define('DOUBLER_FORM_POINTS_MAX', "Zu viele {!POINTS!} zum Verdoppeln eingegeben!");
+define('DOUBLER_FORM_NO_POINTS_LEFT', "Sie haben nicht ausreichend {!POINTS!} &uuml;brig!");
+define('DOUBLER_MEMBER_SUBJECT', "Gutschrift durch Verdoppelung");
+define('DOUBLER_PAYOUT_TIME_DIRECT', "Die Auszahlung erfolgt unmittelbar, nachdem gen&uuml;gend {!POINTS!} zusammengekommen sind, um Ihnen die Verdoppelung auszuzahlen.");
+define('DOUBLER_PAYOUT_TIME_RESET', "Abends um 00:00 Uhr jeden Tages wird gepr&uuml;ft, ob gen&uuml;gend {!POINTS!} zusammengekommen sind, um Ihnen die Verdoppelung auszuzahlen.");
+define('DOUBLER_NO_ENTRIES_FOUND', "Keine Eintr&auml;ge gefunden!");
+define('DOUBLER_TIMEMARK', "Auszahlungstag");
+define('DOUBLER_GENERAL_INFOS', "Allgemeine Informationen zum Verdoppeln");
+define('DOUBLER_ALREADY_PAYOUT', "Bereits an unsere Mitglieder ausgezahlte Betr&auml;ge");
+define('DOUBLER_REGISTER_ADVERT', "Weiter zur Anmeldung / Werbebuchung");
+define('DOUBLER_NEXT_PAYOUT', "Die als n&auml;chstes anstehenden Auszahlungen");
+define('DOUBLER_WANNA_TRY', "Wollen Sie mal ausprobieren?");
+define('DOUBLER_GUEST_NO_ENTRIES_FOUND', "In dieser Kategorie hat noch kein Mitglied einen Eintrag!");
+define('DOUBLER_MEMBER_NO_ENTRIES_FOUND', "In dieser Kategorie haben Sie noch keine Eintr&auml;ge!");
+define('DOUBLER_MEMBER_ALREADY_PAYOUT', "An Sie bereits ausgezahlte Verdoppelungen");
+define('DOUBLER_MEMBER_NEXT_PAYOUT', "Sie erhalten bald folgende Verdoppelungen ausgezahlt");
+define('DOUBLER_MEMBER_REF_PAYOUT', "Ihr Refferal-Verdienst");
+define('DOUBLER_MEMBER_YOUR_LINK', "Hier ist Ihr Verdoppler-Link");
+define('DOUBLER_MEMBER_LINK_NOTE', "<STRONG>Tipp:</STRONG> Nutzen Sie diesen zum Werben unseres {!MT_WORD2!}, um die <STRONG>{--__REF_VALUE--}%</STRONG> Referral-Verg&uuml;tung zu erhalten!");
+define('DOUBLER_MEMBER_YOUR_REFLINK', "Ihr Referral-Link zum Verdoppeln");
+define('DOUBLER_POINTS_LEFT_1', "Es stehen noch");
+define('DOUBLER_POINTS_LEFT_2', "zum Verdoppeln zur Verf&uuml;gung.");
+define('DOUBLER_USAGE_COUNTER_1', "Der Verdoppler wurde bereits");
+define('DOUBLER_USAGE_COUNTER_2', "mal genutzt.");
+
+//
+?>
diff --git a/0.2.1/inc/language/en.ph b/0.2.1/inc/language/en.ph
new file mode 100644 (file)
index 0000000..9c4d960
--- /dev/null
@@ -0,0 +1,749 @@
+define('GUEST_WRONG_ID_EMAIL', "Could not find account data. Possible reasons are a wrong Login ID or email address. Please try it again.");
+define('GUEST_NEW_PASS_1', "You or an other member");
+define('GUEST_NEW_PASS_2', "have requested a new password resently. Here is your new password:");
+define('YOUR_NEW_PASS', "New password");
+define('GUEST_NOT_THIS_REPORT', "If you have not requested this please contact us soon!\n\nBest regards,");
+define('GUEST_NEW_PASSWORD', "Your password request");
+define('LOGIN_UNKNOWN_CODE', "Unknown return code!");
+define('LOGIN_WRONG_PASS', "Wrong password entered.");
+define('LOGIN_WRONG_ID', "Your login ID is no longer valid.");
+define('LOGIN_ID_LOCKED', "Your account has been locked.");
+define('LOGIN_ID_UNCONFIRMED', "Please confirm your email address before proceding here!<BR>Have you lost your personal confirmation link? In left menu you can request it again!");
+define('LOGIN_NO_COOKIES', "Please switch on cookies for this mailer or lower your security settings in IE settings.");
+define('GUEST_REG_POINTS_1', "For your successfull registration we have added");
+define('GUEST_REG_POINTS_2', "{!POINTS!} to your account. As long as there are enough receivers left you can already send emails to other members.");
+define('GUEST_SELECT_LIFETIME', "How long do you want stay logged in?");
+define('LIFE_CLOSE_BROWSER', "Browser is closed");
+define('LIFE_HOURS', "Hour(s)");
+define('LIFE_DAYS', "Day(s)");
+define('LIFE_WEEKS', "Week(s)");
+define('LIFE_MONTHS', "Month(s)");
+define('LIFE_YEARS', "Year(s)");
+define('LANG_MEM_ONLY_1', "Only logged in members are allowed to access the module <U>");
+define('LANG_MEM_ONLY_2', "</U>.");
+define('MEMBER_404_ACTION_1', "The requested member action-module <U>");
+define('MEMBER_404_ACTION_2', "</U> was not found on this server.");
+define('_GUEST', "Guest");
+define('_UNKNOWN', "Unknown person");
+define('_ADMIN', "Administrator");
+define('LAST_ONLINE', "Your last online time was");
+define('LAST_MODULE', "Your last selected module was");
+define('MEMBER_EDIT_PROFILE', "Edit your profile");
+define('SEX', "Salutation");
+define('GUEST_SEX', "Salutation);
+define('SEX_M', "Mr.");
+define('SEX_F', "Mrs.");
+define('SEX_C', "Company");
+define('SAVE_CHANGES', "Save changes");
+define('MYDATA_NOTE', "Geben Sie nur bei <STRONG>Passwort</STRONG> Ihr aktuelles Passwort ein, wenn Sie nur Daten &auml;ndern wollen. Geben Sie bei <STRONG>Passwortbest&auml;tigung</STRONG> das neue Passwort erneut ein, wenn Sie Ihr aktuelles Passwort &auml;ndern wollen.");
+define('MEMBER_UPDATE_PWD_WRONG', "Bitte geben Sie Ihr aktuelles Passwort zum &Auml;ndern Ihrer Einstellungen ein. Wir haben dies zur Sicherheit unserer Mitglieder eingebaut.");
+define('MEMBER_HAVE_CHANGED_DATA', "Sie haben heute Ihr Benutzerprofil ge&auml;ndert.");
+define('YOUR_NEW_DATA', "Hier sind Ihre neuen Profildaten");
+define('PLEASE_NOTIFY_ABUSE_MYDATA', "Sollten Sie diese &Auml;nderungen nicht durchgef&uuml;hrt haben, benachrichten Sie uns bitte! (".WEBMASTER.")");
+define('MEMBER_UNKNOWN_MODE', "Unbekannter Modus erkannt");
+define('MEMBER_CHANGED_EMAIL', "Sie haben Ihre Email-Adresse ge&auml;ndert! Alte Adresse war");
+define('MEMBER_CHANGED_PASS', "Sie haben Ihr Passwort ge&auml;ndert.");
+define('MEMBER_CHANGED_DATA', "&Auml;nderung Ihrer Profildaten");
+define('MYDATA_MAIL_SENT', "Es ist eine Email zu Ihnen unterwegs.");
+define('ADMIN_CHANGED_DATA', "Profildaten geaendert");
+define('ADMIN_MEMBER_CHANGED_PROFILE', "Eines Ihrer Mitglieder hat seine Profildaten ge&auml;ndert!");
+define('MEMBER_UID', "Seine Login-ID lautet");
+define('LOGOUT_DONE', "Ausloggen abgeschlossen!");
+define('LOGOUT_FAILED', "Ausloggen fehlgeschlagen!");
+define('MEMBER_NO_CATS', "Es wurden bis jetzt noch keine Kategorien eingerichtet!");
+define('SELECT_CAT', "Mails aus Kategorie empfangen?");
+define('MEMBER_CATS_SAVED', "Kategorien gespeichert.");
+define('YOUR_PERSONAL_REFLINK', "Ihr pers&ouml;nlicher Ref-Link zum Werben neuer Mitglieder lautet");
+define('YOUR_REFCLICKS', "Klicks auf Ihren Referral-Link");
+define('CLICKS', "Klicks");
+define('YOU_REFERRAL_ONE', "Sie haben heute ein neues Mitglied f&uuml;r unseren {!MT_WORD!} geworben!\n\nHier sehen Sie genau, in welcher Ebene Sie ihn geworben haben:");
+define('YOU_THANX_REFERRAL', "Sie werden nun auch weiterhin {!POINTS!} &uuml;ber diese geworbene Person erhalten.\n\nVielen Dank f&uuml;r Ihr Mitwerben! Wir w&uuml;nschen Ihnen noch weiterhin viele neue Referrals!\n\nMit freundlichem Gruss,");
+define('POINTS_REF_REGISTER', "Referral-Pauschale und prozentual vom Anmeldebonus!");
+define('NO_REFLEVEL_LEFT', "Keine Referral-Ebenen mehr verf&uuml;gbar! Bitte melden Sie sich bei uns.");
+define('ENGINE', "{!MT_WORD!}-Engine");
+define('ADD_NEW_PAYMENT', "Neue Mailverg&uuml;tung hinzuf&uuml;gen");
+define('ENTER_PAY_TIME', "Wartezeit");
+define('ENTER_PAY_PAYMENT', "Verg&uuml;tete {!POINTS!}");
+define('ENTER_PAY_PRICE', "{!POINTS!}-Kosten");
+define('ENTER_PAY_TITLE', "Mailname");
+define('ADD_PAYMENT', "Mailverg&uuml;tung hinzuf&uuml;gen");
+define('EDIT_DEL_PAYMENT', "Mailverg&uuml;tung editieren / l&ouml;schen");
+define('PAY_TIME', "Wartezeit");
+define('PAY_PAYMENT', "Verg&uuml;tete {!POINTS!}");
+define('PAY_PRICE', "{!POINTS!}-Kosten");
+define('PAY_TITLE', "Mailname");
+define('EDIT_PAY', "Editeren");
+define('DEL_PAY', "L&ouml;schen");
+define('ADD_NEW_REFBANNER', "Neuen Banner hinzuf&uuml;gen");
+define('ENTER_URL', "Banner-URL");
+define('ENTER_ALTERNATE', "Alternativen Text");
+define('SELECT_VISIBLE', "Ist der Banner aktiv?");
+define('ADD_REFBANNER', "Banner hinzuf&uuml;gen");
+define('EDIT_DEL_REFBANNER', "Werbebanner editieren / l&ouml;schen");
+define('VIEWS', "Einblendungen");
+define('REF_URL', "Banner");
+define('REF_TITLE', "Alternativer Text");
+define('REF_CNTR', "Einblendungen");
+define('REF_VIS', "Banner aktiv?");
+define('POINTS_USED', "Verbrauchte {!POINTS!}");
+define('MEMBER_NO_POINTS', "Sie haben keine {!POINTS!} mehr zum Versenden &uuml;brig!");
+define('MEMBER_NO_PAYMENTS', "Der Admin diesen {!MT_WORD2!} hat noch keine Mailarten definiert!");
+define('MEMBER_POINTS_LEFT', "{!POINTS!}-Guthaben zum Mailversand &uuml;brig");
+define('SELECT_MAIL_TYPE', "Mailart ausw&auml;hlen");
+define('PLEASE_SELECT', "Bitte ausw&auml;hlen");
+define('PER_MAIL', "{!POINTS!} / Mail");
+define('PAYMENT', "{!POINTS!} Verg&uuml;tung");
+define('SELECT_CATEGORY', "Zielkategorie");
+define('USER_IN_CAT', "Empf&auml;nger");
+define('ENTER_RECEIVER', "Empf&auml;ngeranzahl");
+define('ENTER_SUBJECT', "Betreffzeile");
+define('ENTER_TEXT', "Werbetext");
+define('MEMBER_PLEASE_NOTE', "Bitte beachten Sie vor dem Absenden:");
+define('MEMBER_ENTER_URL', "URL");
+define('CONTINUE_FRAMETESTER', "Weiter zum Framekiller-Test");
+define('MEMBER_URL_TIME_LOCK', "Sie hatten bereits die selbe URL gebucht:");
+define('MEMBER_LAST_TLOCK', "Ihre letzte Buchung war am");
+define('CONFIG_URL_TLOCK', "Selbe URLs sind buchbar in");
+define('HOURS', "Stunden");
+define('MINS', "Minuten");
+define('SECS', "Sekunden");
+define('_AND', "und");
+define('UNKNOWN_CODE_1', "Es ist w&auml;hrend der Ausf&uuml;hrung ein unbekannter Fehler-Code <STRONG>");
+define('UNKNOWN_CODE_2', "</STRONG> enstanden, f&uuml;r den Sie vermutlich nicht verantwortlich sind. Bitte informieren Sie uns &uuml;ber diese Meldung!");
+define('MEMBER_TEXT_CONTAINS_URL', "Ihr Werbetext enth&auml;lt eine URL, dies ist in unserem {!MT_WORD!} nicht zul&auml;ssig. Bitte entfernen Sie diese aus Ihrem Text und versuchen Sie es erneut.");
+define('MEMBER_TEXT_OVERLENGTH', "Ihr Text hat die maximale Textl&auml;nge &uuml;berschritten. Bitte fassen Sie ihn etwas k&uuml;rzer.");
+define('MEMBER_SUBJ_CONTAINS_URL', "Ihre eingegebe Betreffzeile enth&auml;lt eine URL,  dies ist in unserem {!MT_WORD!} nicht zul&auml;ssig. Bitte entfernen Sie diese aus Ihrer Betreffzeile und versuchen Sie es erneut.");
+define('MEMBER_URL_BLACK_LISTED', "Ihre eingegebene URL wurde in unsere Ausschlussliste aufgenommen!");
+define('MEMBER_BLIST_TIME', "Datum der Sperrung war");
+define('MEMBER_SELECTED_MORE_RECS', "Sie haben f&uuml;r diese Kategorie zu viele Empf&auml;nger eingegeben!");
+define('MEMBER_GO_BACK', "Zur&uuml;ck zum Buchungsformular");
+define('MEMBER_DO_ORDER', "Mailbuchung jetzt durchf&uuml;hren");
+define('LOADER_NOT_WORKING', "Falls die Weiterleitung nicht automatisch in einer Sekunde klappen sollte,");
+define('LOADER_CLICK_HERE', "so kommen Sie hier zur externen Seite weiter");
+define('ADMIN_NEW_MAIL_IN_QUEUE', "Ein Mitglied hat soeben eine Mailbuchung durchgef&uuml;hrt!\n\nSeine Buchung befindet sich nun im Sende-Pool und wird automatisch in 100-Mail-Bloecken versand.\n\nHier sind nochmals seine Daten, gebuchter Text und URL zur Verifizierung");
+define('ADMIN_SECOND_MAIL', "Sie werden bald nochmals benachrichtig, sobald der Versand vollstaendig beendet wurde.");
+define('_CATEGORY_404', "Kategorie nicht gefunden!");
+define('_PAYMENT_404', "Payment-Typ nicht gefunden!");
+define('ORDERED_CATEGORY', "Gebuchte Kategorie");
+define('MEMBER_MAILTYPE', "Gebuchter Payment-Typ");
+define('MEMBER_SUBJECT', "Betreffzeile in den Mails");
+define('MEMBER_URL', "Gebuchte URL");
+define('MEMBER_NEW_MAIL_IN_QUEUE', "Ihre Mailbuchung befindet sich derzeit in Warteschleife und wird bald ausgesendet!\n\nHier sind nochmals Ihre Daten aus dem Buchungsformular");
+define('MEMBER_SECOND_MAIL', "Sobald Ihre Mailbuchung vollst&auml;ndig gesendet wurde, erhalten Sie eine zweite Mail! Sie k&ouml;nnen bereits eine weitere Mailbuchung durchf&uuml;hren!");
+define('ADMIN_AUTOSEND_INACTIVE', "\nDer Auto-Versand ist in Ihrem {!MT_WORD!} derzeit deaktiviert. Bitte loggen Sie sich in den Admin-Bereich ein und schalten Sie diese Mailbuchung frei!\n");
+define('ADMIN_AUTOSEND_ACTIVE', "\nDer Auto-Versand ist in Ihrem {!MT_WORD!} derzeit aktiviert. Die Mailbuchung wird aktiviert und dann automatisch versand.\n");
+define('MEMBER_AUTOSEND_INACTIVE', "\nDer Auto-Versand ist in unserem {!MT_WORD!} derzeit deaktiviert. Ihre Mailbuchung wird bald von einem Administrator ueberprueft und dann freigegeben.\n");
+define('MEMBER_AUTOSEND_ACTIVE', "\nDer Auto-Versand ist in unserem {!MT_WORD!} derzeit aktiviert. Ihr Mailbuchung wurde aktiviert und wird bald automatisch versant.\n");
+define('ADMIN_NEW_QUEUE', "Mailbuchung in Ihrem {!MT_WORD!}");
+define('MEMBER_NEW_QUEUE', "Vielen Dank fuer die Mailbuchung!");
+define('MEMBER_CONTINUE_AREA', "Weiter zum Mitgliedsbereich");
+define('MEMBER_THANX_ORDER', "Vielen Dank f&uuml;r Ihre Mailbuchung! Es ist eine Mail zu Ihnen unterwegs.");
+define('ADMIN_NO_MAILS_IN_POOL', "Es wurden noch keine Mailbuchungen aufgegeben, kann somit keine Mails anzeigen!");
+define('ADMIN_POOL_CONTENT', "Mailbuchungen im Sende-Pool (alle)");
+define('POOL_UNKNOWN', "Unbekannt");
+define('POOL_TEMP', "Neuer Auftrag");
+define('POOL_SEND', "Gesendet");
+define('POOL_NEW', "Wartet auf Versand");
+define('POOL_ADMIN', "Wartet auf Freischaltung");
+define('EMAIL_SENDER', "Versender");
+define('EMAIL_SUBJECT', "Betreffzeile");
+define('EMAIL_TEXT', "Gebuchter Text");
+define('EMAIL_PAYMENT', "Mailart");
+define('EMAIL_CATEGORY', "Gebuchte Kategorie");
+define('EMAIL_RECEIVERS', "Anzahl Empf&auml;nger");
+define('EMAIL_RUIDS', "User-IDs");
+define('EMAIL_POOL_TYPE', "Derzeitiger Status");
+define('EMAIL_TSEND', "Noch zu sendene Mails");
+define('EMAIL_URL', "Beworbene URL");
+define('EMAIL_URL_TEST', "URL testen");
+define('EMAIL_TIMESTAMP', "Gebucht am");
+define('GUEST_FRAMETESTER_TOP', "Sollte dieser Text verschwinden, enth&auml;lt Ihre Webseite einen Frame-Killer!");
+define('ADMIN_SELECT_EMAIL_EDIT', "Email ausw&auml;hlen, um diese zu editieren");
+define('RESET_SELECT', "Auswahl zur&uuml;cknehmen");
+define('ADMIN_EDIT_EMAIL', "Mailbuchung bearbeiten");
+define('ADMIN_CHANGE_EMAIL', "&Auml;nderungen speichern");
+define('EMAIL_EDIT_URL', "URL bearbeiten");
+define('EMAIL_EDIT_SUBJ', "Betreff bearbeiten");
+define('EMAIL_EDIT_TEXT', "Werbetext bearbeiten");
+define('ADMIN_UNLOCK_EMAILS', "Neue Mailbuchungen freischalten");
+define('EMAIL_ACCEPT', "Annehmen");
+define('EMAIL_REJECT', "Ablehnen und umleiten");
+define('CANNOT_RE_REGISTER_SESS', "Kann Sitzungs-Cookies nicht doppelt registrieren oder es liegt ein Script-Fehler vor!");
+define('ADMIN_MAIL_ACCEPTED', "Einer unserer Administratoren hat soeben Ihre Mailbuchung freigegeben. Sie wird von unserem System automatisch versendet! Bitte beachten Sie, dass dies ggf. zeitversetzt zu dieser Mail versendet wird. Hier sind nochmals URL und Betreff Ihrer Mailbuchung");
+define('ADMIN_THANX_ORDER', "Sie koennen den Versand-Fortschritt im Mitgliedsmenue unter \"Unbestaetigte Mails\" verfolgen. Sobald die Mail vollstaendig versendet wurde, erhalten Sie eine weitere Mail!");
+define('ADMIN_MAILS_ACTIVATED', "Die Mailbuchungen wurden in den Sende-Pool &uuml;bertragen und werden bald versand.");
+define('ADMIN_MAIL_REJECTED', "Einer unserer Administratoren hat soeben Ihre Mailbuchung abgelehnt. Bite beachten Sie unsere AGBs! Bei weiteren Verstoessen gegen unsere AGBs werden wir Ihre URL und ggf. auch Ihren Account sperren. Hier sind nochmals Ihre URL und Betreff Ihrer Mailbuchung");
+define('ADMIN_THANX_REJECTED', "Ihre Mailbuchung wurde somit gel&ouml;scht. Sollten Sie Fragen hierzu haben, so wenden Sie sich bitte an unseren Support.");
+define('ADMIN_REJECTED_URLS', "URLs ausw&auml;hlen, die in die Black-List aufgenommen werden sollen:");
+define('ADMIN_LOCK_URLS', "URLs in die Black-List aufnehmen");
+define('ADMIN_URLS_BLOCKED', "URLs wurden in die Black-List aufgenommen!");
+define('ADMIN_SENDING_DONE', "Eine gebuchte Mail wurde soeben vollstaendig ausgesendet. Das werbende Mitglied wurde darueber in Kenntnis gesetzt.");
+define('ADMIN_NOTIFY_DONE', "Sollte diese Buchung nicht Ihren AGBs entsprechen, loggen Sie sich bitte in den Admin-Bereich ein und aendern die Mail.");
+define('ADMIN_SUBJ_SEND_DONE', "Vollstaendig: Aussendung einer Werbebbuchung!");
+define('MEMBER_SENDING_DONE', "Ihre gebuchte Mail wurde soeben vollstaendig von unserem System versendet! Wir wuenschen Ihnen viel Erfolg mit Ihrer Werbebuchung!");
+define('MEMBER_NOTIFY_DONE', "Den weiteren Verlauf dieser Werbebuchung koennen Sie im Mitgliedsbereich unter Statistiken verfolgen!");
+define('MEMBER_SUBJ_SEND_DONE', "Ihre Werbebuchung wurde versandt");
+define('GUEST_SELECT_LEAST_CATS_1', "Bitte w&auml;hlen Sie mindestens <STRONG><BIG>");
+define('GUEST_SELECT_LEAST_CATS_2', "</BIG></STRONG> Kategorien aus. Anderfalls erfolgt keine Anmeldung!");
+define('MEMBER_POOL_CONTENT', "Ihre Mails im Sende-Pool");
+define('EMAIL_END_SEND', "Vollst&auml;ndig versendet");
+define('EMAIL_CONFIRMED', "Best&auml;tigt");
+define('EMAIL_PERCENT', "Klickrate");
+define('MEMBER_NO_MAILS_TO_CONFIRM', "Keine Mails &uuml;brig zum Best&auml;tigen!");
+define('MEMBER_SID', "Mail-ID");
+define('CONFIRM_LINK', "Best&auml;tigungslink");
+define('MAIL_ALREADY_CONFIRMED', "Mail bereits verguetet oder Link ist nicht mehr gueltig!");
+define('MAIL_STATS_404', "Konnte Daten aus der Statistik-Tabelle nicht laden!");
+define('USER_NOT_FOUND', "Mitgliedsdaten nicht gefunden! Sind Sie noch angemeldet?");
+define('UNKNOWN_STATUS', "Unbekannter Account-Status");
+define('ADMIN_UNCONFIRMED_ACCOUNTS', "Hier alle Accounts, deren Email-Adresse nicht best&auml;tigt ist");
+define('_UID', "User-ID");
+define('REMOTE_IP', "IP-Nummer");
+define('REF_UID', "Werber-ID");
+define('UNKNOWN_STATUS_1', "Unbekannter Status <STRONG>");
+define('UNKNOWN_STATUS_2', "</STRONG> erkannt!");
+define('ACCOUNT_STATUS', "Account-Status");
+define('ACCOUNT_UNCONFIRMED', "<SPAN class=\"admin_failed\">Unbest&auml;tigt</SPAN>");
+define('ACCOUNT_CONFIRMED', "<SPAN class=\"admin_green\">Best&auml;tigt</SPAN>");
+define('ACCOUNT_LOCKED', "Gesperrt");
+define('ADMIN_ALL_ACCOUNTS', "Alle Mitglieder-Accounts auflisten");
+define('ADMIN_NO_NONE_REGISTERED', "Ihre Suchkriterieren ergaben keine Treffer in der Mitgliederliste.");
+define('ADMIN_MEMBER_404_1', "Mitglieds-Account <STRONG>");
+define('ADMIN_MEMBER_404_2', "</STRONG> existiert nicht!");
+define('ADMIN_LAST_ONLINE', "Zuletzt aktiv");
+define('ADMIN_LAST_MODULE', "Letzte Aktion");
+define('RECEIVE_MAILS', "Kann Mails empfangen");
+define('REF_CLICKS', "Klicks auf Ref-Link");
+define('TOTAL_LOGINS', "Logins gesamt");
+define('USED_POINTS', "Verwendete {!POINTS!}");
+define('MAILS_SENT', "Mails versendet");
+define('HAS_JOINED', "Beigetreten am");
+define('TOTAL_POINTS', "{!POINTS!} gesamt");
+define('TOTAL_REFERRALS', "Referrals gesamt");
+define('ADMIN_MEMBER_FUNCTIONS', "Administrative Funktionen");
+define('ADMIN_DEL_USER', "L&ouml;schen");
+define('ADMIN_LOCK_USER', "Sperren");
+define('ADMIN_UNLOCK_USER', "Entsperren");
+define('ADMIN_ADD_POINTS', "{!POINTS!} aufbuchen");
+define('ADMIN_EDIT_USER', "&Auml;ndern");
+define('ADMIN_ALL_REFS', "Alle Refs auflisten");
+define('BIRTHDAY2', "Geburtstag");
+define('TOTAL_CATS', "Ausgew&auml;hlte Kategorien");
+define('ADMIN_GOTO_USERLIST', "Dieser Men&uuml;punkt kann nicht direkt aufgerufen werden. Bitte rufen Sie stattdessen <I><U>User auflisten</U></I> auf.");
+define('ADMIN_USER_UPDATED', "Das Mitgliedsaccount wurde aktualisiert!");
+define('ADMIN_LOCKED_YOUR_ACCOUNT', "Ihr Account wurde von einem unserer Administratoren gesperrt! Bitte halten Sie sich an unsere AGBs.");
+define('REASON_LOCKED', "Grund der Sperrung war");
+define('MEMBER_PLEASE_RESPECT', "Sollten Sie damit nicht einverstanden sein, so melden Sie sich bitte bei uns. Wir kommen dann in Kontakt mit Ihnen.");
+define('ADMIN_LOCKED_SUBJ', "Ihr Account wurde gesperrt!");
+define('ADMIN_UNLOCKED_SUBJ', "Ihr Account wurde wieder freigegeben!");
+define('ADMIN_UNLOCKED_YOUR_ACCOUNT', "Einer unserer Administratoren hat soeben Ihren Account wieder freigeben! Sie koennen sich nun wieder unter folgender URL einloggen:\n\n".URL."/login.php");
+define('REASON_UNLOCKED', "Nachricht vom Admin");
+define('ADMIN_WELCOME_BACK', "Bitte beachten Sie beim naechsten Mal auf unsere AGBs, damit Ihnen diese Unangenehmlichkeiten erspart bleiben.");
+define('ADMIN_DEL_ACCOUNT', "Loeschung Ihres Accounts!");
+define('ADMIN_DELETED_YOUR_ACCOUNT', "Einer unserer Administratoren hat soeben Ihren Account geloescht!");
+define('REASON_DELETE', "Grund der Loeschung war folgender");
+define('ADMIN_BYE_BYE', "Wir wuenschen Ihnen weiterhin noch alles Gute und koennen Sie vielleicht irgentwann einmal wieder begruessen.");
+define('ADMIN_ALL_CONFIRMED_EMAIL', "Alle Ihre Mitglieder haben ihre Email-Adresse best&auml;tigt! Keine Neuanmeldungen vorhanden.");
+define('GUEST_CONFIRM_SUBJ', "Bitte Ihre Email-Adresse bestaetigen!");
+define('MEMBER_ORDER_ACCEPTED', "Ihre Mailbuchung wurde freigeschaltet");
+define('MEMBER_ORDER_REJECTED', "Ihre Mailbuchung wurde abgelehnt");
+define('THANX_REFERRAL_ONE', "Vielen Dank fuer die Referral-Werbung!");
+define('ADMIN_SEND_MAIL', "Bonusmail versenden");
+define('ADMIN_BONUS_SEND', "Bonusmail wurde in den Sende-Pool eingef&uuml;gt!");
+define('ENTER_POINTS', "Verg&uuml;tung");
+define('ENTER_SECONDS', "Wartezeit");
+define('ADMIN_MORE_SELECTED', "Sie haben mehr Empf&auml;nger eingegeben, als das empfangsbereit sind!");
+define('ADMIN_BONUS_CONTENT', "Versendete Bonus-Mails");
+define('EMAIL_POINTS', "Verg&uuml;tung");
+define('EMAIL_SECONDS', "Wartezeit");
+define('POOL_ACTIVE', "Wird gerade versendet");
+define('ALL_MEMBERS', "Alle Mitglieder");
+define('ADMIN_SELECT_USERID', "Benuzter ausw&auml;hlen");
+define('ADMIN_SELECT_USER', "Benuzter ausw&auml;hlen");
+define('ENTER_POINTS_ADD', "{!POINTS!} zum Aufbuchen");
+define('ENTER_ADD_REASON', "Grund der Aufbuchung");
+define('ADMIN_ADDED_POINTS_1', "Einer unserer Administratoren hat Ihnen soeben");
+define('ADMIN_ADDED_POINTS_2', " {!POINTS!} gutgeschrieben!");
+define('ADMIN_ADDED_REASON', "Grund dazu war folgender");
+define('ADMIN_ADD_SUBJ', "{!POINTS!}-Gutschrift durch unsere Admins!");
+define('ADMIN_POINTS_ADDED', "{!POINTS!} wurden gutgeschrieben. Das Mitglied hat eine Mail erhalten!");
+define('MAILS_PER_DAY', "Mails / Tag");
+define('GUEST_CONFIRMED_DONE', "Danke f&uuml;r die Best&auml;tigung Ihrer Email-Adresse! Es ist eine Mail mit den Login-Daten zu Ihnen unterwegs.");
+define('VALIDATING_LOGIN', "Logindaten werden gepr&uuml;ft . . .");
+define('ADMIN_SEND_NL', "Newsletter versenden");
+define('NEWSLETTER_FROM', "Newsletter vom");
+define('MEMBER_ACCOUNT_LOCKED_UNC', "Kann keine {!POINTS!} gutschreiben, da Ihr Account gesperrt wurde!");
+define('MAIL_POSSIBLE_INVALID', "Konnte keine {!POINTS!} gutschreiben: Daten moeglicherweise beschaedigt!");
+define('MEMBER_COOKIES_DISABLED', "Kann nicht einloggen, da Cookies bei Ihnen deaktiviert sind.");
+define('ADMIN_DEL_COMPLETED', "Account wurde gel&ouml;scht! Die {!POINTS!} werden immer in den Jackpot transferiert!");
+define('NORMAL_MAIL_RPOBLEM', "Mail vom Mitgliedern bereits gel&ouml;scht");
+define('BONUS_MAIL_PROBLEM', "Bonus-Mail bereits gel&ouml;scht");
+define('MEMBER_BACK_JACKPOT', "{!POINTS!}-Rueckgutschrift");
+define('ADMIN_BACK_JACKPOT', "{!POINTS!}-Aufbuchung fuer Jackpot");
+define('MEDIA_DATA', "Mediendaten");
+define('USERS_TOTAL', "Mitglieder gesamt");
+define('USERS_MAX_MAILS', "Erreichbare Mitglieder");
+define('USERS_REC_PER_DAY', "Heute noch erreichbar");
+define('USERS_LINKS', "Unbest&auml;tigte Mails");
+define('USERS_STATS', "Werbebuchungen");
+define('USERS_SENT_MAILS', "Gesendete Mails");
+define('USERS_MAX_PER_DAY', "Versendbare Mails pro Tag");
+define('USERS_MAX_REC', "Heute versendbare Mails");
+define('EDIT_CATEGORIES', "Kategorien &auml;ndern");
+define('CATEGORY_ID', "Kategorie-ID");
+define('CAT_DESCRIPTION', "Kategoriebeschreibung");
+define('CHANGE_CATS', "&Auml;ndern");
+define('SORT_KEY', "Sortierung");
+define('CATEGORIES_SAVED', "Kategorien gespeichert...");
+define('CATEGORIES_DELETED', "Kategorien gel&ouml;scht...");
+define('DELETE_CATEGORIES', "Kategorien l&ouml;schen");
+define('REMOVE_CATS', "L&ouml;schen");
+define('EDIT_MRECEIVE', "Maximal-Werte editieren");
+define('DELETE_MRECEIVE', "Maximal-Werte l&ouml;schen");
+define('MRECEIVE_ID', "Max-Wert ID");
+define('MREC_VALUE', "Mails pro Tag");
+define('MREC_COMMENT', "Kommentar");
+define('CHANGE_MREC', "&Auml;ndern");
+define('REMOVE_MREC', "L&ouml;schen");
+define('MRECEIVE_SAVED', "Maximal-Werte gespeichert...");
+define('MRECEIVE_DELETED', "Maximal-Werte gel&ouml;scht...");
+define('EDIT_REF_DEPTHS', "Referral-Ebenen editieren");
+define('DELETE_REF_DEPTHS', "Referral-Ebenen l&ouml;schen");
+define('REF_DEPTHS_ID', "Ref-Level ID");
+define('CHANGE_REF', "&Auml;ndern");
+define('REMOVE_REF', "L&ouml;schen");
+define('REF_DEPTHS_SAVED', "Referral-Ebenen gespeichert...");
+define('REF_DEPTHS_DELETED', "Referral-Ebenen gel&ouml;scht...");
+define('EDIT_PAYMENT', "Mailverg&uuml;tungen editieren");
+define('PAYMENT_ID', "Verg&uuml;tungs-ID");
+define('CHANGE_PAY', "&Auml;ndern");
+define('REMOVE_PAY', "L&ouml;schen");
+define('REFERRALS', "Referrals");
+define('POINTS_SUM', "Gesamtsumme");
+define('NEW_VERSION_AVAILABLE', "Neue Version verf&uuml;gbar!");
+define('YOUR_VERSION_IS', "Installierte Version");
+define('ONLINE_VERSION_IS', "Verf&uuml;gbare Version");
+define('UPDATE_CREATE_TIME', "Update wurde erstellt");
+define('DOWNLOAD_NEW_VERSION', "Jetzt neue Version herunterladen!");
+define('NO_UPDATES_AVAILABLE', "Keine neuen Updates/Patches verf&uuml;gbar!");
+define('NEW_PATCHES_AVAILABLE', "Neue Patches verf&uuml;gbar!");
+define('PATCH_FNAME', "Download-Link");
+define('PATCH_CTIME', "Patch erstellt");
+define('PATCH_FSIZE', "Downloadgr&ouml;sse");
+define('KBYTES', "KBytes");
+define('DEFAULT_SUBJECT_LINE', "Klick-Mail von ".TITLE);
+define('MEBER_UPDATE_PWD_WRONG', "Sie haben das falsche Passwort eingegeben! Bitte nochmal versuchen!");
+define('ADMIN_MEM_NO_CATS_1', "Das Mitglied <U>");
+define('ADMIN_MEM_NO_CATS_2', "</U> hat keine Kategorien ausgew&auml;hlt!");
+define('USER_ID', "Mitglied");
+define('UNCONFIRMED_LINKS', "Unbest&auml;tigte Mails");
+define('ADMIN_MEMBER_LINKS_1', "Das Mitglied <U>");
+define('ADMIN_MEMBER_LINKS_2', "</U> hat alle seine Mails best&auml;tigt.");
+define('MEMBER_TOTAL_LINKS_1', "Es m&uuml;ssen noch <STRONG>");
+define('MEMBER_TOTAL_LINKS_2', "</STRONG> Mails von diesem Mitglied best&auml;tigt werden!");
+define('ADMIN_DEL_UNCONFIRMED_LINKS', "Alle unbest&auml;tigten Mails l&ouml;schen");
+define('ADMIN_LINKS_DELETED', "Links f&uuml;r unbest&auml;tigte Mails wurden gel&ouml;scht!");
+define('ADMIN_DEL_LINK_SUBJ', "Ihr unbestaetigen Mails wurden geloescht!");
+define('MEMBER_LINKS_LEFT_1', "Sie haben <STRONG>");
+define('MEMBER_LINKS_LEFT_2', "</STRONG> unbest&auml;tigte Mails. Bitte best&auml;tigen Sie diese zuerst. Wenn Sie weniger als <STRONG>");
+define('MEMBER_LINKS_LEFT_3', "</STRONG> Mails im Account haben, k&ouml;nnen Sie auch wieder buchen.");
+define('TODAY', "Heute");
+define('MEMBER_PROFILE_LOCKED_1', "Sie k&ouml;nnen Ihren Account erst am <STRONG>");
+define('MEMBER_PROFILE_LOCKED_2', "</STRONG> wieder &auml;ndern!");
+define('MEMBER_HAS_ZERO_MMAILS', "Sie haben Ihren Empfang auf <STRONG>Urlaub</STRONG> stehen! Bitte stellen Sie unter &quot;Profildaten &auml;ndern&quot; den Empfang h&ouml;her ein!");
+define('REF_CLIX', "Clicks");
+define('REF_VIEWS', "Views");
+define('REFBANNER_TOTALS', "Gesamt");
+define('DAYS', "Tage");
+define('GUESTS_ONLINE', "G&auml;ste");
+define('MEMBERS_ONLINE', "Mitglieder");
+define('ADMINS_ONLINE', "Administratoren");
+define('USER_NOW_ONLINE', "User Online");
+define('ADMIN_ONLINE_DETAILS', "Detailierte Statistik f&uuml;r alle Besucher");
+define('_REFID', "Ref-ID");
+define('_MODULE', "Modul");
+define('MENU_ACTION', "Hauptmen&uuml;");
+define('MENU_WHAT', "Untermen&uuml;");
+define('_IS_ADMIN', "Administrator");
+define('_IS_GUEST', "Gast");
+define('LAST_SEEN', "Zuletzt gesehen");
+define('ADMIN_TOTAL_PATCH_SIZES', "Gesamtgr&ouml;sse aller Patches");
+define('ADMIN_DELETE_BONUS_MAIL', "Obrige Bonus-Mail l&ouml;schen");
+define('ADMIN_DELETE_NORMAL_MAIL', "Obrige Normal-Mail l&ouml;schen");
+define('ADMIN_REALLY_DELETE_ALL_MAILS', "Wollen Sie wirklich alle Mails l&ouml;schen?");
+define('SURNAME_FAMILY', "Vor- und Nachname");
+define('ADMIN_TOTAL_REFS_1', "Das Mitglied <STRONG>");
+define('ADMIN_TOTAL_REFS_2', "</STRONG> hat bereits <STRONG>");
+define('ADMIN_TOTAL_REFS_3', "</STRONG> weitere(s) Mitglied(er) geworben, davon sind <STRONG>");
+define('ADMIN_TOTAL_REFS_4', "</STRONG> gesperrt oder nicht best&auml;tigt!");
+define('REFS_COUNT', "Refs");
+define('MEMBER_JOINED', "Beigetreten");
+define('ADMIN_EMAIL_DELETED', "E-Mail wurde aus dem System gel&ouml;scht.");
+define('_ALL', "alle");
+define('PROFILE_LAST_CHANGE', "Letzte &Auml;nderung");
+define('PROFILE_OUTDATED', "Haben Sie Neuigkeiten fuer uns?");
+define('PROFILE_NEVER_CHANGED', "Sie haben noch nie eine Aenderung durchgefuehrt!");
+define('PROFILE_UPDATED', "Profildaten wurden ge&auml;ndert!");
+define('NEW_PATCHES_AVAILABLE_1', "Neue Entwickler-Patches f&uuml;r Version <STRONG>");
+define('NEW_PATCHES_AVAILABLE_2', "</STRONG> verf&uuml;gbar!");
+define('SORT_BY', "Sortieren");
+define('_OTHERS', "Andere");
+define('_ALL2', "Alle");
+define('WE_HAVE', "Wir haben");
+define('MEMBER_TEST_URL', "Zur beworbenen Seite");
+define('ADMIN_LOGS_DIR_404_1', "Das Verzeichnis mit den Zugriffslogb&uuml;chern konnte nicht gefunden werden! (<STRONG>");
+define('ADMIN_LOGS_DIR_404_2', "</STRONG>)");
+define('ADMIN_USAGE_DIR_404_1', "Das Verzeichnis mit den Webalizer-Statistiken konnte nicht gefunden werden! (<STRONG>");
+define('ADMIN_USAGE_DIR_404_2', "</STRONG>)");
+define('ADMIN_ENTER_REDIRECT_URL', "URL eingeben, wenn abgelehnt werden soll");
+define('ADMIN_ID_404_1', "ID <STRONG>");
+define('ADMIN_ID_404_2', "</STRONG> nicht gefunden!");
+define('ADMIN_ASSIGNED_ADMIN', "Zugewiesener Admin-Login");
+define('ADMIN_MEMBER_UID', "ID des Mitgliedes");
+define('ADMIN_TASK_TYPE', "Aufgabenbereich");
+define('ADMIN_TASK_CREATED', "Task erstellt");
+define('ADMIN_NO_ADMIN_ASSIGNED', "Kein Admin-Login zugewiesen!");
+define('ADMIN_TASK_IS_MEMBER_SUPPORT', "Support-Anfrage eines Mitgliedes");
+define('ADMIN_UNKNOWN_TASK_TYPE_1', "Unbekannter Task-Typ <STRONG>");
+define('ADMIN_UNKNOWN_TASK_TYPE_2', "</STRONG> im Task <STRONG>");
+define('ADMIN_UNKNOWN_TASK_TYPE_3', "</STRONG> erkannt!");
+define('ADMIN_TASK_SYSTEM_WELCOME', "Task-Management Ihres {!MT_WORD2!}");
+define('ADMIN_UNSELECT_ALL', "Alles abw&auml;hlen");
+define('ADMIN_ASSIGN_TASKS', "Bearbeiten");
+define('ADMIN_UNASSIGN_TASKS', "Zuweisung aufheben");
+define('ADMIN_REDIRECT_TASKS', "An uns weiterleiten");
+define('PATCHES_APPLIED', "Patches an der Datenbank durchgef&uuml;hrt!");
+define('PATCH_NOTES', "Bitte beachten Sie, dass wenn bei der Installation die SQL-Dateien nicht automatisch eingespielt werden konnten, dass sie auch hier nicht eingespielt worden sind! Sie m&uuml;ssen sie dann manuell einspielen.");
+define('LATEST_PATCH_INSTALLED', "Es wurde bereits die Datenbank aktualisiert!");
+define('PATCH_LISTED', "Anbei eine Liste der noetigen Dateien:");
+define('NO_PATCHES_APPLIED', "Keine Patches wurden ausgef&uuml;hrt!");
+define('LOAD_URL_ERROR_1', "Konnte nicht weiterleiten, da bereits Kopfinformationen gesendet wurden! <A href=\"");
+define('LOAD_URL_ERROR_2', "\">Bitte klicken Sie hier</A>, um zur URL zu kommen.<BR>
+<BR>
+Danke.");
+define('GUEST_STATS', "Statistiken unseres {!MT_WORD2!}");
+define('GUEST_STATS_MONTHLY', "Mitgliederverteilung auf Kalendermonate");
+define('GUEST_STATS_CATS', "Mitgliederverteilung auf Mail-Kategorien");
+define('GUEST_STATS_MALES', "Angemeldete M&auml;nner");
+define('GUEST_STATS_FEMALES', "Angemeldete Frauen");
+define('GUEST_STATS_TONLINE', "Heute Online gewesen");
+define('GUEST_STATS_YONLINE', "Gestern Online gewesen");
+define('GUEST_STATS_TREGISTER', "Heutige Anmeldungen");
+define('GUEST_STATS_YREGISTER', "Gestrige Anmeldungen");
+define('CHANGE_MENUS', "&Auml;ndern");
+define('CHANGE_MEMBER_MENU', "Verdecken, anzeigen, deaktivieren, aktivieren des Mitgliedsmen&uuml;s");
+define('CHANGE_MENU_1', "&Auml;ndern von <STRONG>");
+define('CHANGE_MENU_2', "</STRONG> Men&uuml;eintr&auml;gen");
+define('IS_VISIBLE', "Wird angezeigt");
+define('IS_ACTIVE', "Aktiviert");
+define('CHANGE_ENTRIES', "&Auml;nderungen durchf&uuml;hren");
+define('BASE_URL_NOTE', "Ohne abschliessendem /!");
+define('ADMIN_WRONG_CALL', "Falscher Aufruf einer Aktion oder des Scriptes. Bitte navigieren Sie links weiter.");
+
+// Description of all months
+$MONTH_DESCR = array(
+       '01' => "Januar",
+       '02' => "Februar",
+       '03' => "M&auml;z",
+       '04' => "April",
+       '05' => "Mai",
+       '06' => "Juni",
+       '07' => "Juli",
+       '08' => "August",
+       '09' => "September",
+       '10' => "Oktober",
+       '11' => "November",
+       '12' => "Dezember",
+);
+//
+define('ADMIN_IS_SYSTEM_TASK', "System-Task");
+define('ADMIN_TASK_IS_EXTENSION', "Erweiterung-Management");
+define('ADMIN_NEW_EXT_SUBJ', "Neue Erweiterung gefunden");
+define('ADMIN_TASK_SUBJECT', "Aufgabenbetreff");
+define('ADMIN_TASK_TEXT', "Aufgabentext");
+define('ADMIN_REGISTER_EXTENSION', "Registrieren");
+define('ADMIN_SELECTED_TASKS_ASSIGN', "Zum Bearbeiten ausgew&auml;hlte Tasks");
+define('ADMIN_REG_FAILED_INVALID', "Registrierung fehlgeschlagen: Ung&uuml;tige ID &uuml;bermittelt!");
+define('ADMIN_REG_FAILED_ID_404', "Registrierung fehlgeschlagen: Erweiterung-ID nicht auffindbar!");
+define('ADMIN_REG_FAILED_404', "Registrierung fehlgeschlagen: Erweiterung nicht auffindbar!");
+define('ADMIN_REG_FAILED_ASSIGED', "Registrierung fehlgeschlagen: Sie sind nicht zugewiesen oder Task ist veraltet!");
+define('ADMIN_NO_EXTENSION_REGISTERED', "Derzeit haben Sie keine Erweiterung in Ihrem {!MT_WORD!} registriert.");
+define('ADMIN_EXTENSION_REGISTERED', "Erweiterung wurde in Ihrem {!MT_WORD!} registriert.");
+define('ADMIN_EXT_ALREADY_REGISTERED', "Erweiterung bereits registriert!");
+define('ADMIN_DELETE_ENTRIES', "L&ouml;schen");
+define('ADMIN_REGISTERED_EXTENSIONS', "Registrierte Erweiterungen");
+define('ADMIN_EXT_NAME', "Erweiterungsname");
+define('ADMIN_EXT_LANG', "Sprachdatei");
+define('ADMIN_EXT_ADMIN', "Admin-Bereich?");
+define('ADMIN_EXT_ACTIVE', "Aktiviert?");
+define('ADMIN_DE_ACTIVATE', "De-/Aktivieren");
+define('ADMIN_SEARCH_NEW_EXTENSIONS', "Nach neuen Erweiterungen suchen...");
+define('JACKPOT_POINTS', "{!POINTS!} im Jackpot");
+define('CLICK_RATE', "Klickrate");
+define('GUEST_STATS_MODULES', "Klicks in allen Modulen (TOP-10)");
+define('GUEST_STATS_MEMBERS', "Statistiken &uuml;ber unsere Mitglieder");
+define('EDIT_REFBANNER', "Werbebanner editieren");
+define('REQUEST_CONFIRM_LINK_TITLE', "Best&auml;tigungslink erneut anfordern");
+define('GUEST_CONFIRM_LINK_NOTE', "Sie haben Ihren Best&auml;tigungslink verlegt? Kein Problem, hier k&ouml;nnen Sie ihn erneut anfordern. Geben Sie dazu einfach Ihre angemeldete eMail-Adresse an. Der Link wird Ihnen dann per Mail zugesandt.");
+define('REQUEST_CONFIRM_LINK', "Erneut anfordern");
+define('LOGIN_ID_CONFIRMED', "Sie haben bereits Ihre E-Mail Adresse best&auml;tigt!");
+define('CONFIRM_LINK_SENT', "Der Best&auml;tigungslink wurde an Ihre E-Mail Adresse ausgesandt.");
+define('REQUEST_CONFIRM_LINK_SUBJ', "Anforderung Ihres Bestaetigunglinkes");
+define('EMAIL_ADDY_404', "Unter der angegebenen E-Mail Adresse konnten wir keinen Account finden! Bitte versuchen Sie es erneut.");
+define('SELECT_NONE', "Keine/s/r");
+define('ADMIN_SETUP_STATS_TITLE', "Einstellungen an den Gast-Statistiken");
+define('ADMIN_GSTATS_MEMBERS', "Mitglieder-Statistik zuerst");
+define('ADMIN_GSTATS_MODULES', "TOP10-Modul-Statistik zuerst");
+define('ADMIN_GSTATS_INACTIVE', "Gast-Statistik deaktivieren");
+define('ADMIN_GSTATS_MEMBERS_NOTE', "Die Mitglieder-Statistik zeigt an, wie viele Mitglieder Ihr {!MT_WORD!} hat und wie viele Mitglieder welche Kategorien ausgew&auml;hlt haben.");
+define('ADMIN_GSTATS_MODULES_NOTE', "Zeigt Klicks in den 10 am h&auml;ufigsten angeklickten Gast- und Mitgliedsmodulen an.");
+define('ADMIN_GSTATS_INACTIVE_NOTE', "Deaktiviert die Gast-Statistiken komplett.");
+define('DELETE_PAYMENT', "Verg&uuml;tungen l&ouml;schen");
+define('REF_PAYOUT', "Anzahl zu best&auml;tigender Mails, bevor die {!POINTS!} gutgeschrieben werden?");
+define('REF_PAYOUT_NOTE', "0 = Verg&uuml;tung erfolgt sofort.");
+define('ADMIN_EXT_NO_INFO_FOUND', "Keine Informationen zu dieser Erweiterung gefunden!");
+define('ADMIN_EXT_NEW_FOUND_TITLE', "Neue Erweiterungen gefunden");
+define('ADMIN_EXT_DOWNLOAD_LINK', "Download-Link");
+define('ADMIN_EXT_FILE_SIZE', "Downloadgr&ouml;&szlig;e");
+define('ADMIN_EXT_FILE_CTIME', "Erweiterung erstellt am");
+define('ADMIN_EXT_FILE_VERSION', "Version (alt)");
+define('ADMIN_EXT_TOTAL_FSIZE', "Downloadgesamtgr&ouml;sse");
+define('ADMIN_EXT_TOTAL_FOUND', "Gesamt gefundene Erweiterungen");
+define('ADMIN_EXT_ALREADY_INSTALLED_1', "Alle <STRONG><U>");
+define('ADMIN_EXT_ALREADY_INSTALLED_2', "</U></STRONG> gefundenen Erweiterungen sind bereits installiert!");
+define('ADMIN_EXT_NOTHING_FOUND', "Keine Erweiterungen auf dem Server gefunden!");
+define('ADMIN_EXT_VERSION', "Version");
+define('ADMIN_TASK_IS_EXTENSION_UPDATE', "Erweiterung-Update");
+define('ADMIN_EXTENSION_UPDATED', "Erweiterung aktualisiert!");
+define('ADMIN_UPDATE_EXT_SUBJ', "Erweiterung-Update installiert");
+define('MEMBER_ORDER_PAGE1_INTRO', "Mailbuchung - Schritt 1 von 4: PLZ eingeben");
+define('MEMBER_ORDER_PAGE2_INTRO', "Mailbuchung - Schritt 2 von 4: Daten eingeben");
+define('MEMBER_ORDER_PAGE3_INTRO', "Mailbuchung - Schritt 3 von 4: Frame-Killer Test und Absenden");
+define('MEMBER_ORDER_PAGE4_INTRO', "Mailbuchung - Schritt 4 von 4: Vielen Dank!");
+define('MEMBER_ORDER_PAGE1_NOTE', "Geben Sie hier die ersten ein bis drei Stellen der Postleitzahl ein, in der gesendet werden soll.<BR>
+<BR>
+Beispiele:
+<UL>
+  <LI><STRONG>1</STRONG> : Sendet nur an Mitglieder, deren Postleitzahl mit 1 anf&auml;ngt.</LI>
+  <LI><STRONG>12</STRONG> : Sendet nur an Mitglieder, deren Postleitzahl mit 12 anf&auml;ngt.</LI>
+  <LI><STRONG>123</STRONG> : Sendet nur an Mitglieder, deren Postleitzahl mit 123 anf&auml;ngt.</LI>
+</UL>
+<BR>
+Oder geben Sie nichts ein, wenn Sie diese Option nicht w&uuml;nschen.");
+define('MEMBER_ENTER_ZIP_CODE', "PLZ eingeben");
+define('ORDER_PAGE_2', "Weiter zur Seite 2");
+define('UNCONFIRMED_USERIDS', "Unbest./Gesperrte Accounts");
+define('LOCKED_POINTS', "Nicht verg&uuml;tete {!POINTS!}");
+define('LAST_UPDATE', "Letzte Profil&auml;nderung");
+define('LAST_PROFILE_SENT', "Erinnerung gesendet");
+define('USER_REF_PAYOUT', "Noch zu best. Mails");
+define('DISPLAY_REFID', "Ref-ID anzeigen");
+define('SORT_NAVIGATION', "Sortieren");
+define('HIGHER', "H&ouml;her");
+define('LOWER', "Niedriger");
+define('MEMBER_SETTINGS_SAVED', "Einstellungen gespeichert.");
+define('REMOTE_ADDR_TIMEOUT', "Ein Mitglied ist mit Ihrer IP-Nummer <U>".$_SERVER[REMOTE_ADDR]."</U> bereits registriert! Bitte kontaktieren Sie uns, wenn dies ein Fehler sein sollte!");
+define('IP_TIMEOUT', "IP-Zeitsperre");
+define('ADMIN_PAYOUT_NOT_INSTALLED', "payout-Erweiterung nicht installiert!");
+define('ADMIN_ADD_MAX_VALUE', "Neuen Maximal-Wert hinzuf&uuml;gen");
+define('ADMIN_CANNOT_CHECK_VERSION', "Konnte Versionsnummer nicht abgleichen! (Fehlende Internet-Verbindung? Server ist down?)");
+define('GUEST_STATS_DEACTIVATED', "Statistiken sind deaktiviert.");
+define('GUEST_TOPTEN_STATS', "Die am h&auml;ufigsten angeklickten Men&uuml;s");
+define('GUEST_TOP_GUEST_STATS', "Gastmen&uuml;");
+define('GUEST_TOP_MEMBER_STATS', "Mitgliedmen&uuml;");
+define('ADMIN_EDIT_BANNER_URL', "Banner-URL &auml;ndern");
+define('ADMIN_EDIT_ALTERNATE', "Alternativen Text &auml;ndern");
+define('ADMIN_EDIT_POINT_SETTINGS', "Einstellungen an Mailverg&uuml;tungen");
+define('ADMIN_CONFIG_DIRECT_PAY', "Sollen die &quot;erklickten&quot; {!POINTS!} nach der Anmeldung direkt oder nach eingestellter Anzahl von Mails verg&uuml;tet werden?");
+define('CHANGE_PROFILE', "Profil &auml;ndern");
+define('ADMIN_PASS1', "Passwort eingeben");
+define('ADMIN_PASS2', "Passwortbest&auml;tigung");
+define('ADMIN_EDIT_USER_PROFILE', "Editieren eines Mitgliederaccountes");
+define('ADMIN_EDIT_USER_PASSWORD_NOTE', "Geben Sie nur zweimal das Passwort ein, wenn Sie es &auml;ndern wollen. Wollen Sie nur Daten &auml;ndern, geben Sie bitte keines ein.");
+define('POINTS_LOCKED', "Noch wartende {!POINTS!}");
+define('ADMIN_TASK_INFOS', "Infos");
+define('NICKNAME', "Nickname");
+define('EXT_NICKNAME_404', "<FONT class=\"note\">nickname-Erweiterung fehlt!</FONT>");
+define('ADMIN_PROBLEM_NO_MENU', "Konnte keine Men&uuml;eintr&auml;ge finden!");
+define('USER_REF_404', "Dieses Mitglied hat keine Referals gemacht.");
+define('USER_NICKNAME', "Nickname");
+define('ADMIN_EXT_AUTOPURGE_404', "autopurge nicht installiert!");
+define('ADMIN_EXT_BONUS_OUTDATED_1', "Ihre Bonus-Erweiterung ist veraltet! Version <U>");
+define('ADMIN_EXT_BONUS_OUTDATED_2', "</U> oder h&ouml;her wird ben&ouml;tigt!");
+define('ADMIN_EXT_BONUS_404', "bonus nicht installiert!");
+define('ADMIN_CONFIG_POINTS_DIRECT', "Direkt auszahlen");
+define('ADMIN_CONFIG_POINTS_MAILS', "Nach best. Mails");
+define('MEMBER_MORE_POINTS_NEEDED', "Sie haben nicht ausreichend {!POINTS!} &uuml;brig, um die Buchung durchzuf&uuml;hren! Bitte stellen Sie weniger Empf&auml;nger oder eine kleinere Mailart ein.");
+define('CANNOT_SEND_ADMIN_MAILS', "Fehler bei Mailversand an Admin!");
+define('MAILID_CLICK_BUTTON', "Einmal den Button anklicken");
+define('ADMIN_ADD_POINTS_TO_ALL', "Allen Mitgliedern {!POINTS!} gutschreiben");
+define('ADMIN_ALL_POINTS_ADDED', "Allen Mitgliedern wurden die {!POINTS!} gutgeschrieben!");
+define('EMAILS_PAGENAV', "Seite");
+define('_IS_CURRENT_HOME', "Liegt in Home");
+define('_IS_NEW_HOME', "In Home setzen");
+define('ADMIN_CONFIG_HOME', "Legen Sie hier die neue Home-Seite fest");
+define('HOME_ACTION', "Funktion");
+define('HOME_BOTTOM_NOTE', "Es werden nur aktive Men&uuml;punkte aus dem Gasthauptmen&uuml; (main) angezeigt.");
+define('ADMIN_EXT_CSSFILE', "CSS?");
+define('ADMIN_EDIT', "&Auml;ndern");
+define('ADMIN_EDIT_EXTENSIONS', "&Auml;ndern von Erweiterungen");
+define('ADMIN_EXT_CHANGED', "Erweiterungen ge&auml;ndert.");
+define('POOL_DELETED', "Bereinigt");
+define('ONLINE_TIMEOUT_IS_1', "Die Liste zeigt die Besucher der letzten <STRONG>");
+define('ONLINE_TIMEOUT_IS_2', "</STRONG> an.");
+define('ADMIN_CONFIG_EXTENSIONS_SETTINGS', "Erweiterungs-Management konfigurieren");
+define('ADMIN_VERBOSE_SQL', "SQL-Anweisungen beim Registrieren/Updates/Entfernen ausgeben");
+define('ADMIN_REMOVING_THESE_EXTENSIONS', "Diese Erweiterungen werden deinstalliert");
+define('ADMIN_REMOVE_EXTENSIONS', "Erweiterungen jetzt entfernen");
+define('ADMIN_SQLS_EXECUTED_ON_REMOVAL', "Beim Entfernen ausgef&uuml;hrte SQL-Anweisungen");
+define('ADMIN_NO_ADDIONAL_SQLS', "Keine weiteren SQL-Anweisungen zum Ausf&uuml;hren!");
+define('ADMIN_SQLS_EXECUTED_ON_UPDATE', "Beim Aktualisieren ausgef&uuml;hrte SQL-Anweisungen");
+define('ADMIN_SQLS_EXECUTED_ON_REGISTER', "Beim Registrieren ausgef&uuml;hrte SQL-Anweisungen");
+define('ADMIN_UNKNOWN_FIELD_TYPE_1', "Unbekannter Datentyp <STRONG>");
+define('ADMIN_UNKNOWN_FIELD_TYPE_2', "</STRONG> erkannt!");
+define('ADMIN_ADD_POINTS_TO_USER', "Einem Mitglied {!POINTS!} gutschreiben");
+define('MEMBER_ORDER_DELETED', "Ihre Mailbuchung wurde soeben geloescht");
+define('ADMIN_LIST_UNCONFIRMED_NOT_DIRECTLY', "Bitte diesen Men&uuml;punkt nicht direkt aufrufen!");
+define('ADMIN_UNCONFIRMED_POOL_MISSING_1', "Es fehlen Daten im Sende-Pool zur Mail-ID <U>");
+define('ADMIN_UNCONFIRMED_POOL_MISSING_2', "</U> !");
+define('ADMIN_UNCONFIRMED_STATS_MISSING_1', "Es fehlen Daten in der User-Statistik zur Mail-ID <U>");
+define('ADMIN_UNCONFIRMED_STATS_MISSING_2', "</U> !");
+define('ADMIN_UNCONFIRMED_INVALID_LINK', "Ung&uuml;tigen Link aufgerufen oder Mail ist nicht mehr vorhanden!");
+define('ADMIN_UNCONFIRMED_NO_LINK_LEFT', "Diese Mailbuchung wurde komplett best&auml;tigt!");
+define('ADMIN_CONFIG_REFMODE', "Verg&uuml;tungsmodus f&uuml;r einmalige Referral-Gutschrift");
+define('ADMIN_CONFIG_REFMODE_REF', "&Uuml;ber das Ref-System");
+define('ADMIN_CONFIG_REFMODE_DIRECT', "Nur User selber aufbuchen");
+define('ADMIN_HEADER_LOCK_ACCOUNT_1', "Mitgliedsaccount <U>");
+define('ADMIN_HEADER_LOCK_ACCOUNT_2', "</U> sperren");
+define('ADMIN_HEADER_UNLOCK_ACCOUNT_1', "Mitgliedsaccount <U>");
+define('ADMIN_HEADER_UNLOCK_ACCOUNT_2', "</U> freigeben");
+define('ADMIN_HEADER_DEL_ACCOUNT_1', "Mitgliedsaccount <U>");
+define('ADMIN_HEADER_DEL_ACCOUNT_2', "</U> l&ouml;schen");
+define('ADMIN_TEXT_DEL_ACCOUNT_1', "M&ouml;chten Sie den User <STRONG>");
+define('ADMIN_TEXT_DEL_ACCOUNT_2', "</STRONG> nun <STRONG>unwiederruflich</STRONG> l&ouml;schen? Bitte geben Sie einen Grund der L&ouml;schung mit an!");
+define('ADMIN_TEXT_LOCK_ACCOUNT_1', "M&ouml;chten Sie den User <STRONG>");
+define('ADMIN_TEXT_LOCK_ACCOUNT_2', "</STRONG> nun sperren? Bitte geben Sie einen Grund der Sperrung mit an!");
+define('ADMIN_TEXT_UNLOCK_ACCOUNT_1', "M&ouml;chten Sie den User <STRONG>");
+define('ADMIN_TEXT_UNLOCK_ACCOUNT_2', "</STRONG> nun freischalten? Sie k&ouml;nnen auch optional einen Text mit angeben.");
+define('ADMIN_EDIT_HOME_TARGET', "Home-Seite festlegen");
+define('ADMIN_EDIT_HOME_SETTINGS', "Einstellungen an Eingangsseite");
+define('ADMIN_CONFIG_HOME_TITLE', "Einstellungen an der Home-Seite");
+define('ADMIN_CONFIG_INDEX_DELAY', "Verz&ouml;gerung bevor weitergeleitet wird");
+define('ADMIN_INDEX_MANUAL_FORWARD', "Klicken leitet weiter");
+define('ADMIN_INDEX_NO_DELAY', "Sofort weiterleiten");
+define('ADMIN_CONTINUE_TO_CONFIG', "Weiter zu den Einstellungen");
+define('ADMIN_CONFIG_INDEX_COOKIE', "Wie lange soll der Besucher die Eingangsseite nicht mehr sehen?");
+define('BONUS_EXTENSION_UPGRADE_1', "Bitte aktualisieren Sie Ihre Bonus-Erweiterung auf Version <U>");
+define('BONUS_EXTENSION_UPGRADE_2', "</U> oder neuer!");
+define('_ON', "an");
+define('CLICK_STATISTICS', "Mail-Statistik");
+define('ADMIN_SELECT_DEF_REFID', "Standart Referral-ID bei Anmeldung &uuml;ber keinen Ref-Link");
+define('ADMIN_SELECT_REFID_TARGRT', "Ziel-Seite des Referral-Linkes");
+define('ADMIN_REF_TARGET_REGISTER', "Zur Anmeldeseite");
+define('ADMIN_REF_TARGET_INDEX', "Zur Eingangsseite");
+define('ADMIN_THEME_ALREADY_INSTALLED', "Theme bereits installiert.");
+define('ADMIN_INSTALL_THEME', "Theme importieren");
+define('ADMIN_NO_THEMES_FOUND', "Keine Themes gefunden!");
+define('THEME_UNIX', "Uni*-Name");
+define('THEME_NAME', "Theme-Titel");
+define('THEME_AUTHOR', "Author");
+define('THEME_URL', "Download-URL");
+define('THEME_VERSION', "Versionsnummer");
+define('THEME_INSTALL', "Import-Status");
+define('THEME_ACTIVE', "Aktiviert?");
+define('ADMIN_THEME_LIST_NOTE', "Diese Liste zeigt alle auf Ihrem Server abgelegten Themes sortiert nach dem Uni*-Namen an.");
+define('ADMIN_CHANGE_STATUS_THEME', "Themes de-/aktivieren");
+define('ADMIN_THEME_NO_OUTPUT', "Problem: Kein Text zum Ausgeben!");
+define('ADMIN_THEMES_UPDATED', "Themes wurden aktualisiert.");
+define('ADMIN_THEMES_DELETED', "Themes wurden gel&ouml;scht.");
+define('ADMIN_THEME_IMPORTED_1', "Theme <U>");
+define('ADMIN_THEME_IMPORTED_2', "</U> wurde importiert.");
+define('CURR_THEME_IS_1', "Aktuelles Design: <STRONG>");
+define('CURR_THEME_IS_2', "</STRONG>");
+define('ADMIN_NO_THEME_INSTALLED_WARNING', "Kein Design installiert!");
+define('CHANGE_THEME', "Design &auml;ndern");
+define('ADMIN_SET_AS_NEW_THEME', "Dieses Theme als Standart-Theme setzen");
+define('ADMIN_THEME_NEW_DEFAULT_THEME', "Durch Anklicken des Uni*-Names wird das jeweilige Theme als Standart-Theme gesetzt, welches Ihre Besucher sofort sehen werden.");
+define('ENTRY_DELETE', "Eintrag l&ouml;schen");
+define('ADMIN_NO_MENUS_FOUND', "Keine Men&uuml;s gefunden!");
+define('ADMIN_CONFIG_TITLE_SETTINGS', "Einstellungen am Seitentitel");
+define('ADMIN_CONFIG_TITLE_DECORATIONS', "Titeldekorationen");
+define('ADMIN_TITLE_ENABLE_DECORATIONS', "Dekorationen aktivieren");
+define('ADMIN_TITLE_ENABLE_MODULE_TITLE', "Modul-Titel in Seiten titel einblenden");
+define('ADMIN_TITLE_ENABLE_WHAT_TITLE', "Titel vom Men&uuml;punkt einblenden");
+define('ADMIN_TITLE_LEFT', "Linke Seite");
+define('ADMIN_TITLE_MIDDLE', "Mittleres Trennzeichen");
+define('ADMIN_TITLE_RIGHT', "Rechte Seite");
+define('ADMIN_MENU_PROBLEM_TITLE', "Problem im Admin-Men&uuml;system erkannt");
+define('CONFIRM_ACCOUNT', "Account best&auml;tigen");
+define('CONFIRMATION_LINK', "Hier best&auml;tigen");
+define('CLICK_NOW', "Klick!");
+define('MAILID_LINK', "Best.-Link");
+define('UNKNOWN_MAILID_CODE_1', "Unbekannter Fehler-Code <STRONG>");
+define('UNKNOWN_MAILID_CODE_2', "</STRONG> erkannt!");
+define('EXTENSION_PROBLEM_EXT_INACTIVE', "Erweiterung deaktiviert! Fehler: Kann nicht fortfahren!");
+define('CHANGE_GUEST_MENU', "Verdecken, anzeigen, deaktivieren, aktivieren des Gastmen&uuml;s");
+define('IS_LOCKED', "Ist gesperrt");
+define('ADMIN_REMOVE_STATS_ENTRY', "Hier klicken, um Mitgliederstatistik zu entfernen!");
+define('ADMIN_USER_STATS_REMOVED', "Mitgliederstatistiken entfernt.");
+define('MAIL_WILL_NEVER_EXPIRE', "Bestaetigungslink verfaellt nicht.");
+define('MEMBER_ENTER_MORE_RECEIVERS', "Geben Sie mindestens ein Empf&auml;nger ein!");
+define('MEMBER_NO_MORE_RECEIVERS_FOUND', "Es konnten nicht ausreichend genug empfangsbereite Mitglieder gefunden werden.");
+define('ADMIN_USER_PROFILE_TITLE', "Mitgliedsprofil aufrufen");
+define('LIST_UNCONFIRMED_MEMBER_LINKS', "Unbest&auml;tigte Maillinks eines Mitgliedes auflisten");
+define('MEMBER_ENTER_MORE_MIN_RECEIVERS_1', "Geben Sie mehr als <U>");
+define('MEMBER_ENTER_MORE_MIN_RECEIVERS_2', "</U> Empf&auml;nger ein!");
+define('NO_TEMPLATE_SUPPLIED', "Keinen Template-Namen uebergeben! Fehler im Script erkannt. Bitte den Webmaster (".WEBMASTER.") verstaendigen!");
+define('_OR', "oder");
+define('GUEST_NEW_PASSWORD_SEND', "Neues Passwort ist zu Ihrem Postfach unterwegs!");
+define('UNDER_CONSTRUCTION', "Funktion noch im Aufbau!");
+define('ADMIN_SUB_SUBJ', "{!POINTS!}-Abzug durch unsere Admins");
+define('ADMIN_POINTS_SUBTRACTED', "{!POINTS!} wurden erfolgreich abgezogen!");
+define('ADMIN_ALL_POINTS_SUBTRACTED', "Allen Mitgliedern wurden {!POINTS!} abgezogen!");
+define('ADMIN_SUB_POINTS_FROM_USER', "Abzug von {!POINTS!} eines Mitgliedes");
+define('ENTER_POINTS_SUB', "Abzuziehende {!POINTS!}");
+define('ENTER_SUB_REASON', "Grund des Abzuges");
+define('ADMIN_SUB_POINTS', "{!POINTS!} abziehen");
+define('ADMIN_SUB_POINTS_FROM_ALL', "Allen Mitgliedern {!POINTS!} abziehen");
+define('PATCH_DESCRIPTION', "Beschreibung zum Patch");
+define('DOWNLOAD_ZIP', "Direktes ZIP-Archiv downloaden");
+define('DOWNLOAD_BZIP2', "Direkten Tar-Ball downloaden");
+define('DOWNLOAD_FROM_SERVER', "&Uuml;ber unseren Server downloaden");
+define('DOWNLOAD_NOW', "Jetzt downloaden!");
+define('ADMIN_MEMBER_STATS_TITLE', "Einstellungen an der Mitglieder-Statistik");
+define('ADMIN_MEMBER_STATS_LIMIT', "Anzahl Mailbuchungen pro Seite");
+define('MEMBER_NO_THEMES_FOUND', "Keine Design gefunden!");
+define('MEMBER_THEME_LIST_NOTE', "Wenn Sie Fragen zu einem der Designs haben, wenden Sie sich bitte an den jeweiligen Autor!");
+define('MEMBER_SAVE_THEME', "Design speichern");
+define('MEMBER_THEME_LIST_USAGE', "W&auml;hlen Sie unten ein neues Design aus und klicken Sie auf <STRONG>Theme abspeichern</STRONG>, das Design wird dann nur f&uuml;r Sie dauerhaft ge&auml;ndert.");
+define('MEMBER_THEME_SAVED', "Design gespeichert.");
+define('TASK_NO_TITLE', "Aufgabe ohne SQL-Anweisungen");
+define('UNCONFIRMED_LOCKED', "Noch zu best. Mails");
+define('CONFIRMED_MAILS', "Bereits best. Mails");
+define('_YEARS'  , "Jahre");
+define('_MONTHS' , "Monate");
+define('_WEEKS'  , "Wochen");
+define('_DAYS'   , "Tage");
+define('_HOURS'  , "Stunden");
+define('_MINUTES', "Minuten");
+define('_SECONDS', "Sekunden");
+define('SORT_ASCENDING', "Aufsteigend");
+define('SORT_DESCENDING', "Absteigend");
+define('INVALID_EMAIL_ADDRESS_ENTERED', "Ung&uuml;tige EMail-Adresse eingegeben!");
+define('NEVER_HAPPENED', "Nie");
+define('WRONG_DB_SELECTED', "Falsche oder fehlende Datenbank ausgew&auml;hlt!");
+define('NO_CONFIG_FOUND', "Keine Konfigurationsdaten gefunden! (Leere Datenbank? Oder haben Sie die SQL-Dateien in andere Datenbank eingespielt?)");
+define('NO_CONFIG_FOUND_TITLE', "Keine Konfigurationsdaten gefunden!");
+define('SORTING_KEY', "Sortierung");
+define('ADMIN_ADD_BANNER', "Neuen Banner hinzuf&uuml;gen");
+define('ADMIN_ENTER_BANNER_URL', "Banner-URL");
+define('ADMIN_ENTER_ALTERNATE_TEXT', "Alternativen Text");
+define('ADMIN_SELECT_BANNER_ACTIVE', "Ist der Banner aktiv?");
+define('ADMIN_SUBMIT_BANNER', "Banner hinzuf&uuml;gen");
+define('ADMIN_LIST_REFERRALS_1', "Referrals des Mitgliedes ");
+define('ADMIN_LIST_REFERRALS_2', " in erster Ebene");
+define('ADMIN_LIST_REFERRALS_NOTE', "<STRONG>&Auml;nderung:</STRONG> Klicken Sie die User-ID an und gelangen Sie zum Mitgliederprofil. Klicken Sie Anzahl Referrals an, werden die Referrals des jeweiligen Mitgliedes aufgelistet.");
+define('ADMIN_NORMAL_MAIL_ALREADY_DELETED', "Mitglieder-Mail bereits gel&ouml;scht!");
+define('INITIAL_RELEASE', "Erste Alpha-Version");
+define('NO_UPDATE_NOTES', "Keine Update-Hinweise gefunden!");
+define('MYSQL_QUERY_STRING', "MySQL-Abfragebefehl war:");
diff --git a/0.2.1/inc/language/en.php b/0.2.1/inc/language/en.php
new file mode 100644 (file)
index 0000000..efdee8c
--- /dev/null
@@ -0,0 +1,320 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/26/2003 *
+ * ===============                              Last change: 04/16/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : en.php                                           *
+ * -------------------------------------------------------------------- *
+ * Short description : English language support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Englische Sprachunterstuetzung                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language identifier
+define('__LANG_ID', "English (US)");
+
+// Language definitions
+define('LANG_DOWN_MAINTAINCE', "System is down for maintenance.");
+define('LANG_MOD_REG_404_1', "Module <U>");
+define('LANG_MOD_REG_404_2', "</U> does not exists.");
+define('LANG_MOD_NOT_REG', " is not registered.");
+define('LANG_UNKNOWN_MODULE', "Unknown module");
+define('META_YOUR_NAME_1', "Your name here");
+define('META_YOUR_NAME_2', "Your name again");
+define('META_DESCRIPTION', "The description of your website here");
+define('META_KEYWORDS', "Enter at least (1) 20 search keywords seperated by commatas here");
+define('LANG_WARNING', "Warning");
+define('DIE_CONFIG_CHANGED_YOU', "You have edited your config.php file! I'm out here...");
+define('DIE_RUN_INSTALL_MYSQL', "Please run http://your-domain.com/install.php to setup your MySQL data.");
+define('WARN_NULL_PASSWORD', "You have a null-password! If you want to switch off this warning please have a look in <STRONG>inc/config.php</STRONG>.");
+define('FATAL_CONFIG_WRITABLE', "Your file inc/config.php is writeable! This is a possible security risk.");
+define('FATAL_CANNOT_WRITE_CONFIG', "Cannot write config data because I have no write permissions to inc/config.php.");
+define('FATAL_ERROR', "Fatal error");
+define('LANG_NO_RENDER_DIRECT', "You did not setup the output mode weather to 'render' nor to 'direct'.");
+define('INSTALLATION', "Script installation");
+define('INSTALL_PROBLEMS_DETECTED', "I have detected problems while initializing the installation procedure.");
+define('FATAL_NO', "Fatal error no. #");
+define('FATAL_CORRECT_ERRORS', "I cannot continue! Please correct the listet problems first and retry again!");
+define('WRONG_PAGE', "You or this system has selected a wrong page!");
+define('SERVER_PATH', "Absolute server path");
+define('BASE_URL', "Base URL");
+define('HP_TITLE', "Mail-exchange's title");
+define('HP_SLOGAN', "Slogan");
+define('MYSQL_HOST', "Server hostname");
+define('MYSQL_DBASE', "Database");
+define('MYSQL_PREFIX', "Prefix for all tables");
+define('MYSQL_LOGIN', "Your login name");
+define('MYSQL_PASS1', "Your password");
+define('MYSQL_PASS2', "Password confirmation");
+define('CSS_URL', "URL to CSS file (relative)");
+define('FATAL_NO_MHOST', "You have entered no host name!");
+define('FATAL_NO_MDBASE', "Please provide a database name.");
+define('FATAL_NO_MLOGIN', "Please enter your login to the database.");
+define('FATAL_NO_MPASS1', "You have entered no password. This is very unsecure and will be handled as an error.");
+define('FATAL_NO_MPASS2', "Please enter the password confirmation.");
+define('FATAL_MPASS1_MPASS2', "Your both passwords didn't match.");
+define('LANG_OUTPUT_MODE', "Output mode of HTML code");
+define('MODE_RENDER', "HTML code will be rendered and then delivered.");
+define('MODE_DIRECT', "HTML code will be delivered immediately.");
+define('WARN_NO_PASSWORD', "Shall I warn you if you did not provide a password?");
+define('YES', "Yes");
+define('NO', "No");
+define('RETURN_MYSQL_PAGE', "Back to MySQL settings");
+define('INSTALL_FINALIZER_FAILED', "While installtion unexpected errors occur! The finalizer cannt finish installation.");
+define('INSTALL_MAYBE_DONE', "The installation is possibely completed or unexpected errros occur.");
+define('INSTALL_FINISHED', "Installation is completed! :-)");
+define('INSTALL_FIN_SECU', "<STRONG><U>Security notes:</U></STRONG><BR>Install a .htaccess file in directory inc and templates including all secondary directories.");
+define('CONTINUE_ADMIN', "Continue to administrator's area...");
+define('RUNTIME_PROBLEMS_DETECTED', "Runtime-problem detected!");
+define('FATAL_INC_WRITABLE', "Directory inc is writeable! Please set the access rights to CHMOD 755.");
+define('LANG_WRITE_FOOTER', "Display name, version and author of this script?");
+define('LANG_FRAMESET_ACTIVE', "Enable frameset? If not a table-set will be used instead.");
+define('MYSQL_ERRORS', "MySQL errors detected. Please correct first to continue.");
+define('LANG_MOD_UNKNOWN_1', "Unknown return-code <U>");
+define('LANG_MOD_UNKNOWN_2', "</U> detected!");
+define('LANG_MOD_LOCKED_1', "Selected module <U>");
+define('LANG_MOD_LOCKED_2', "</U> is locked!");
+define('ADMIN_UNKNOWN_ACTION_1', "Unknown administrator-action <U>");
+define('ADMIN_UNKNOWN_ACTION_2', "</U> detected. Please call this module correctly!");
+define('ADMIN_ACTION_404_1', "Administrator module for action <U>");
+define('ADMIN_ACTION_404_2', "</U> was not found on server.");
+define('ADMIN_NOT_REGISTERED', "There is no administrator account created so far.");
+define('ADMIN_REGISTER_NOW', "Please create an administrator account now:");
+define('ADMIN_LOGIN', "Enter administrator login");
+define('ADMIN_PASS', "Enter password");
+define('LANG_CLEAR_FORM', "Clear form");
+define('ADMIN_REG_SUBMIT', "Create admin-account");
+define('ADMIN_NO_LOGIN', "You have entered no login.");
+define('ADMIN_NO_PASS', "You have entered no password.");
+define('ADMIN_SHORT_PASS', "Your entered password is too short. Please enter at least 4 chars!");
+define('ADMIN_LOGIN_ALREADY_REG', "Your entered admin-login does already exists.");
+define('ADMIN_REGISTER_FAILED', "While creating an admin-account an unexpected error occurs!");
+define('ADMIN_REGISTER_DONE', "Admin account created. You can use the account to login into the admin-area.");
+define('ADMIN_CANNOT_COMPLETE', "Cannot finish registration of admin-account!");
+define('ADMIN_LOGIN_NOW', "You can now login into the admin-area.<BR>Enter your admin-login (not user-login!) and the password to do so.");
+define('ENTER_ADMIN_LOGIN', "Administrator login");
+define('ENTER_ADMIN_PASS', "Password");
+define('ADMIN_LOGIN_SUBMIT', "Login to admin-area");
+define('WRONG_PASS', "Wrong password.");
+define('ADMIN_NOT_FOUND', "Administrator account not found.");
+define('ADMIN_LOGIN_FAILED', "Login into admin-area failed!");
+define('CANNOT_REGISTER_SESS', "Cannot register session cookies. Maybe you have deactivated cookies?");
+define('SELECT_TIMEOUT', "Expiration time for automated login");
+define('TIMEOUT_ONE_DAY', "1 Day");
+define('TIMEOUT_TWO_DAYS', "2 Days");
+define('TIMEOUT_THREE_DAYS', "3 Days");
+define('TIMEOUT_ONE_WEEK', "1 Week");
+define('TIMEOUT_TWO_WEEKS', "2 Weeks");
+define('TIMEOUT_ONE_MONTH', "1 Month");
+define('TIMEOUT_HALF_YEAR', "1/2  Year");
+define('TIMEOUT_FULL_YEAR', "1 Year");
+define('ADMIN_LOGOUT_DONE', "Logout from admin-account completed.");
+define('ADMIN_LOGOUT_FAILED', "Logout from admin-account failed! :-(");
+define('ADMIN_RELOGIN_LINK', "Click here to re-login again.");
+define('ADMIN_404_ACTION', "Admin-module not found!");
+define('ADMIN_404_ACTION_1', "Called admin-module <U>");
+define('ADMIN_404_ACTION_2', "</U> is well valid but it is not on this server.");
+define('ALREADY_INSTALLED', "This script is already installed on this server. Please delete the whole installation system for your server. Don't worry you can do it...");
+define('ADMIN_MAIN_TITLE', "Welcome to the administration area");
+define('YOU_ARE_HERE', "You are here:");
+define('ID_SELECT', "ID:");
+define('DISPLAY_ACTION', "Action");
+define('DISPLAY_WHAT', "Sub action");
+define('DISPLAY_TITLE', "Title");
+define('UNDO_SELECTIONS', "Undo selections");
+define('EDIT_MENUS', "Edit menus");
+define('DEL_MENUS', "Delete menus");
+define('EDIT_ADMIN_MENU', "Edit admin menu entries");
+define('EDIT_MENU_1', "<STRONG>");
+define('EDIT_MENU_2', "</STRONG> menu entr(y/ies) shall be edited:");
+define('ENTRY_MODIFY', "Entry");
+define('SUBMIT_CHANGES', "Submit changes");
+define('ENTRY_404_1', "Entry <I>");
+define('ENTRY_404_2', "</I> was not found!");
+define('EDIT_UNKNOWN_OKAY', "An unknown action was performed.");
+define('SAVING_DATA', "Saving data");
+define('SAVING_DONE', "finished!");
+define('DEL_ADMIN_MENU', "Admin-Men&uuml;eintr&auml;ge l&ouml;schen");
+define('DEL_MENU_1', "<STRONG>");
+define('DEL_MENU_2', "</STRONG> menu entr(y/ies) shall be deleted:");
+define('DEL_ENTRIES', "Remove entries permanently");
+define('EDIT_ACTION', "Change action value");
+define('EDIT_WHAT', "Change sub action");
+define('EDIT_TITLE', "Change link title");
+define('ADMIN_ADD_MENU', "");
+define('ENTER_TITLE', "Enter link title for new menu entry");
+define('SELECT_PARENT_MENU', "Select the parent main menu");
+define('IS_TOP_MENU', "Is main menu");
+define('SELECT_WHAT_NAME', "Select your wished suffix");
+define('ENTER_DESCR', "Enter short but good-to-understand description");
+define('SELECT_BELOW_MENU', "Select menu entry where the new one shall be displayed below");
+define('EDIT_DESCR', "Edit description");
+define('CREATE_WHAT_FIRST', "Please create a what-xxxxx.php file first. After this you can select it here.");
+define('MENU_IS_VISIBLE', "Menu point is visible");
+define('MENU_IS_ACTIVE', "Menu point is active");
+define('CREATE_ACTION_FIRST', "Please create an action-xxxxx.php file first. After this you can select it here.");
+define('IS_FIRST_MENU', "Is the first main menu");
+define('NO_DB_LINK', "No connection to our database found!");
+define('MYSQL_DATA_MISSING', "Something is wrong with the MySQL settings!");
+define('REGISTER_PERSONAL_DATA', "Personal data");
+define('REGISTER_CATEGORIES', "Your interests");
+define('REGISTER_MISC', "Password, maximum mails per day, etc.");
+define('SURNAME', "Surname");
+define('FAMILY_NAME', "Family name");
+define('STREET_NR', "Street and house number");
+define('COUNTRY', "Country");
+define('ZIP', "ZIP code");
+define('CITY', "City");
+define('ADDY', "Email address");
+define('BIRTHDAY', "Birthday (MM.DD.YYYY)");
+define('PASS_1', "Password");
+define('PASS_2', "Password again");
+define('ADD_NEW_CATEGORY', "Add new category");
+define('ENTER_CATNAME', "Description of category");
+define('SELECT_PARENT', "Below which category shall this new be displayed?");
+define('IS_TOP_CATEGORY', "Is top-level category");
+define('CAT_IS_VISIBLE', "Category is visible?");
+define('ADD_NEW_CAT', "Add new category");
+define('CATEGORY_ADDED', "Category added.");
+define('CATEGORY_ALREADY_EXISTS', "Category does already exist!");
+define('EDIT_DEL_CATEGORIES', "Edit / delete listed categories");
+define('CATNAME', "Description of category:");
+define('EDIT_CATS', "Edit categories");
+define('DEL_CATS', "Delete categories");
+define('NO_CATEGORIES_VISIBLE', "Currently no categories can be displayed!");
+define('MAX_RECEIVE', "How many totally mails shall your memebers receive daily? Please add more values so every member can set it more individually.");
+define('ADD_MAX_RECEIVE', "Add max-value");
+define('SAVE_SETTINGS', "Save settings");
+define('ENTER_MAX_VALUE', "New max-value (0 to 9999)");
+define('ENTER_MAX_COMMENT', "Addition hint which will be displayed in brackets.");
+define('MAX_VALUE_SAVED', "Max-value saved");
+define('MAX_VALUE_ALREADY', "Max-values does already exist!");
+define('EDIT_DEL_MAX_VALUES', "Edit/Delete max-values");
+define('MAX_VALUE', "Maxium receiveable mails");
+define('MAX_COMMENT', "Comment to max-value");
+define('EDIT_MAX_V', "Edit max-value");
+define('DEL_MAX_V', "Delete max-value");
+define('NO_MAX_VALUES', "The registration cannot be completed because you cannot select maximum receiveable mails!");
+define('MAX_PER_DAY', "Maximum mails per day");
+define('PER_DAY', "Mails");
+define('REFID_BY', "You are advertised by");
+define('TERMS_OF_USAGE', "Accept T&amp;C and submit form");
+define('YOU_FINALIZE', "You have nearly filled out this form!");
+define('AGREE_TO_THIS', "Do you accep our [<A href=\"".URL."/agb.php\" class=\"register_term\" target=\"_blank\">Terms And Conditions</A>] ?");
+define('SUBMIT_REGISTER', "Submit registration form");
+define('HAVE_TO_AGREE', "You have to accept our Terms And Conditions you cannot join this mail exchange!");
+define('ENTER_BOTH_PASSWORDS', "Please enter a password by your choice twice.");
+define('ENTER_PASS1', "Please enter a password.");
+define('ENTER_PASS2', "Please enter confirmation of your password.");
+define('ENTER_EMAIL', "Please enter your valid email address.");
+define('ENTER_SURNAME', "Please enter your surname.");
+define('ENTER_FAMILY', "Please enter your family's name.");
+define('EDIT_SECURITY_SETTINGS', "Change security-related settings");
+define('MIN_PASS_LENGTH', "Minimum password length");
+define('SETTINGS_NOT_SAVED', "Settings are NOT saved/changed!");
+define('SETTINGS_SAVED', "Settings saved.");
+define('FATAL_CANNOT_LOAD_CONFIG', "Cannot load base configuration! A possible reason for this message is that the webmaster is setting up this mail exchange. Please come back later again.");
+define('ADMIN_INVALID_ACTION', "Invalid combination of action/what detected! Please click on Home to continue.");
+define('ADMIN_INVALID_ACTION_1', "Your combination action/what <U>");
+define('ADMIN_INVALID_ACTION_2', "</U> is invalid!");
+define('SHORT_PASS', "Your entered password is to short to match with our security conditions. Mimum length is");
+define('EDIT_POINTS_SETTINGS', "Edit welcome credit and other {!POINTS!}");
+define('POINTS_REGISTER', "Wecome credit");
+define('POINTS_REF', "Single referral credit");
+define('EDIT_REGFORM_SETTINGS', "Settings for registration form");
+define('LEAST_CATS', "Minium to select categories");
+define('CATS_LEAST', "Please select more categories! Minimum is");
+define('EMAIL_ALREADY_DB', "You are already registered with your entered email address or someone else is using your email address. Registering twice is not allowed in our service.");
+define('REJECT_DOUBLE_EMAIL', "Prevent of registering with same email address?");
+define('REJECT_DOUBLE_PASS', "Prevent of registering with same password? (Will not be displayed!)");
+define('ADMIN_EDIT_POINTS', "Edit welcome bonus and other fixed amounts");
+define('ADMIN_EDIT_REFDEPTHS', "Edit / delete / add referral levels");
+define('ADD_NEW_REFDEPTH', "Add new referral level");
+define('ADD_DEPTH', "Add referral level");
+define('ENTER_REF_LVL', "Referral level");
+define('ENTER_REF_PERCENTS', "Percentage payment");
+define('EDIT_DEL_REFDEPTH', "Edit / delete referral levels");
+define('REF_LEVEL', "Referral level");
+define('REF_PERCENT', "Percentage payment");
+define('EDIT_LVL', "Edit referral level");
+define('DEL_LVL', "Delete referral level");
+define('HELLO', "Hello");
+define('GUEST_YOU_REGISTERED_WITH_US', "Thank you for registering with our email exchange! If you didn't do this please contact us!");
+define('GUEST_YOUR_PERSONA_DATA', "Please verify your personal data");
+define('GUEST_SURNAME', "Surname");
+define('GUEST_FAMILY', "Family name");
+define('GUEST_STREET_NR', "Street and house no.");
+define('GUEST_COUNTRY', "Country code");
+define('GUEST_ZIPCODE', "ZIP code");
+define('GUEST_CITY', "City");
+define('GUEST_ADDY', "EMail address");
+define('GUEST_BIRTHDAY', "Birthday");
+define('GUEST_REF', "Advertised by");
+define('GUEST_YOUR_REFLINK', "Here is your personal referral link which you can use to advertise new members:");
+define('GUEST_CONFIRM_LINK', "Your confirmation link (click once!)");
+define('THANX', "Thank you very much.\n\nBest regards,");
+define('YOUR', "your");
+define('TEAM', "team");
+define('HELLO_ADMIN', "Hello administrator");
+define('ADMIN_GUEST_REGISTERED_WITH_US', "A guest has registered with our service.");
+define('ADMIN_GUEST_PERSONA_DATA', "Here you can verify his personal data");
+define('ADMIN_THANX', "Best regards,");
+define('SCRIPT', "Script");
+define('ADMIN_NEW_ACCOUNT', "New registration for your email exchange");
+define('REGISTRATION_DONE', "Registration is done. An email is on its way to you.");
+define('GUEST_404_ACTION_1', "The action module <U>");
+define('GUEST_404_ACTION_2', "</U> does not exist or this script makes a boo-boo!");
+define('GUEST_LOCKED_ACTION', "Action module is locked.");
+define('FATAL_REPORT_ERRORS', "A fatal error ocurs while runtime. If a module is locked we are working on it othervice please contact us!");
+define('TEMPLATE_404', "Template not found.");
+define('EDIT_GUEST_MENU', "Edit guest menu");
+define('EDIT_MEMBER_MENU', "Edit member menu");
+define('DEL_GUEST_MENU', "Delete guest menu");
+define('DEL_MEMBER_MENU', "Delete member menu");
+define('GUEST_PASSWORD', "Your password");
+define('GUEST_THANX_CONFIRMATION', "You have just now confirmed your email address. You are now unlocked for our service {--MAIN_TITLE--}.");
+define('GUEST_MAY_LOGIN_HERE', "You can now login here:");
+define('HAPPY_MAILING', "We wish you lots of fun and success with our mailer system!\n\nBest regards,");
+define('GUEST_THANX_CONFIRM', "EMail address confirmed");
+define('GUEST_CONFIRMED_TWICE', "You have already confirmed your email address or your account is locked.");
+define('TOP', "To top");
+define('YOUR_LOGIN', "Your login ID is");
+define('LOGIN_URL', "URL for login");
+define('GUEST_WELCOME_MEMBER', "Welcome to the login-area for members");
+define('GUEST_ENTER_LOGIN', "Login ID");
+define('GUEST_ENTER_PASSWORD', "Password");
+define('LOGIN_SUBMIT', "Login");
+define('GUEST_GET_NEW_PASS', "Submit new password");
+define('GUEST_ENTER_EMAIL', "Registered email address");
+define('NEW_PASSWD', "Send new password!");
+
+//
+?>
diff --git a/0.2.1/inc/language/holiday_de.php b/0.2.1/inc/language/holiday_de.php
new file mode 100644 (file)
index 0000000..248cb3a
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/26/2004 *
+ * ===============                              Last change: 08/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : holiday_de.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('HOLIDAY_MEMBER_TITLE', "Von wann bis wann sind Sie im Urlaub?");
+define('HOLIDAY_MEMBER_TSTART', "Anfang Ihres Urlaubes");
+define('HOLIDAY_MEMBER_TEND', "Ende Ihres Urlaubes");
+define('HOLIDAY_MAX_DAYS_1', "Sie k&ouml;nnen nicht mehr als ");
+define('HOLIDAY_MAX_DAYS_2', " Tag(e) an Urlaub einstellen!");
+define('HOLIDAY_ADD', "Urlaubsschaltung aktivieren");
+define('HOLIDAY_COMMENTS', "Sonstige Hinweise an uns");
+define('HOLIDAY_NOTES', "Sobald Sie das Formular abgeschickt haben, wird die Urlaubsschaltung f&uuml;r Ihren Account aktiviert. Sie k&ouml;nnen sich weiterhin im Mitgliedsbereich aufhalten, k&ouml;nnen aber keine Mails mehr empfangen und auch selber keine mehr buchen!");
+define('ADMIN_TASK_IS_HOLIDAY_REQUEST', "Urlaubsanfrage");
+define('HOLIDAY_ADMIN_NOTHING_FOUND', "Niemand hat Urlaub beantragt.");
+define('HOLIDAY_ADMIN_TSTART', "Anfang");
+define('HOLIDAY_ADMIN_TEND', "Ende");
+define('HOLIDAY_ADMIN_COMMENTS', "Kommentar");
+define('HOLIDAY_ADMIN_STOP_CHECKED', "Ausgew. Urlaub beenden");
+define('HOLIDAY_ADMIN_DELETE_NOTE', "Bitte beachten Sie, dass beim vorzeitigen Beenden des Urlaubes der Account-Status nicht ge&auml;ndert wird. Ist also das Account noch gesperrt, m&uuml;ssen Sie es seperat freischalten.");
+define('HOLIDAY_NO_DIRECT_CALL', "Bite rufen Sie dieses Script &uuml;ber Auflisten auf.");
+define('HOLIDAY_ADMIN_DEL_LINK', "Urlaub beenden");
+define('HOLIDAY_ADMIN_SINGLE_DELETED', "Urlaub eines Mitgliedes beendet!");
+define('HOLIDAY_ADMIN_MULTI_DEL_1', "Urlaub von <U>");
+define('HOLIDAY_ADMIN_MULTI_DEL_2', "</U> Mitglied(-ern) beendet!");
+define('HOLIDAY_ADMIN_CONFIG_HEADER', "Einstellungen an der Urlaubsschaltung");
+define('HOLIDAY_ADMIN_MAX_HOLIDAY', "Maximale beantragbare Urlaubszeit");
+define('HOLIDAY_IS_ACTIVATED_NOW', "Ihre Urlaubsschaltung wurde jetzt aktiviert. Sie k&ouml;nnen keine Mails mehr buchen!");
+define('HOLIDAY_MEMBER_DEACTIVATE_TITLE', "Bestehende Urlaubsschaltung deaktivieren");
+define('HOLIDAY_DEACTIVATE_NOTES', "M&ouml;chten Sie diese Urlaubsschaltung wieder deaktivieren? Es ist eine weitere Mail dann an uns unterwegs.");
+define('HOLIDAY_STOP', "Urlaubsschaltung aufheben");
+define('HOLIDAY_MEMBER_DEACTIVATED_NOW', "Ihre Urlaubsschaltung ist jetzt aufgehoben!");
+define('HOLIDAY_MEMBER_CANNOT_DEACTIVATE', "Konnte Ihre Urlaubsschaltung nicht aufheben! Bitte melden Sie sich bei uns!");
+define('HOLIDAY_ORDER_NOT_POSSIBLE', "Sie k&ouml;nnen keine Mails versenden, da Ihre Urlaubsschaltung aktiviert ist!");
+define('HOLIDAY_MEMBER_TLOCK', "Urlaubsschaltung eingerichtet");
+define('HOLIDAY_MEMBER_LOCKED', "Sie k&ouml;nnen derzeit Ihre Urlaubsschaltung nicht wieder deaktivieren, da Sie diese erst vor Kurzem aktiviert haben.");
+define('HOLIDAY_MEMBER_ORDER_1', "Sie k&ouml;nnen derzeit Ihre Urlaubsschaltung nicht ver&auml;ndern, da Ihre letzte Mailbuchung zu kurz her ist! Letzte Buchung: <U>");
+define('HOLIDAY_MEMBER_ORDER_2', "</U>");
+define('HOLIDAY_ADMIN_SINGLE_404', "Urlaubsschaltung nicht mehr vorhanden, oder veralteter Link!");
+define('HOLIDAY_ADMIN_LOCKED', "Dauer bis Urlaubsschaltung aufgehoben werden kann");
+define('HOLIDAY_ADMIN_MODE', "Zeitpunkt der Abarbeitung der Urlaubsschaltungen");
+define('HOLIDAY_ADMIN_MODE_RESET', "Am t&auml;glichen Reset um 00:00 Uhr");
+define('HOLIDAY_ADMIN_MODE_DIRECT', "Sofort nach Beantragung pr&uuml;fen");
+
+// Subject lines
+define('HOLIDAY_MEMBER_SUBJECT', "[HINWEIS:] Ihre Urlaubsanfrage");
+define('HOLIDAY_ADMIN_SUBJECT', "Urlaubsanfrage in Ihrem {!MT_WORD!}");
+define('HOLIDAY_MEMBER_UNLOCK_SUBJ', "[HINWEIS:] Beendigung Ihres Urlaubes");
+define('HOLIDAY_ADMIN_UNLOCK_SUBJ', "Automatische Urlaubsbeendigung");
+define('HOLIDAY_ADMIN_DEAC_SUBJ', "Deaktivierung einer Urlaubsschaltung");
+define('HOLIDAY_ADMIN_REMOVED_SUBJ', "[HINWEIS:] Ihr Urlaub wurde beendet");
+define('HOLIDAY_MEMBER_ACTIVATED', "[HINWEIS:] Ihre Urlaubsschaltung ist aktiviert");
+
+//
+?>
diff --git a/0.2.1/inc/language/html_mail_de.php b/0.2.1/inc/language/html_mail_de.php
new file mode 100644 (file)
index 0000000..ddec173
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/25/2004 *
+ * ===============                              Last change: 04/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : html_de.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_HTML_DOWNLOAD_CLASS', "Bitte laden Sie sich die Klasse <A href=\"".DEREFERER("https://sourceforge.net/projects/phpmailer/")."\" target=\"_blank\">PHPMailer</A> herunter, um diese Funktion nutzen zu k&ouml;nnen!");
+define('MEMBER_HTML_INTRO', "HTML-Emfpang - Einstellung");
+define('MEMBER_HTML_TEXT', "In unserem {!MT_WORD!} ist das Empfangen von HTML-Mails nun m&ouml;glich. Gleichzeitig k&ouml;nnen Sie auch selber HTML-Mails versenden. M&ouml;chten Sie dies beides nutzen?");
+define('MEMBER_HTML_ORDER_INTRO', "HTML- oder normale Text-Mails versenden?");
+define('MEMBER_HTML_MSG', "HTML-Mail");
+define('MEMBER_NORMAL_MSG', "Normale Text-Mail");
+define('MEMBER_HTML_VALID_TAGS', "G&uuml;tige HTML-Codes sind");
+define('MEMBER_HTML_INVALID_TAGS', "Ung&uuml;tige HTML-Tags im HTML-Code gefunden!");
+
+//
+?>
diff --git a/0.2.1/inc/language/install_de.php b/0.2.1/inc/language/install_de.php
new file mode 100644 (file)
index 0000000..0c67f0e
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+/************************************************************************
+ * MXChange v0.1.0                                    Start: 05/11/2005 *
+ * ===============                              Last change: 05/11/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : install_de.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('MT_WORD', "Mailtausch");
+define('MT_WORD2', "Mailtausches");
+define('INSTALLATION_OF_MXCHANGE', "Installation von MXChange-".MT_WORD."-Script");
+define('INSTALL_MISSING_DUMPS', "Die SQL-Dumps wurden nicht gefunden! Diese sollten auch mit hochgeladen werden und lesbar sein (CHMOD 644).");
+define('INSTALL_ENABLE_BACKLINK', "Backlink (=R&uuml;ckverlinkung zu mxchange.org setzen?) <EM>rel=&quot;external&quot;</EM> ist gsetzt. Bitte nicht den Backlink einbauen, und <STRONG>nofollow</STRONG> verwenden! Das schadet allen.");
+
+//
+?>
diff --git a/0.2.1/inc/language/mailid_de.php b/0.2.1/inc/language/mailid_de.php
new file mode 100644 (file)
index 0000000..c9d4896
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/21/2004 *
+ * ===============                              Last change: 11/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : mailid_de.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('MAIL_DATA_INVALID', "Daten der Mailbuchung sind fehlerhaft.");
+define('ERROR_CONFIRMING_MAIL', "Bitte klicken Sie nur Links aus Ihrem Mitgliedsbereich oder aus den Mails an.");
+define('THANX_POINTS_ADDED_1', "Vielen Dank f&uuml;r die Best&auml;tigung der Mail. Die ");
+define('THANX_POINTS_ADDED_2', " {!POINTS!} wurden Ihnen gerade gutgeschrieben!");
+define('THANX_POINTS_LOCKED_1', "Vielen Dank f&uuml;r die Best&auml;tigung der Mail. Die ");
+define('THANX_POINTS_LOCKED_2', " {!POINTS!} werden Ihnen bald gutgeschrieben!");
+define('POINTS_NOT_ADDED_1', "Falscher Best&auml;tigungscode eingegeben! Die ");
+define('POINTS_NOT_ADDED_2', " {!POINTS!} wurden dem Versender wieder gutgeschrieben!");
+define('ENTER_CODE', "Code eingeben");
+define('MEMBER_TIME_COUNTER_1', "Gutschrift der {!POINTS!} erfolgt in");
+define('MEMBER_TIME_COUNTER_2', "!");
+define('SUBMIT_CODE', "Abschicken");
+define('MAILID_TOTAL_POINTS1', "Ihr Kontostand betr&auml;gt jetzt");
+define('MAILID_TOTAL_POINTS2', ".");
+
+//
+?>
diff --git a/0.2.1/inc/language/maintenance_de.php b/0.2.1/inc/language/maintenance_de.php
new file mode 100644 (file)
index 0000000..6028a8c
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/13/2004 *
+ * ===============                              Last change: 08/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : de.php                                           *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language constans
+define('ADMIN_CHANGE_MAINTENANCE_MODE', "Wartungsmodus &auml;ndern");
+define('ADMIN_MAINTENANCE_MODE_INTRO', "Wartungsmodus Ihrer Webseite");
+define('ADMIN_MAINTENANCE_MODE_IS_INACTIVE', "Der Wartungsmodus ist derzeit ausgeschaltet. Wenn Sie ihn jetzt aktivieren, wird Ihre Webseite gesperrt. Nur Administratoren k&ouml;nnen diese dann besuchen.");
+define('ADMIN_MAINTENANCE_MODE_IS_ACTIVE', "Der Wartungsmodus ist derzeit eingeschaltet. Wenn Sie ihn jetzt deaktivieren, wird Ihre Webseite freigegeben. Alle G&auml;ste k&ouml;nnen Ihre Webseite dann wieder besuchen.");
+define('ADMIN_MAINTENANCE_DEACTIVATED', "Wartungsmodus wurde deaktiviert.");
+define('ADMIN_MAINTENANCE_ACTIVATED', "Wartungsmodus wurde aktiviert.");
+
+//
+?>
diff --git a/0.2.1/inc/language/mediadata_de.php b/0.2.1/inc/language/mediadata_de.php
new file mode 100644 (file)
index 0000000..6e05e5b
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/05/2005 *
+ * ===============                              Last change: 03/05/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : mediadata_de.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('MEDIA_DATA_GENERAL', "Allgemeine Mediendaten");
+define('MEDIA_DATA_POINTS', "{!POINTS!} im System");
+define('MEDIA_DATA_MISC', "Verschiedene Mediendaten");
+define('MEDIA_DATA_REFBANNER', "Daten zu unsere Referral-Bannern");
+define('MEDIA_DATA_MAIL', "Mailstatistik");
+
+define('MEDIA_DOUBLER_HEADER', "Statistiken - {!POINTS!}-Verdoppler");
+define('MEDIA_DOUBLER_COUNT', "Anzahl Auszahlungen");
+define('MEDIA_DOUBLER_CPOINTS', "Ausgezahlte {!POINTS!}");
+define('MEDIA_DOUBLER_WAITING', "In Warteschleife befindlich");
+define('MEDIA_DOUBLER_WPOINTS', "Wartende {!POINTS!}");
+
+define('MEDIA_TRANSFER_HEADER', "Statistiken - {!POINTS!}-Transfer");
+define('MEDIA_TRANSFER_IN_COUNT', "Anzahl eingehende Transfers");
+define('MEDIA_TRANSFER_IN_POINTS', "Eingehende {!POINTS!}");
+define('MEDIA_TRANSFER_OUT_COUNT', "Anzahl ausgehende Transfers");
+define('MEDIA_TRANSFER_OUT_POINTS', "Ausgehende {!POINTS!}");
+
+define('TOTAL_REF_BANNER', "Anzahl Referral-Banner");
+define('TOTAL_REF_CLICKS', "Klicks auf die Banner");
+define('TOTAL_REF_VIEWS', "Einblendungen der Banner");
+define('TOTAL_REFCLICKS', "Referral-Klicks");
+define('MEDIA_BEG_CLICKS', "Klicks auf Bettellinks");
+define('MEDIA_HOLIDAY_COUNT', "Auf Urlaub gestellte Accounts");
+define('CONTINUE_MEMBER_STATS', "Weiter zur Mitglieder-Statistik");
+
+define('MEDIA_DATA_SCRIPT', "Daten zur verwendeten Software");
+define('ENGINE_SOFTWARE', "Verwendete Engine");
+define('ENGINE_VERSION', "Installierte MXChange-Version");
+define('ENGINE_PATCH_LEVEL', "Patch-Level");
+define('ENGINE_PATCH_CTIME', "Letzte Aktualisierung");
+
+// Admin area
+define('ADMIN_MEDIADATA_SETTINGS', "Einstellungen zu den Mediendaten");
+define('ADMIN_MEDIADATA_MT_START', "Startdatum Ihres ".MT_WORD2."");
+define('ADMIN_MEDIADATA_MT_START_NOTE', "Bitte beachten Sie, dass das Startdatum Ihres ".MT_WORD2." nicht in der Zukunft liegen darf!");
+define('ADMIN_MEDIADATA_MT_STAGE', "Anzahl zu vorausberechnende Mitgliederanzahl");
+define('ADMIN_MEDIADATA_MT_STAGE_NOTE', "Geben Sie hier an, wie viele Mitglieder Ihr ".MT_WORD." erreichen soll. Es wird dann vom Script gesch&auml;tzt, an welchem Tag dies sein wird.");
+
+// New guest data
+define('MEDIA_DATA_MEMBERS', "Mitglieder-Statistik");
+define('USERS_CONFIRMED', "Best&auml;tigte Accounts");
+define('USERS_UNCONFIRMED', "Auf Freischaltung wartend");
+define('USERS_LOCKED', "Gesperrte Accounts");
+define('USER_MT_START', "Start dieses {!MT_WORD2!}");
+define('USER_MT_PROJECTED_1', "Voraussichtlich: Am <STRONG>");
+define('USER_MT_PROJECTED_2', "</STRONG> werden wir <STRONG>");
+define('USER_MT_PROJECTED_3', "</STRONG> Mitglieder erreicht haben!");
+define('USER_PROJECTION_UNKNOWN', "<I>unbekanntes Datum</I>");
+
+//
+?>
diff --git a/0.2.1/inc/language/mods_de.php b/0.2.1/inc/language/mods_de.php
new file mode 100644 (file)
index 0000000..29694f8
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/27/2004 *
+ * ===============                              Last change: 08/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : mods_de.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('MODS_NAME', "Modulname");
+define('MODS_TITLE', "Modultitel");
+define('MODS_IS_LOCKED', "Gesperrt");
+define('MODS_IS_HIDDEN', "Verdeckt");
+define('MODS_IS_ADMIN', "Nur Admin");
+define('MODS_IS_MEMBER', "Nur Mitglied");
+define('MODS_CLICKS', "Klicks");
+define('MODS_EDIT', "Module &auml;ndern");
+define('MODS_ADMIN_EDIT_NOTE', "Klicken Sie auf den Modulnamen, um Statistiken zu den verkn&uuml;pften Men&uuml;punkten zu erhalten.");
+define('MODS_NOTHING_SELECTED', "Bitte mindestens ein Modul ausw&auml;hlen.");
+define('MODS_CHANGED', "Module wurden ge&auml;ndert.");
+define('MODS_WHAT_ACTION', "Men&uuml;punkt (Hauptmen&uuml;)");
+
+//
+?>
diff --git a/0.2.1/inc/language/newsletter_de.php b/0.2.1/inc/language/newsletter_de.php
new file mode 100644 (file)
index 0000000..8c50201
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/10/2005 *
+ * ===============                              Last change: 01/10/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : newsletter_de.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+
+// Language definitions
+define('ADMIN_SEND_NL', "Newsletter versenden");
+define('NEWSLETTER_FROM', "Newsletter vom");
+define('ENTER_NL_SUBJECT', "Betreffzeile");
+define('ENTER_NL_TEXT', "Werbetext");
+define('ADMIN_NL_TITLE', "Newsletter an Mitglieder versenden");
+define('ADMIN_NL_SEND_MODE', "Aussendemodus der Mails");
+define('NL_MODE_TEXT', "Text-Mail");
+define('NL_MODE_HTML', "HTML-Mail");
+define('ADMIN_NL_SEND_DONE', "Newsletter wurde versendet.");
+define('ADMIN_NEWSLETTER_SETTINGS', "Einstellungen am Newsletter");
+define('ADMIN_NL_CHARGE', "Monatliche Geb&uuml;hr zur Abschaltung des Newsletters");
+define('ADMIN_NL_AUTO_ADD', "URLs automatisch umwandeln");
+define('ADMIN_NL_SUBJECT', "Newsletterabmeldung");
+define('ADMIN_TASK_IS_NL_UNSUBSCRIBE', "Newsletter-System");
+define('ADMIN_NL_UNSUBSCRIBE', "Abbestellung durchf&uuml;hren");
+define('ADMIN_NL_UNSUBSCRIBE_ALREADY', "Abbestellung bereits durchgef&uuml;hrt!");
+define('ADMIN_NL_MEMBER_DONE', "Mitglied wurde ausgetragen und benachrichtigt.");
+define('NL_MEMBER_TITLE', "Newsletter abbestellen");
+define('NL_MEMBER_RECEIVE_STATUS', "Newsletterempfang ist derzeit...");
+define('NL_MEMBER_CHARGE', "Abbestellgeb&uuml;hr f&uuml;r einen Monat");
+define('NL_MEMBER_ON', "eingeschaltet");
+define('NL_MEMBER_OFF', "ausgeschaltet");
+define('NL_MEMBER_SUBMIT_ON', "Jetzt wieder einschalten");
+define('NL_MEMBER_SUBMIT_OFF', "Abschaltung *verbindlich* bestellen");
+define('NL_MEMBER_SUBJECT', "Ihre Newsletterabbestellung");
+define('NL_ADMIN_SUBJECT', "Abbestellungsanfrage des Newsletters");
+define('NL_MEMBER_REQUEST_DONE', "Abestellungsanfrage versendet.");
+define('NL_MEMBER_REQUEST_ALREADY', "Newsletterabbestellung ist bereits beantragt.");
+define('NL_MEMBER_DONE_SUBJECT', "Newsletter-Austragung abgeschlossen");
+define('NL_MEMBER_RESET_SUBJECT', "Automatische Eintragung in Newsletter");
+define('ADMIN_NEWSLETTER_NOTE', "Hinweis: Wenn die URLs umgewandelt werden sollen, wird ein Dereferrer eingesetzt.");
+
+//
+?>
diff --git a/0.2.1/inc/language/nickname_de.php b/0.2.1/inc/language/nickname_de.php
new file mode 100644 (file)
index 0000000..7a63689
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/20/2004 *
+ * ===============                              Last change: 12/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : nickname_de.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('NICKNAME_CHANGE_NICKNAME_TITLE', "Einstellen Ihres Nicknames");
+define('NICKNAME_CHANGE_NICKNAME_INTRO', "Stellen Sie hier einen Nicknamen ein, der anstelle Ihrer User-ID angezeigt wird! Dieser darf nur unten aufgef&uuml;hrte Zeichen enthalten und sollte nicht k&uuml;rzer als {--__NICKNAME_LENGTH--} Zeichen sein.");
+define('NICKNAME_ENTER_NICKNAME', "Nickname eingeben");
+define('NICKNAME_SUBMIT', "Nickname &auml;ndern");
+define('NICKNAME_ALREADY_IN_USE', "Der von Ihnen eingegebene Nickname wird bereits verwendet!");
+define('NICKNAME_SAVED', "Nickname wurde gespeichert.");
+define('GUEST_ENTER_LOGIN_NICKNAME', "Nickname o. Login-ID");
+define('NICKNAME_ALLOWED_CHARS', "Erlaubte Zeichen: <STRONG>{--__NICKNAME_LANG_CHARS--}</STRONG>");
+define('NICKNAME_IS_INVALID', "Ung&uuml;tige Zeichen im Nicknamen gefunden oder ist zu kurz!");
+define('NICKNAME_YOUR_REFLINK', "Ihr Nickname-Reflink");
+define('NO_NICKNAME_SET', "Sie haben noch keinen Nickname eingerichtet! Damit k&ouml;nnen Sie sich alternativ zur User-ID einloggen.");
+define('PLEASE_CLICK_NICKNAME_FORM', "Hier k&ouml;nnen Sie sich nun einen einrichten...");
+define('NICKNAME_ADMIN_CONFIG_HEADER', "Einstellungen am Nicknamen");
+define('ADMIN_NICKNAME_MIN_LENGTH', "Minimale L&auml;nge");
+define('ADMIN_NICKNAME_PATTERN', "Pattern f&uuml;r ereg()-Befehl");
+define('ADMIN_NICKNAME_LANG_CHARS', "Zeichenfolge f&uuml;r Sprachdatei");
+
+//
+?>
diff --git a/0.2.1/inc/language/online_de.php b/0.2.1/inc/language/online_de.php
new file mode 100644 (file)
index 0000000..8c21f88
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/14/2005 *
+ * ===============                              Last change: 01/14/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : online_de.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ONLINE_STATISTICS_DEACTIVATED', "Online-Statistik deaktivert.");
+
+//
+?>
diff --git a/0.2.1/inc/language/optimize_de.php b/0.2.1/inc/language/optimize_de.php
new file mode 100644 (file)
index 0000000..86946fa
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/12/2004 *
+ * ===============                              Last change: 09/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : optimize_de.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('OPTIMIZE_DBNAME', "Tabelle");
+define('OPTIMIZE_REPAIRED', "Repariert");
+define('OPTIMIZE_OPTIMIZED', "Optimiert");
+define('OPTIMIZE_TOTAL_SIZE', "Gesamtgr&ouml;sse");
+define('OPTIMIZE_GAIN_SIZE', "Eingespart");
+define('OPTIMIZE_STATUS_OK', "Nein");
+define('OPTIMIZE_STATUS_OPTIMIZED', "Optimiert!");
+define('OPTIMIZE_DB_TOTAL_TABLES', "Gesamtzahl angelegter Tabellen");
+define('OPTIMIZE_DB_TOTAL_SIZE', "Gesamtgr&ouml;&szlig;e der Datenbank");
+define('OPTIMIZE_DB_TOTAL_OPTIMIZE', "Aufrufe der Optimierungsfunktion");
+define('OPTIMIZE_DB_TOTAL_GAIN_SIZE', "Diesen Durchlauf eingespart");
+define('OPTIMIZE_DB_TOTAL_GAIN_TABLES', "Diesen Durchlauf optimierte Tabellen");
+define('OPTIMIZE_DB_TOTAL_OPTI', "Gesamteinsparnisse");
+
+//
+?>
diff --git a/0.2.1/inc/language/order_de.php b/0.2.1/inc/language/order_de.php
new file mode 100644 (file)
index 0000000..648214f
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/19/2004 *
+ * ===============                              Last change: 09/19/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : order_de.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ORDER_ADMIN_SETTINGS', "Einstellungen - Mailbuchungsseite");
+define('ORDER_ADMIN_MISC_SETTINGS', "Weitere Einstellungen");
+define('ORDER_MAX_ORDER_SELECT', "Wie viele Mailbuchungen sollen die Mitglieder maximal versenden k&ouml;nnen?");
+define('ORDER_MIN_RECEIVER_PER_ORDER', "Minimale Empf&auml;nger pro Mailbuchung");
+define('ORDER_ADMIN_MAX', "So viele wie m&ouml;glich.");
+define('ORDER_ADMIN_ORDER', "So viele wie auf Empfang eingestellt.");
+define('ORDER_ALLOWED_RECEIVE_1', "Sie k&ouml;nnen heute noch <STRONG>");
+define('ORDER_ALLOWED_RECEIVE_2', "</STRONG> von <STRONG>");
+define('ORDER_ALLOWED_RECEIVE_3', "</STRONG> Mailbuchungen aufgeben.");
+define('MEMBER_ORDER_MAX_ALLOWED', "Maximale Mailbuchungen");
+define('ORDER_ALLOED_MAX', "Sie k&ouml;nnen solange Mailbuchungen aufgeben, bis alle Mitglieder nicht mehr empfangsbereit sind.");
+define('MEMBER_ORDER_ALLOWED_EXHAUSTED', "Sie k&ouml;nnen keine weiteren Mails mehr versenden, oder stellen Sie bitte den Empfang h&ouml;her ein.");
+define('MEMBER_MIN_RECS_1', "Minimum:");
+define('MEMBER_MIN_RECS_2', "");
+define('MEMBER_ENTER_INVALID_URL', "Ung&uuml;tige URL eingegeben!");
+define('ADMIN_ORDER_SELECTION_COLUMN', "Tabellenspalte, nach der umsortiert werden soll");
+define('ADMIN_ORDER_SELECTION_MODE', "Sortierreihenfolge");
+define('ADMIN_ORDER_SELECTION_SETTINGS', "Auswahlverfahren der Empf&auml;nger");
+
+define('ORDER_SELECT_COLUMN_USERID', "Mitgliedsnummer");
+define('ORDER_SELECT_COLUMN_ZIP', "Postleitzahl");
+define('ORDER_SELECT_COLUMN_COUNTRY', "Land");
+define('ORDER_SELECT_COLUMN_EMAIL', "EMail-Adresse");
+define('ORDER_SELECT_COLUMN_BIRTH_YEAR', "Geburtsjahr");
+define('ORDER_SELECT_COLUMN_LAST_ONLINE', "Als letztes Online");
+define('ORDER_SELECT_COLUMN_REF_CLICKS', "Klicks auf Ref-Link");
+define('ORDER_SELECT_COLUMN_TOTAL_LOGINS', "Gesamtlogins");
+define('ORDER_SELECT_COLUMN_MAIL_ORDERS', "Heutige Mailbuchungen");
+
+define('ADMIN_AUTOSEND_INACTIVE', "Der Auto-Versand ist in Ihrem {!MT_WORD!} derzeit deaktiviert. Bitte loggen Sie sich in den Admin-Bereich ein und schalten Sie diese Mailbuchung frei!");
+define('ADMIN_AUTOSEND_ACTIVE', "Der Auto-Versand ist in Ihrem {!MT_WORD!} derzeit aktiviert. Die Mailbuchung wird aktiviert und dann automatisch versand.");
+define('MEMBER_AUTOSEND_INACTIVE', "Der Auto-Versand ist in unserem {!MT_WORD!} derzeit deaktiviert. Ihre Mailbuchung wird bald von einem Administrator ueberprueft und dann freigegeben.");
+define('MEMBER_AUTOSEND_ACTIVE', "Der Auto-Versand ist in unserem {!MT_WORD!} derzeit aktiviert. Ihr Mailbuchung wurde aktiviert und wird bald automatisch versant.");
+
+//
+?>
diff --git a/0.2.1/inc/language/other_de.php b/0.2.1/inc/language/other_de.php
new file mode 100644 (file)
index 0000000..cf6d294
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/19/2003 *
+ * ===============                              Last change: 11/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : de.php                                           *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language constans
+define('ADMIN_OTHER_SETTINGS', "Sonstige Einstellungen");
+define('ADMIN_OPTION_URL_TIME_LOCK', "Selbe beworbene URL nicht mehr bewerbar (0 = URL sofort erneut buchbar)");
+define('ADMIN_OPTION_POOL_MAX_SEND', "Anzahl zu sendender Mails aus dem Pool");
+define('ADMIN_OPTION_MAX_UNCONFIRMED_MAILS', "Maximale Anzahl unbest. Mails (Mailbuchung)");
+define('ADMIN_OPTION_LOCK_PROFILE_TIME', "Sperrzeit des Mitgliedprofiles nach &Auml;nderung (0 = Keine Sperrzeit)");
+define('ADMIN_OPTION_MAX_TEXT_LENGTH', "Maximale L&auml;nge des Werbetextes");
+define('ADMIN_OPTION_CHECK_EMAIL_TEXT', "Sind URLs im Werbetext erlaubt?");
+define('ADMIN_OPTION_CHECK_EMAIL_SUBJ', "Sind URLs in der Betreffzeile erlaubt?");
+define('ADMIN_OPTION_URL_BLACKLIST', "Black-Liste f&uuml;r gebuchte URLs aktivieren?");
+define('ADMIN_OPTION_AUTOSEND_ACTIVE', "Ist der Auto-Versand aktiv?");
+define('ADMIN_OPTION_NOTIFY_ADMIN', "Benachrichtigung bei Profil&auml;nderung?");
+define('ADMIN_OPTION_MAX_ONLINETIME', "Timeout f&uuml;r Who-is-Online");
+define('ADMIN_OPTION_SEND_UPDATE', "Mail zur Erneurung des Profiles senden?");
+define('ADMIN_SENDING_SETTINGS', "Versand-Optionen");
+define('ADMIN_NOTIFY_SETTINGS', "Benachrichtigungsoptionen");
+define('ADMIN_TIMEOUT_SETTINGS', "Time-out Optionen");
+define('ADMIN_PROFILE_TIME_SETTINGS', "Zeitenangaben f&uuml;r Mitgliederprofile");
+define('ADMIN_OPTION_PROFILE_UPDATE', "Profilaktualisierungsinterval (0 = Keine Erinnerung aussenden)");
+define('ADMIN_OPTION_PROFILE_REUPDATE', "Erneute Aussendung der Mail (0 = Keine Erinnerung aussenden)");
+define('ADMIN_OPTION_CODE_LENGTH', "L&auml;nge des grafischen Codes im Best.-Frame (0 = Nur Button anklicken)");
+define('ADMIN_CODE_LENGTH_NOTE', "(Zeichenanzahl)");
+define('ADMIN_OPTION_ACTIVATE_EXCHANGE', "Automatisches Freischalten des Mailtauschs, wenn x Mitglieder empfangsbereit sind. 0 = Funktion abschalten");
+define('ADMIN_OPTION_ZIPCODE_ACTIVE', "Versand nach PLZ erlauben");
+define('ADMIN_OPTION_POINTS_WORD', "W&auml;hrung Ihres Tausches (Klammlose, Wernis, FuCo, etc.)");
+define('ADMIN_OPTION_MAX_COMMA', "Angezeigte Stellen hinter dem Komma");
+define('ADMIN_OPTION_CSS_PHP', "Sollen die CSS-Dateien direkt ausgegeben werden oder von css.php angezeigt werden?");
+define('ADMIN_CSS_PHP_DIRECT', "Direkt ausgeben");
+define('ADMIN_CSS_PHP_FILE', "Per css.php ausgeben");
+define('ADMIN_OPTION_GUEST_MENU', "Gastmen&uuml; global ein-/ausblenden");
+define('ADMIN_OPTION_MEMBER_MENU', "Mitgliedsmen&uuml; global ein-/ausblenden");
+define('ADMIN_OPTION_YOURE_HERE', "Navigation &quot;Sie sind hier&quot; ein-/ausblenden");
+define('ADMIN_GUEST_MENU_ACTIVE', "Einblenden");
+define('ADMIN_GUEST_MENU_INACTIVE', "Ausblenden");
+define('ADMIN_MEMBER_MENU_ACTIVE', "Einblenden");
+define('ADMIN_MEMBER_MENU_INACTIVE', "Ausblenden");
+define('ADMIN_YOURE_HERE_ACTIVE', "Einblenden");
+define('ADMIN_YOURE_HERE_INACTIVE', "Ausblenden");
+define('ADMIN_OPTION_MT_WORD', "Art Ihres Tausches (1. Fall)");
+define('ADMIN_OPTION_MT_WORD2', "Art Ihres Tausches (2. Fall)");
+define('ADMIN_OPTION_MT_WORD3', "Art Ihres Tausches (1. Fall, Plural)");
+define('ADMIN_OPTION_REJECT_URL', "Standart-URL bei Ablehnung der Mailbuchung");
+
+//
+?>
diff --git a/0.2.1/inc/language/payout_de.php b/0.2.1/inc/language/payout_de.php
new file mode 100644 (file)
index 0000000..799d159
--- /dev/null
@@ -0,0 +1,143 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/11/2004 *
+ * ===============                              Last change: 08/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : payout_de.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_PAYOUT_ADD_NEW_TITLE', "Neuer Auszahlungstyp hinzuf&uuml;gen");
+define('ADMIN_PAYOUT_ADD_NEW_NOTE', "Auszahlungsbezeichnung kann z.B. Lose, FCs, HCs oder &euro; sein.");
+define('ADMIN_PAYOUT_ADD_NEW', "Hinzuf&uuml;gen");
+define('ADMIN_PAYOUT_FROM', "Ihr Account");
+define('ADMIN_PAYOUT_TITLE', "Auszahlungsbezeichnung");
+define('ADMIN_PAYOUT_RATE', "Umrechnungsrate: 1 Punkt =");
+define('ADMIN_PAYOUT_RATE2', "Umrechnungsrate");
+define('ADMIN_PAYOUT_VALUE_NOTE', "0.1, 1.2 o.&auml;");
+define('ADMIN_PAYOUT_TYPE_ADDED', "Auszahlungstyp hinzugef&uuml;gt.");
+define('ADMIN_PAYOUT_TYPE_ALREADY', "Auszahlungstyp existiert bereits!");
+define('ADMIN_PAYOUT_EDIT_DEL_TITLE', "Editieren / L&ouml;schen von Auszahlungstypen");
+define('ADMIN_PAYOUT_EDIT_TITLE', "Ausgw&auml;hlte Eintr&auml;ge editieren");
+define('ADMIN_PAYOUT_DELETE_TITLE', "Ausgw&auml;hlte Eintr&auml;ge l&ouml;schen");
+define('ADMIN_PAYOUT_EDIT', "Editieren");
+define('ADMIN_PAYOUT_DELETE', "L&ouml;schen");
+define('ADMIN_PAYOUT_NO_MEMBER_REQUESTS', "Keine Auszahlungsanfragen von Ihren Mitgliedern erhalten!");
+define('ADMIN_PAYOUT_ENTRIES_CHANGED', "Eintr&auml;ge wurden ge&auml;ndert.");
+define('ADMIN_PAYOUT_ENTRIES_DELETED', "Eintr&auml;ge wurden gel&oumllscht.");
+define('ADMIN_PAYOUT_MIN_POINTS', "Minium {!POINTS!}-Guthaben");
+define('ADMIN_PAYOUT_MIN_POINTS2', "Min. {!POINTS!}");
+define('ADMIN_PAYOUT_YOUR_ACCOUNT', "Ihre Account-ID");
+define('ADMIN_PAYOUT_YOUR_PASSWORD', "Passwort");
+define('ADMIN_PAYOUT_YOUR_URL', "URL zum ext. Script");
+define('ADMIN_PAYOUT_YOUR_URL_NOTE', "<FONT class=\"admin_note\">
+  Wobei &#36;fuid/&#36;fpass und &#36;f/&#36;fpass die Logindaten sind und &#36;points die zu &uuml;bberweisenden {!POINTS!} sind:<BR>
+  http://url/engine.php?action=trans&amp;from_uid=&#36;fuid&amp;from_pass=&#36;fpass&amp;to_uid=&#36;tuid&amp;to_pass=&#36;tpass&amp;points=&#36;points<BR>
+</FONT>");
+define('ADMIN_PAYOUT_YOUR_RET_DONE', "Return-Code: Erfolgreich");
+define('ADMIN_PAYOUT_YOUR_RET_FAILED', "Return-Code: Fehlgeschlagen");
+define('ADMIN_PAYOUT_OPTIONAL_SETTINGS', "Optionale Einstellungen");
+define('ADMIN_PAYOUT_YOUR_PASS_TRANSFER', "Passwortverschl&uuml;sslung zur &Uuml;bertragung");
+define('PAYOUT_NOW', "Sie k&ouml;nnen Ihre angesammelten {!POINTS!} jetzt in anderen W&auml;hrungen auszahlen lassen!");
+define('PAYOUT_IN', "Auszahlen in");
+define('PAYOUT_MAX', "maximal");
+define('PAYOUT_ID_INVALID', "Auszahlungs-ID ist ung&uuml;ltig!");
+define('PAYOUT_POINTS_NOT_ENOUGTH', "Sie haben nicht ausreichend {!POINTS!} angesammelt!");
+define('PAYOUT_NOW_TITLE', "Auszahlungsanforderung an uns senden:");
+define('PAYOUT_SEND_NOW', "Auszahlung anfordern");
+define('PAYOUT_SELECTED_TYPE', "Auszahlungstyp");
+define('PAYOUT_MAX_PAYOUT', "Maximal auszahlbar");
+define('PAYOUT_WANT_PAYOUT', "Auszuzahlender Betrag");
+define('PAYOUT_TARGET_ACCOUNT', "An Accountnummer");
+define('PAYOUT_TARGET_BANK', "Bankleitzahl (od. Klamm)");
+define('PAYOUT_MEMBER_NOTE', "Accountnummer kann Ihre Kontonummer bei der Bank, Klamm-ID oder Ihre ID bei der Empf&auml;nger-Webseite sein. Bitte beachten Sie weitere Hinweise dieses ".MT_WORD2."!");
+define('PAYOUT_REQUEST_MEMBER', "Ihre Auszahlungsanfrage an uns");
+define('PAYOUT_REQUEST_ADMIN', "Auszahlungsanfrage eines Mitgliedes");
+define('PAYOUT_REQUEST_SENT', "Auszahlungsanfrage wurde versendet . . .");
+define('ADMIN_TASK_IS_PAYOUT_REQUEST', "Auszahlungsanfrage");
+define('ADMIN_PAYOUT_LIST_REQUESTS', "Jetzt alle Auszahlungsanfragen auflisten.");
+define('PAYOUT_ADMIN_LIST_PAYOUTS', "Alle Auszahlungen nach Mitgliedern auflisten");
+define('PAYOUT_DELETE_ALL_REQUESTS', "Alle Anfragen <STRONG>*SOFORT*</STRONG> l&ouml;schen");
+define('PAYOUT_TOTAL_PAYOUT', "Gesamtbetrag");
+define('PAYOUT_TARGET_ACCOUNT2', "Ziel-Account");
+define('PAYOUT_TARGET_BANK2', "Ziel-Bank");
+define('PAYOUT_ID', "Auszahlungs-ID");
+define('PAYOUT_TIMESTAMP', "Wann?");
+define('PAYOUT_STATUS', "Status&nbsp;/&nbsp;Aktionen");
+define('PAYOUT_STATUS_NEW', "Neu");
+define('PAYOUT_STATUS_ACCEPTED', "Angenommen");
+define('PAYOUT_STATUS_REJECTED', "Abgelehnt");
+define('PAYOUT_MEMBER_STATUS_NEW', "In Arbeit");
+define('PAYOUT_MEMBER_STATUS_ACCEPTED', "Angenommen");
+define('PAYOUT_MEMBER_STATUS_REJECTED', "Abgelehnt");
+define('PAYOUT_ACCEPT_PAYOUT', "Annehmen");
+define('PAYOUT_REJECT_PAYOUT', "Ablehnen");
+define('PAYOUT_OBTAIN_ID_FAILED', "Konnte ID nicht finden! Bitte links im Men&uuml; diese Anfrage aufsuchen!");
+define('PAYOUT_FAILED_OBTAIN_USERID', "Konnte Mitglieds-ID nicht finden!");
+define('PAYOUT_FAILED_OBTAIN_TASK_ID', "Konnte Task-ID nicht finden!");
+define('PAYOUT_FAILED_OBTAIN_USERDATA', "Konnte Mitgliedsdaten nicht laden!");
+define('PAYOUT_FAILED_OBTAIN_PAYOUT_ID', "Konnte Auszahlungs-ID nicht laden!");
+define('PAYOUT_ACCEPT_PAYOUT_INTRO', "Auszahlungsanfrage annehmen");
+define('PAYOUT_REJECT_PAYOUT_INTRO', "Auszahlungsanfrage ablehnen");
+define('PAYOUT_RECEIVER_ACCEPT', "Empf&auml;nger der Auszahlung");
+define('PAYOUT_RECEIVER_REJECT', "Empf&auml;nger der Ablehnung");
+define('PAYOUT_OPTIONAL_TEXT', "Optionale Hinweise an den Empf&auml;nger");
+define('PAYOUT_ACCEPTED_NOTIFIED', "Anfrage angenommen! Bitte &uuml;berweisen Sie nun den Betrag!");
+define('PAYOUT_REJECTED_NOTIFIED', "Anfrage abgelehnt! Das Mitglied wurde benachrichtigt.");
+define('PAYOUT_ACCEPTED_SUBJECT', "[Auszahlunganfrage:] Angenommen!");
+define('PAYOUT_REJECTED_SUBJECT', "[Auszahlunganfrage:] Abgelehnt!");
+define('PAYOUT_MEMBER_LIST_PAYOUTS', "Ihre Auszahlungsanfragen");
+define('PAYOUT_OPTIONAL_PASSWORD', "Optionales Passwort");
+define('PAYOUT_ADMIN_NO_REQUESTS_FOUND', "Keine Auszahlungsanfragen von Ihren Mitgliedern erhalten.");
+define('PAYOUT_REASON_PAYOUT', "{!POINTS!}-Transfer von ".MAIN_TITLE);
+define('ADMIN_PAYOUT_TRANSFER_FAILED', "Transfer nicht abgeschlossen:");
+define('ADMIN_PAYOUT_ALLOW_URLS', "URLs erlauben");
+define('PAYOUT_URLS_ALLOWED', "Keine direkte e-W&auml;hrung");
+define('PAYOUT_TARGET_URL', "Beworbene URL");
+define('PAYOUT_ALTERNATE_TEXT', "Kurzer Text (30 Zeichen)");
+define('PAYOUT_OPTIONAL_BANNER', "Optionaler Banner");
+define('PAYOUT_BANNER_NOTE', "Erlaube Bannerformate: 468x60, 88x31 usw.");
+define('PAYOUT_REMEMBER_TERMS', "Bitte beachten Sie f&uuml;r Auszahlungen in e-W&auml;hrungen unsere AGBs!");
+define('PAYOUT_MEMBER_STATUS', "Status");
+define('CLICK_HERE', "Klick!");
+define('PAYOUT_BANNER_ACCEPTED_NOTIFIED', "Anfrage angenommen, bitte richten Sie eine Werbekampagne ein!");
+define('PAYOUT_NOT_ENOUGH_POINTS', "Sie haben nicht ausreichend {!POINTS!}!");
+define('PAYOUT_NO_PAYOUT_TYPES', "Es wurden vom Admin noch keine Auszahlungstypen eingerichtet.");
+define('PAYOUT_LINK_TEXT', "Link-Text");
+define('PAYOUT_LINK_URL', "Link-URL");
+define('PAYOUT_NO_POINTS_ENTERED', "Sie haben keine {!POINTS!} zum Auszahlen eingegeben, oder es besteht ein &Uuml;bertragungsfehler! Bitte benachrichtigen Sie den Support!");
+
+//
+?>
diff --git a/0.2.1/inc/language/rallye_de.php b/0.2.1/inc/language/rallye_de.php
new file mode 100644 (file)
index 0000000..9a8dcfb
--- /dev/null
@@ -0,0 +1,148 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/04/2004 *
+ * ===============                              Last change: 08/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : rallye_de.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_RALLYE_ADD_NEW_TITLE', "Neue Ref-Rallye hinzuf&uuml;gen");
+define('ADD_RALLYE', "Rallye hinzuf&uuml;gen");
+define('ADD_RALLYE_PRICE', "Preis hinzuf&uuml;gen");
+define('RALLYE_START_DAY', "Beginn der Rallye");
+define('RALLYE_END_DAY', "Ende der Rallye");
+define('RALLYE_AUTO_ADD_USER', "Neue Mitglieder nehmen automatisch dran teil");
+define('RALLYE_IS_ACTIVE', "Rallye ist aktiv");
+define('RALLYE_SEND_NOTIFY', "Autom. Benachrichtigung an Mitglieder senden");
+define('RALLYE_OVERLAP_TIMES', "Rallyes d&uuml;rfen nicht zeitgleich laufen!");
+define('RALLYE_TITLE', "Rallye-Titel");
+define('RALLYE_DESCR', "Kurze Beschreibung / Freier HTML-Code der Rallye");
+define('RALLYE_TEMPLATE', "Template (anstelle freien HTML-Codes)");
+define('RALLYE_PROBLEM_CREATE', "Problem beim Erzeugen der Rallye!");
+define('RALLYE_NO_RALLYES_SETUP', "Bitte f&uuml;gen Sie zuerst eine neue Rallye hinzu.");
+define('RALLYE_CONFIG_PRICES_1', "Preise einrichten f&uuml;r Rallye <U>");
+define('RALLYE_CONFIG_PRICES_2', "</U>");
+define('RALLYE_PRICE_LEVEL', "Platz eingeben (1, 2, 3, usw.)");
+define('RALLYE_PRICE_POINTS', "Preis in {!POINTS!}");
+define('RALLYE_PRICE_INFOS', "Preisbeschreibung (<FONT class=\"tiny\">Sie k&ouml;nnen auch nur die Beschreibung eingeben!</FONT>)");
+define('RALLYE_PRICE_ALREADY_FOUND', "Sie haben bereits f&uuml;r diesen Platz einen Preis vergeben oder ist identisch mit anderen Preisen!");
+define('RALLYE_PRICE_LEVEL_SAVED', "Preis wurde hinzugef&uuml;gt.");
+define('RALLYE_EDIT_DEL_PRICES', "&Auml;ndern und L&ouml;schen von Rallye-Preisen");
+define('RALLYE_LEVEL', "Platz");
+define('RALLYE_PRICE_INFO', "Infos");
+define('RALLYE_EDIT_SELECTED_PRICES', "Preise/Pl&auml;tze &auml;ndern");
+define('RALLYE_EDIT_PRICES', "Editieren");
+define('RALLYE_DELETE_PRICES', "L&ouml;schen");
+define('RALLYE_CHANGE_PRICES', "&Auml;ndern");
+define('RALLYE_ID', "Rallye-ID");
+define('RALLYE_EDIT_DEL_RALLYES', "&Auml;ndern / L&ouml;schen von Rallyes (Grunddaten)");
+define('RALLYE_ADMIN_ID', "Admin-Login");
+define('RALLYE_TSTART', "Anfang");
+define('RALLYE_TEND', "Ende");
+define('RALLYE_EDIT_ADMIN', "Editieren");
+define('RALLYE_DELETE_ADMIN', "L&ouml;schen");
+define('RALLYE_EDIT_DEL_NOTE', "Wenn Sie die Grunddaten der ausgew&auml;hlten Rallyes &auml;ndern / l&ouml;schen wollen, markieren Sie diese per K&auml;stchen. Wollen Sie die Preise &auml;ndern, klicken Sie den Rallye-Titel an. Aktive Rallyes k&ouml;nnen nicht ge&auml;ndert werden, sondern m&uuml;ssen erst deaktiviert werden.");
+define('RALLYE_ENTRIES_DELETED', "Eintr&auml;ge gel&ouml;scht.");
+define('RALLYE_ENTRIES_CHANGED', "Eintr&auml;ge ge&auml;ndert.");
+define('RALLYE_ENTRIES_NOT_DELETED', "Bitte w&auml;hlen Sie mindestens einen Eintrag zum L&ouml;schen aus.");
+define('RALLYE_DESCR2', "Kurzbeschreibung");
+define('RALLYE_TEMPLATE2', "Template");
+define('RALLYE_AUTO_ADD', "Autom. Teilnahme");
+define('RALLYE_ACTIVE', "Aktiviert");
+define('RALLYE_NOTIFY', "Benachrichtigen");
+define('RALLYE_NOTIFIED', "Benachrichtigt");
+define('RALLYE_ASSIGNED_PRICES', "Bereits eingerichtete Preise");
+define('RALLYE_ASSIGNED_USERS', "Teilnehmende Mitglieder");
+define('RALLYE_LIST_OVERVIEW_TITLE', "Datenbl&auml;tter der Rallyes");
+define('RALLYE_NO_RALLYES_SELECTED_1', "Sie haben keine ");
+define('RALLYE_NO_RALLYES_SELECTED_2', "Rallyes zum Editieren");
+define('RALLYE_NO_RALLYES_SELECTED_3', " ausgew&auml;hlt!");
+define('RALLYE_DEACTIVATE_NOW', "Rallye deaktivieren");
+define('RALLYE_ACTIVATE_NOW', "Rallye aktivieren");
+define('RALLYE_STOP_NOTIFY_NOW', "Nicht mehr benachrichtigen");
+define('RALLYE_START_NOTIFY_NOW', "Mitglieder autom. benachrichtigen");
+define('RALLYE_EDIT_ONLY_INACTIVE_NOTE', "Es k&ouml;nnen nur deaktivierte Rallyes bearbeitet bzw. gel&ouml;scht werden. Beim L&ouml;schen werden alle dazu verkn&uuml;pften Daten ebenfalls ohne Vorwarnung gel&ouml;scht.");
+define('RALLYE_DELETE_NOTHING_SELECTED', "Keine Rallye(s) zum L&ouml;schen ausgew&auml;hlt!");
+define('RALLYE_DELETED', "Rallye(s) wurde(n) gel&ouml;scht.");
+define('RALLYE_MEMBER_NO_PRICES', "--> Keine Preise ausgesetzt! <--");
+define('RALLYE_MEMBER_PRICES_ADDED', "Die Preise");
+define('RALLYE_PRICE', ". Platz");
+define('RALLYE_MEMBER_NOTIFY', "REF-RALLYE GESTARTET: ");
+define('RALLYE_ADMIN_NOTIFY', "Neue Ref-Rallye: ");
+define('RALLYE_ADMIN_USERS_404', "Zur ausgew&auml;hlten Rallye sind noch keine Mitglieder hinzugef&uuml;gt worden!");
+define('RALLYE_LIST_USERS_1', "Teilnehmende Mitglieder an der Rallye <U>");
+define('RALLYE_LIST_USERS_2', "</U>");
+define('RALLYE_OLD_REFS', "Refs vor Rallye");
+define('RALLYE_NEW_REFS', "Neue Refs");
+define('RALLYE_STOP_AUTO_ADD_NOW', "Auto-Beitreten neuer Mitglieder deaktivieren");
+define('RALLYE_START_AUTO_ADD_NOW', "Auto-Beitreten neuer Mitglieder aktivieren");
+define('RALLYE_GUEST_REFS', "Geworbene Mitglieder");
+define('_RALLYE_PRICE', "Platz");
+define('RALLYE_EXPIRE_ONE_DAY', "Rallye endet in weniger als 24 Stunden!");
+define('RALLYE_HAS_EXPIRED', "Diese Rallye ist beendet.");
+define('RALLYE_ADMIN_EXPIRED', "Rallye beendet");
+define('RALLYE_MEMBER_EXPIRED', "REF-RALLYE BEENDET");
+define('RALLYE_YOU_CAN_WIN', "Was Sie gewinnen k&ouml;nnen");
+define('RALLYE_OUR_WINNERS_ARE', "Unsere Gewinner sind dieses Mal");
+define('RALLYE_PRICE_IS', "Hat gewonnen");
+define('RALLYE_HAPPY_WINNERS', "Wir gratulieren allen Gewinnern!");
+define('RALLYE_ADMIN_PURGED', "Rallye entfernt");
+define('RALLYE_ADMIN_EXPIRED_TEXT', "Eine Referal-Rallye ist beendet worden. Bitte kontrollieren Sie diese und f&uuml;hren Sie ggf. weitere Schritte durch!");
+define('RALLYE_ADMIN_PURGED_TEXT', "Eine oder mehr Referal-Rallye(s) ist/sind gel&ouml;scht worden.");
+define('RALLYE_EDIT_RALLYES', "Rallye-Grunddaten &auml;ndern");
+define('RALLYE_CHANGE_ADMIN', "&Auml;nderungen speichern");
+define('RALLYE_CHANGED', "&Auml;nderungen gespeichert.");
+define('RALLYE_REF_POINTS', "Verdienst durch Refs");
+define('RALLYE_REGISTER_NOW', "Jetzt kostenlos und unverbindlich anmelden!");
+define('RALLYE_GET_REFLINK', "Jetzt dran teilnehmen!");
+define('ADMIN_TASK_IS_RALLYE_EXPIRED', "Rallye wurde beendet");
+define('ADMIN_TASK_IS_RALLYE_PURGED', "Rallye wurde gel&ouml;scht");
+define('RALLYE_LIST_USERS', "Alle teilnehmenden Mitglieder auflisten.");
+define('RALLYE_REF_POINTS_NOTE', "Die {!POINTS!} in der Spalte <U>Verdienst durch Refs</U> geben den Verdienst in erster Ebene vor der Rallye an und wird sich bis Ende der allye nicht ver&auml;ndern.");
+define('RALLYE_MIN_USERS', "Gesamtzahl der Mitglieder, ab der Rallye automatisch endet.");
+define('RALLYE_MIN_PRICES', "Mindestens zu belegende Pl&auml;tze");
+define('RALLYE_MIN_USERS_MINI', "Mitgliederanzahl erreicht");
+define('RALLYE_MIN_PRICES_MINI', "Minimum Pl&auml;tze");
+define('RALLYE_END_NO_USER_LIMITATION', "Die Rallye endet ohne Mitgliederbegrenzung.");
+define('RALLYE_END_NO_PRICE_LIMITATION', "Die Rallye endet ohne Platzbelegungsbegrenzung.");
+define('RALLYE_END_USERS_1', "Die Rallye endet, sobald wir");
+define('RALLYE_END_USERS_2', "Mitglieder in unserem {!MT_WORD!} haben!");
+define('RALLYE_END_PRICES_1', "Die Rallye endet, sobald mindestens");
+define('RALLYE_END_PRICES_2', "Plaetze belegt sind!");
+define('RALLYE_LIMITATIONS', "Einschr&auml;nkungen an der Dauer der Rallye");
+define('RALLYE_REMOVE_PRICES', "Rallye-Preis(e) entfernen");
+//
+?>
diff --git a/0.2.1/inc/language/register_de.php b/0.2.1/inc/language/register_de.php
new file mode 100644 (file)
index 0000000..8371c0b
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/10/2004 *
+ * ===============                              Last change: 07/17/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : register_de.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('REGISTER_MUST_SET_NOTE', "Sind Pflichtangaben, ansonsten erfolgt keine Anmeldung.");
+define('REGISTER_MUST_HEADER', "Pflichtfelder einstellen");
+define('REGISTER_CHANGE_MUST', "Einstellungen &auml;ndern");
+define('REGISTER_FIELD_NAME', "Eingabefeld");
+define('REGISTER_FIELD_REQUIRED', "Pflichtfeld?");
+define('REGISTER_ADMIN_CHANGES_SAVED', "&Auml;nderungen gespeichert.");
+define('REGISTER_SURNAME_REQUIRED', "Bitte geben Sie Ihren Vornamen ein.");
+define('REGISTER_FAMILY_NAME_REQUIRED', "Bitte geben Sie Ihren Nachnamen ein.");
+define('REGISTER_STREET_NR_REQUIRED', "Bitte geben Sie Stra&szlig;e und Hausnummer ein.");
+define('REGISTER_CNTRY_REQUIRED', "Bitte geben Sie den zweistelligen L&auml;ndercode ein.");
+define('REGISTER_ZIP_REQUIRED', "Bitte geben Sie die Postleitzahl ein.");
+define('REGISTER_CITY_REQUIRED', "Bitte geben Sie den Wohnort ein.");
+define('CNTRY', "L&auml;ndercode");
+define('ADMIN_CFG_REGISTER_DEFAULT', "Standart-Vorauswahl in der Kategorienliste einstellen auf Ja/Nein");
+define('ADMIN_CFG_REGISTER_DISPLAY_REFID', "Soll die Ref-ID angezeigt werden? <FONT class=\"admin_note\">(Nein = ID wird editierbar!)</FONT>");
+
+//
+?>
diff --git a/0.2.1/inc/language/repair_de.php b/0.2.1/inc/language/repair_de.php
new file mode 100644 (file)
index 0000000..db90d96
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/24/2004 *
+ * ===============                              Last change: 04/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : repair_de.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_REPAIR_CATS_NOTHING', "Keine Kategorie-Auswahlenn gefunden! Vermutlich sind keine Mitglieder registriert?");
+define('ADMIN_REPAIR_ENTRIES_FIXED_1', "Es wurden <STRONG>");
+define('ADMIN_REPAIR_ENTRIES_FIXED_2', "</STRONG> Eintr&auml;ge repariert!");
+define('ADMIN_REPAIR_NOTHING_FIXED', "Es wurden keine Eintr&auml;ge repariert!");
+
+//
+?>
diff --git a/0.2.1/inc/language/rewrite_de.php b/0.2.1/inc/language/rewrite_de.php
new file mode 100644 (file)
index 0000000..307dab9
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2005 *
+ * ===============                              Last change: 02/12/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : rewrite_de.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('MODULE_NAME', "Modulname");
+define('MODULE_TITLE', "Modultitel");
+define('MODULE_SKIPPED', "Modul wird ausgeblendet");
+define('ADMIN_CONFIG_REWRITE_NOTE', "Stellen Sie hier die Module ein, die von der Rewrite-Engine nicht<BR>
+auf die suchmaschienenoptimierten URLs umgeschrieben werden sollen.<BR>
+Das Modul <U>admin</U> sollten Sie *KEINES FALLS* aus der Liste enfernen!");
+
+//
+?>
diff --git a/0.2.1/inc/language/support_de.php b/0.2.1/inc/language/support_de.php
new file mode 100644 (file)
index 0000000..1a9eeea
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/19/2004 *
+ * ===============                              Last change: 09/19/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : support_de.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language constans
+define('SUPPORT_SUBJ_ADMIN_ORDER', "[Support:] Mailbuchung");
+define('SUPPORT_SUBJ_ADMIN_REFLINK', "[Support:] Referal-Link");
+define('SUPPORT_SUBJ_ADMIN_UNCONFIRMED', "[Support:] Unbestaetigte Mails");
+define('SUPPORT_SUBJ_MEMBER_ORDER', "Ihr Anfrage an den Support: Mailbuchung");
+define('SUPPORT_SUBJ_MEMBER_REFLINK', "Ihr Anfrage an den Support: Referal-Link");
+define('SUPPORT_SUBJ_MEMBER_UNCONFIRMED', "Ihr Anfrage an den Support: Unbestaetigte Mails");
+define('ADMIN_TASK_IS_SUPPORT_MEMBER', "Mitglieder-Support");
+define('ADMIN_UNKNOWN_SUPPORT_MODE_1', "Unbekannter Support-Modus <STRONG>");
+define('ADMIN_UNKNOWN_SUPPORT_MODE_2', "</STRONG> erkannt!");
+define('ADMIN_TASK_SUPPORT_MODE', "Support-Art");
+
+//
+?>
diff --git a/0.2.1/inc/language/task_de.php b/0.2.1/inc/language/task_de.php
new file mode 100644 (file)
index 0000000..d57db26
--- /dev/null
@@ -0,0 +1,122 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/03/2004 *
+ * ===============                              Last change: 12/21/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : task_de.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('TASK_ADMIN_OVERVIEW_HEADER', "Admin-&Uuml;bersicht zum {!MT_WORD!}-System");
+define('TASK_ADMIN_OVERVIEW_MEMBERS', "Mitglieder&uuml;bersicht");
+define('TASK_ADMIN_OVERVIEW_TASKS', "Task-&Uuml;bersicht");
+define('TASK_ADMIN_OVERVIEW_MAILS', "Mail-&Uuml;bersicht");
+define('TASK_ADMIN_OVERVIEW_EXTRAS', "Extra-&Uuml;bersichten");
+define('TASK_ADMIN_CONFIRMED', "Best&auml;tigt");
+define('TASK_ADMIN_UNCONFIRMED', "Unbest&auml;tigt");
+define('TASK_ADMIN_LOCKED', "Gesperrt");
+define('TASK_ADMIN_NEW_TASKS', "Ohne Zuweisung");
+define('TASK_ADMIN_CLOSED_TASKS', "Geschlossen");
+define('TASK_ADMIN_YOUR_TASKS', "Ihre Aufgaben");
+define('TASK_ADMIN_DELETED_TASKS', "Gel&ouml;scht");
+define('TASK_ADMIN_SOLVED_TASKS', "Erledigt");
+define('TASK_ADMIN_UPDATE_TASKS', "Updates");
+define('TASK_ADMIN_MAIL_ADMIN', "Wartende Mailbuchungen");
+define('TASK_ADMIN_MAIL_TEMP', "Abgebrochene Mailbuchungen");
+define('TASK_ADMIN_MAIL_SEND', "Versendete Mails");
+define('TASK_ADMIN_MAIL_DELETED', "Bereinigte Mails");
+define('TASK_ADMIN_MAIL_BONUS_AP', "Bereinigte Bonus-Mails");
+define('TASK_ADMIN_MAIL_BONUS_SEND', "Versendete Bonus-Mails");
+define('TASK_ADMIN_UNKNOWN_MODE_1', "Unbekannter Modus <U>");
+define('TASK_ADMIN_UNKNOWN_MODE_2', "</U> erkannt!");
+define('ADMIN_OVERVIEW_TASK_YOUR_TYPE', "Ihre zugewiesen Aufgaben (ohne Updates)");
+define('ADMIN_OVERVIEW_TASK_UPDATES_TYPE', "Automatisch durchgef&uuml;hrte Updates");
+define('ADMIN_OVERVIEW_TASK_SOLVED_TYPE', "Ihre erledigten Aufgaben");
+define('ADMIN_OVERVIEW_TASK_UNASSIGNED_TYPE', "Nicht zugewiesene und nicht gel&ouml;schte Aufgaben");
+define('ADMIN_OVERVIEW_TASK_DELETED_TYPE', "Als zu l&ouml;schende markierte Aufgaben");
+define('ADMIN_OVERVIEW_TASK_CLOSED_TYPE', "Ihre geschlossenen Aufgaben");
+define('TASK_ADMIN_DELETE_ENTRIES', "Sofort l&ouml;schen");
+define('TASK_DELETE_MODE_NOTE', "Diese Aufgaben sind zum automatischen L&ouml;schen freigegeben.<BR>
+Die automatische L&ouml;schung erfolgt durch die autopurge-Erweiterung.<BR>
+Sie k&ouml;nnen die Aufgaben aber auch jetzt endg&uuml;ltig l&ouml;schen!");
+define('TASK_ADMIN_UNKNOWN_LIST_TITLE', "Linktitel nicht gesetzt!");
+
+define('TASK_ADMIN_INACTIVE_AUTOPURGE', "Inaktive Accounts");
+define('TASK_ADMIN_INACTIVE_AUTOPURGE_TITLE', "Es gibt inaktiv gewordene Mitglieder in Ihrem ".MT_WORD."!");
+define('TASK_ADMIN_LIST_PAYOUTS_WAITING', "Wart. Auszahlungen");
+define('TASK_ADMIN_LIST_PAYOUTS_WAITING_TITLE', "Es warten Auszahlungsanfragen auf Ihre Bearbeitung!");
+define('TASK_ADMIN_LIST_PAYOUTS_ALL', "Alle Auszahlungen");
+define('TASK_ADMIN_LIST_PAYOUTS_ALL_TITLE', "Es gibt Auszahlungsanfragen!");
+define('TASK_ADMIN_LIST_HOLIDAYS', "Urlaubssanfragen");
+define('TASK_ADMIN_LIST_HOLIDAYS_TITLE', "Einige Ihrer Mitglieder haben Urlaub beantragt!");
+define('TASK_ADMIN_LIST_COUNTRY', "L&auml;ndercodes");
+define('TASK_ADMIN_LIST_COUNTRY_TITLE', "Sie haben L&auml;ndercodes eingerichtet!");
+define('TASK_ADMIN_LIST_DOUBLER_WAITING', "Wart. Verdopplungen");
+define('TASK_ADMIN_LIST_DOUBLER_WAITING_TITLE', "Es warten Vedopplungen auf Verg&uuml;tung!");
+define('TASK_ADMIN_LIST_DOUBLER_ALL', "Alle Verdopplungen");
+define('TASK_ADMIN_LIST_DOUBLER_ALL_TITLE', "In Ihrem ".MT_WORD." wurde verdoppelt!");
+define('TASK_ADMIN_LIST_BONUS', "Aktiv-Rallye-Teilnehmer");
+define('TASK_ADMIN_LIST_BONUS_TITLE', "Es gibt Teilnehmer in Ihrer Aktiv-Rallye!");
+define('TASK_ADMIN_LIST_SPONSOR', "Sponsorenaccounts");
+define('TASK_ADMIN_LIST_SPONSOR_TITLE', "Sie haben Sponsoren in Ihrem ".MT_WORD."!");
+define('TASK_ADMIN_LIST_SPONSOR_PENDING', "Wart. Sponsorenac.");
+define('TASK_ADMIN_LIST_SPONSOR_PENDING_TITLE', "Es warten Sponsorenaccounts auf Ihre Begutachtung wegen Freischaltung!");
+define('TASK_ADMIN_LIST_SPONSOR_CONFIRMED', "Best. Sponsorenac.");
+define('TASK_ADMIN_LIST_SPONSOR_CONFIRMED_TITLE', "Es sind Sponsorenaccounts freigeschaltet.");
+define('TASK_ADMIN_LIST_SPONSOR_UNCONFIRMED', "Unbest. Sponsorenac.");
+define('TASK_ADMIN_LIST_SPONSOR_UNCONFIRMED_TITLE', "Es m&uuml;ssen Sponsoren noch ihre Accounts best&auml;tigen!");
+define('TASK_ADMIN_LIST_SPONSOR_LOCKED', "Gesprte. Sponsorenac.");
+define('TASK_ADMIN_LIST_SPONSOR_LOCKED_TITLE', "Es wurden Sponsorenaccounts gesperrt!");
+define('TASK_ADMIN_LIST_SPONSOR_ORDERS', "Wart. Buch. d. Spons.");
+define('TASK_ADMIN_LIST_SPONSOR_ORDERS_TITLE', "Es warten Buchungen Ihrer Sponsoren wegen Annahme/Ablehnung!");
+define('TASK_ADMIN_LIST_THEME_ALL', "Alle inst. Themes");
+define('TASK_ADMIN_LIST_THEME_ALL_TITLE', "Es sind Themes installiert!");
+define('TASK_ADMIN_LIST_THEME_ACTIVE', "Aktivierte Themes");
+define('TASK_ADMIN_LIST_THEME_ACTIVE_TITLE', "Sie haben Themes in Ihrem ".MT_WORD." aktiviert!");
+define('TASK_ADMIN_LIST_ADMINS_ALL', "Administratoren");
+define('TASK_ADMIN_LIST_ADMINS_ALL_TITLE', "Es existieren Administratoren-Accounts in Ihrem Mailtausch!");
+define('TASK_ADMIN_LIST_REFBANNER_ALL', "Alle Referral-Banner");
+define('TASK_ADMIN_LIST_REFBANNER_ALL_TITLE', "Es exisitieren Erweiterungen in Ihrem ".MT_WORD.".");
+define('TASK_ADMIN_LIST_REFBANNER_ACTIVE', "Aktivierte Ref-Banner");
+define('TASK_ADMIN_LIST_REFBANNER_ACTIVE_TITLE', "Ihre Mitglieder k&ouml;nnen Referral-Banner ausw&auml;hlen!");
+define('TASK_ADMIN_LIST_EXTENSIONS_ALL', "Alle Erweiterungen");
+define('TASK_ADMIN_LIST_EXTENSIONS_ALL_TITLE', "Es exisitieren Erweiterungen in Ihrem ".MT_WORD.".");
+define('TASK_ADMIN_LIST_EXTENSIONS_ACTIVE', "Aktivierte Erweit.");
+define('TASK_ADMIN_LIST_EXTENSIONS_ACTIVE_TITLE', "Sie haben Erweiterungen aktiviert!");
+define('TAKS_ADMIN_LIST_ACCOUNT_NOREF', "Accounts ohne Werber");
+define('TAKS_ADMIN_LIST_ACCOUNT_NOREF_TITLE', "Es wurden Accounts ohne Werber-ID (refid=0) gefunden!");
+
+//
+?>
diff --git a/0.2.1/inc/language/theme_de.php b/0.2.1/inc/language/theme_de.php
new file mode 100644 (file)
index 0000000..c954c4f
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/29/2005 *
+ * ===============                              Last change: 05/29/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : theme_de.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_THEME_NEW_FOUND_TITLE', "Neue Themes gefunden!");
+define('ADMIN_THEME_FILE_CTIME', "Theme erstellt");
+define('ADMIN_THEME_TOTAL_FOUND', "Themes gesamt gefunden");
+define('ADMIN_THEME_ALREADY_INSTALLED_1', "Alle <U>");
+define('ADMIN_THEME_ALREADY_INSTALLED_2', "</U> Themes bereits installiert!");
+define('ADMIN_THEME_NOTHING_FOUND', "Keine Themes auf dem Server gefunden!");
+
+//
+?>
diff --git a/0.2.1/inc/language/top10_de.php b/0.2.1/inc/language/top10_de.php
new file mode 100644 (file)
index 0000000..fbc7acf
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/24/2004 *
+ * ===============                              Last change: 11/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : top10_de.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('TOP10_ADMIN_CONFIG_HEADER', "Einstellungen an TOP-Listen");
+define('TOP10_ADMIN_MAX_TOP10', "Maximale Pl&auml;tze pro Liste");
+define('GUEST_TOP10_LOGIN_HEADER_1', "TOP");
+define('GUEST_TOP10_LOGIN_HEADER_2', "Logins");
+define('GUEST_TOP10_LOGIN_FOOTER', "Diese Liste zeigt Ihnen, wer am h&auml;ufigsten eingeloggt hat.");
+define('TOP10_RANKING', "Platz");
+define('GUEST_TOP10_POINTS_HEADER_1', "TOP");
+define('GUEST_TOP10_POINTS_HEADER_2', "{!POINTS!}-Verdiener");
+define('GUEST_TOP10_POINTS_FOOTER', "Diese Liste zeigt Ihnen, wer die meisten {!POINTS!} verdient hat.");
+define('GUEST_TOP10_REFS_HEADER_1', "TOP");
+define('GUEST_TOP10_REFS_HEADER_2', "Werber");
+define('GUEST_TOP10_REFS_FOOTER', "Diese Liste zeigt Ihnen, wer die meisten Mitglieder geworben hat.");
+
+//
+?>
diff --git a/0.2.1/inc/language/transfer_de.php b/0.2.1/inc/language/transfer_de.php
new file mode 100644 (file)
index 0000000..038f372
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/07/2004 *
+ * ===============                              Last change: 11/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : transfer_de.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('ADMIN_CONFIG_TRANSFER_HEADER', "Einstellungen zu {!POINTS!}-&Uuml;berweisungen");
+define('ADMIN_TRANSFER_MAX', "Maximal angezeigte Eintr&auml;ge");
+define('ADMIN_TRANSFER_AGE', "Maximales Alter von Eintr&auml;gen");
+define('ADMIN_TRANSFER_TIMEOUT', "Sperrung der Einstellungen nach {!POINTS!}-&Uuml;berweisung");
+define('ADMIN_TRANSFER_BALANCE', "Restbetrag nach &Uuml;berweisung auf Account");
+define('ADMIN_TRANSFER_CODE', "L&auml;nge des Touring-Codes");
+define('ADMIN_TRANSFER_CODE_NOTE', "<STRONG>0</STRONG> deaktiviert den Touring-Code!");
+define('ADMIN_AUTOPURGE_TRANSFER', "Veraltete Eintr&auml;ge automatisch l&ouml;schen? (purge)");
+define('TRANSFER_LIST_INCOMING', "Eingehende &Uuml;berweisungen");
+define('TRANSFER_LIST_OUTGOING', "Ausgehende &Uuml;berweisungen");
+define('TRANSFER_ALLOW_OPT_IN', "Wollen Sie {!POINTS!}-&Uuml;berweisungen von anderen Mitgliedern erhalten?");
+define('TRANSFER_TO_MEMBER_NOW', "Neue {!POINTS!}-&Uuml;berweisung starten");
+define('TRANSFER_PLEASE_ALLOW_OPT_IN', "Bitte erst Empfangen von &Uuml;berweisungen erlauben!");
+define('TRANSFER_NOW_LINK', "&Uuml;berweisung zum anderen Mitglied t&auml;tigen");
+define('TRANSFER_SELECT_TARGET_UID', "Empf&auml;nger ausw&auml;hlen");
+define('TRANSFER_NO_ONE_ELSE_OPT_IN', "Niemand weiteres m&ouml;chte &Uuml;berweisungen empfangen!");
+define('TRANSFER_POINTS_MAXIMUM', "Maximaler Betrag");
+define('TRANSFER_POINTS_AMOUNT', "Zu &uuml;berweisende {!POINTS!}");
+define('TRANSFER_NO_CODE', "Nicht erforderlich!");
+define('TRANSFER_POINTS_REASON', "Verwendungszweck");
+define('TRANSFER_POINTS_SECURITY_CODE', "Touring-Code eingeben");
+define('TRANSFER_ENTER_PASSWORD', "Ihr Passwort eingeben");
+define('TRANSFER_ADD_NEW', "Transfer abschliessen");
+define('TRANSFER_INVALID_CODE', "Ung&uuml;tigen Touring-Code eingegeben!");
+define('TRANSFER_INVALID_PASSWORD', "Eingegebenes und gespeichertes Passwort stimmen nicht &uuml;berein!");
+define('TRANSFER_INVALID_POINTS', "Kann nicht mehr &uuml;berweisen, als dass Sie an Guthaben haben!");
+define('TRANSFER_INVALID_REASON', "Bitte einen Verwendungszweck eingeben!");
+define('TRANSFER_INVALID_RECIPIENT', "Bitte w&auml;hlen Sie einen Empf&auml;nger aus!");
+define('TRANSFER_INVALID_DATA', "Konnte Absender- und Empf&auml;ngerdaten nicht verifizieren!");
+define('TRANSFER_ADMIN_SUBJECT', "{!POINTS!}-Transfer abgeschlossen");
+define('TRANSFER_MEMBER_RECIPIENT_SUBJ', "{!POINTS!}-Ueberweisung durch Mitglied");
+define('TRANSFER_MEMBER_SENDER_SUBJ', "{!POINTS!}-Ueberweisung an Mitglied");
+define('TRANSFER_ADMIN_AUTOPURGE', "Auto-Loeschung von Transfer-Eintraegen");
+define('TRANSFER_COMPLETED', "&Uuml;berweisung vollst&auml;ndig.");
+define('TRANSFER_CONTINUE_OVERVIEW', "Weiter zur &Uuml;bersichtsseite...");
+define('TRANSFER_LATEST_IS_1', "Einstellung gesperrt, letzte &Uuml;berweisung war am <STRONG>");
+define('TRANSFER_LATEST_IS_2', "</STRONG>");
+define('TRANSFER_LIST_ALL', "Gesamte &Uuml;berweisungsliste anzeigen");
+define('TRANSFER_NO_INCOMING_TRANSFERS', "Keine eingehenden &Uuml;berweisungen gefunden.");
+define('TRANSFER_NO_OUTGOING_TRANSFERS', "Keine ausgehenden &Uuml;berweisungen gefunden.");
+define('TRANSFER_NO_INOUT_TRANSFERS', "Keine &Uuml;berweisungen gefunden.");
+define('TRANSFER_TOTAL_INCOMING', "Gesamteing&auml;nge");
+define('TRANSFER_TOTAL_OUTGOING', "Gesamtausg&auml;nge");
+define('TRANSFER_TOTAL_BALANCE', "Saldo");
+define('TRANSFER_ID', "Trans-ID");
+define('TRANSFER_STAMP', "Buchungstag");
+define('TRANSFER_PARTY', "Empf./Sender");
+define('TRANSFER_FROM_UID', "Sender");
+define('TRANSFER_TO_UID', "Empf&auml;nger");
+define('TRANSFER_TOTAL_SUM', "Gesamt transferierte {!POINTS!}");
+define('TRANSFER_DELETE', "Eintr&auml;ge l&ouml;schen");
+
+//
+?>
diff --git a/0.2.1/inc/language/user_de.php b/0.2.1/inc/language/user_de.php
new file mode 100644 (file)
index 0000000..a0382a7
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/11/2004 *
+ * ===============                              Last change: 12/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : user_de.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('USER_PAGENAV', "Seiten");
+define('RECEIVED_MAILS', "Empfangene Mails");
+define('SENT_MAILS', "Versendete Mails");
+define('USER_ADMIN_CONFIG_HEADER', "Konfiguration - Mitgliederliste");
+define('USER_ADMIN_LIMIT_USER', "Anzahl Mitglieder pro Seite");
+define('USER_ADMIN_ALPHA_USER', "Azanhl Buchstaben pro Zeile");
+define('USER_ACCOUNT_SAVED', "Mitgliedsaccount gespeichert.");
+define('USER_ACCOUNT_NOT_SAVED', "Mitgliedsaccount <U>nicht</U> gespeichert.");
+define('USER_ACCOUNT_LOCKED_1', "Mitgliedsaccount <U>");
+define('USER_ACCOUNT_LOCKED_2', "</U> wurde gesperrt.");
+define('USER_ACCOUNT_UNLOCKED_1', "Mitgliedsaccount <U>");
+define('USER_ACCOUNT_UNLOCKED_2', "</U> wurde freigegeben.");
+
+//
+?>
diff --git a/0.2.1/inc/language/wernis_de.php b/0.2.1/inc/language/wernis_de.php
new file mode 100644 (file)
index 0000000..77fbdfc
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/11/2004 *
+ * ===============                              Last change: 08/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : wernis_de.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : German langugage support                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Deutsche Sprachunterstuetzung                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (basename($_SERVER['PHP_SELF']) == basename(__FILE__))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Language definitions
+define('TASK_ADMIN_LIST_WERNIS_ALL', "Alle {!POINTS!}-Ein-/Auszahlungen");
+define('TASK_ADMIN_LIST_WERNIS_ALL_TITLE', "Listet alle {!POINTS!}-Ein- und Auszahlungen auf.");
+define('WERNIS_ADMIN_CONFIG_TITLE', "Einstellungen zum WDS66-Hauptaccount:");
+define('WERNIS_ADMIN_MIN_AMOUNT', "Minimumguthaben von {!POINTS!} f&uuml;r Auszahlungen.");
+define('WERNIS_ADMIN_API_ID', "WDS66-API-ID (api_id=x)");
+define('WERNIS_ADMIN_API_MD5', "WDS66-API-Key (api_md5=xxxxx; 32-stellig)");
+define('WERNIS_ADMIN_CONFIG_NOTE', "<A href=\"http://www.wds66.com/ref.php?refid=10437\" target=\"_blank\">Hier</A> k&ouml;nnen Sie schon f&uuml;r <strong>5,00&euro;</strong>=<strong>25.000 Abfragen</strong> ein API-Account beantragen (dazu ist ein <strong>kostenloses</strong> {!POINTS!}-Account dennoch n&ouml;tig!)");
+define('MEMBER_WERNIS_MODE_CHOOSE', "M&ouml;chten Sie {!POINTS!} zu Ihrem WDS66-Hauptaccount ausbezahlt bekommen oder {!POINTS!} hier einzahlen?");
+define('MEMBER_WERNIS_MODE_WITHDRAW', "{!POINTS!} einzahlen");
+define('MEMBER_WERNIS_MODE_PAYOUT', "{!POINTS!} auszahlen");
+
+//
+?>
diff --git a/0.2.1/inc/libs/.htaccess b/0.2.1/inc/libs/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/libs/admins_functions.php b/0.2.1/inc/libs/admins_functions.php
new file mode 100644 (file)
index 0000000..e3e1ca6
--- /dev/null
@@ -0,0 +1,197 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/30/2003 *
+ * ===============                              Last change: 11/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : admins_functions.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the admins extension               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer die admins-Erweiterung           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function ADMINS_CHECK_ACL($act, $wht)
+{
+       global $_COOKIE, $ADMINS, $ADMINS_ACLS, $CONFIG;
+       // If action is login or logout allow allways!
+       if (($act == "login") || ($act == "logout")) return true;
+
+       // Default is deny
+       $ret = false;
+
+       // Get admin's defult access right
+       if (!empty($ADMINS['def_acl'][$_COOKIE['admin_login']]))
+       {
+               // Load from cache
+               $default = $ADMINS['def_acl'][$_COOKIE['admin_login']];
+
+               // Count cache hits
+               $CONFIG['cache_hits']++;
+       }
+        else
+       {
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT default_acl FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+                array($_COOKIE['admin_login']), __FILE__, __LINE__);
+               list($default) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+
+       // Get admin's ID
+       $aid = GET_ADMIN_ID($_COOKIE['admin_login']);
+
+       if (!empty($wht))
+       {
+               // Check for parent menu:
+               // First get it's action value
+               $parent_action = GET_ACTION("admin", $wht);
+
+               // Check with this function...
+               $parent = ADMINS_CHECK_ACL($parent_action, "");
+       }
+        else
+       {
+               // Anything else is true!
+               $parent = false;
+       }
+
+       // Shall I test for a main or sub menu? (action or what?)
+       $lines = 0; $acl_mode = "failed";
+       if (GET_EXT_VERSION("cache") >= "0.1.2")
+       {
+               // Load only from array when there are lines!
+               if (count($ADMINS_ACLS) > 0)
+               {
+                       // Load ACL from array
+                       foreach ($ADMINS_ACLS['admin_id'] as $id=>$aid_acls)
+                       {
+                               if ($aid == $aid_acls)
+                               {
+                                       // Okay, one line was found!
+                                       if ((!empty($act)) && ($ADMINS_ACLS['action_menu'][$id] == $act))
+                                       {
+                                               // Main menu line found
+                                               $acl_mode = $ADMINS_ACLS['access_mode'][$id];
+                                               $lines = 1;
+                                       }
+                                        elseif ((!empty($wht)) && ($ADMINS_ACLS['what_menu'][$id] == $wht))
+                                       {
+                                               // Check sub menu
+                                               $acl_mode = $ADMINS_ACLS['access_mode'][$id];
+                                               $lines = 1;
+                                       }
+                                       if ($lines == 1)
+                                       {
+                                               // Count cache hits
+                                               $CONFIG['cache_hits']++;
+                                               break;
+                                       }
+                               }
+                       }
+
+                       // No ACL found?
+                       if ($acl_mode == "failed")
+                       {
+                               $acl_mode = "";
+                               $lines = 0;
+                       }
+               }
+                else
+               {
+                       // No lines here
+                       $lines = 0;
+               }
+       }
+        else
+       {
+               // Old version, so load it from database
+               if (!empty($act))
+               {
+                       // Main menu
+                       $result = SQL_QUERY_ESC("SELECT access_mode FROM "._MYSQL_PREFIX."_admins_acls WHERE admin_id=%d AND action_menu='%s' LIMIT 1",
+                        array(bigintval($aid), $act), __FILE__, __LINE__);
+               }
+                elseif (!empty($wht))
+               {
+                       // Sub menu
+                       $result = SQL_QUERY_ESC("SELECT access_mode FROM "._MYSQL_PREFIX."_admins_acls WHERE admin_id=%d AND what_menu='%s' LIMIT 1",
+                        array(bigintval($aid), $wht), __FILE__, __LINE__);
+               }
+
+               // Get number of lines
+               $lines = SQL_NUMROWS($result);
+
+               // Load ACL
+               list($acl_mode) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+
+       // Check ACL and (maybe) allow
+       if ((($default == "allow") && ($lines == 0)) || (($default == "deny") && ($lines == "1") && ($acl_mode == "allow")) || (($lines == 0) && ($parent))) $ret = true;
+
+       // Return value
+       return $ret;
+}
+// Create email link to admins's account
+function ADMINS_CREATE_EMAIL_LINK($email, $mod="admin")
+{
+       $locked = " AND status='CONFIRMED'";
+       if (IS_ADMIN()) $locked = "";
+       if (strpos("@", $email) > 0)
+       {
+               // Create email link
+               $result = SQL_QUERY_ESC("SELECT id
+FROM "._MYSQL_PREFIX."_admins
+WHERE email='%s'".$locked." LIMIT 1",
+ array($email), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Load userid
+                       list($uid) = SQL_FETCHROW($result);
+
+                       // Rewrite email address to contact link
+                       $email = URL."/modules.php?module=".$mod."&amp;what=user_contct&amp;u_id=".bigintval($uid);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        elseif (bigintval($email) > 0)
+       {
+               // Direct ID given
+               $email = URL."/modules.php?module=".$mod."&amp;what=admins_contct&amp;admin=".bigintval($email);
+       }
+
+       // Return rewritten (?) email address
+       return $email;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/autopurge_functions.php b/0.2.1/inc/libs/autopurge_functions.php
new file mode 100644 (file)
index 0000000..7318af1
--- /dev/null
@@ -0,0 +1,87 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/30/2004 *
+ * ===============                              Last change: 08/09/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : autopurge_functions.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Special functions                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Spezielle Funktionen                             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+function AUTOPURGE_ADD_POINTS($uid, $points)
+{
+       global $jackpot;
+       // Check if he has locked points or not
+       $result = SQL_QUERY_ESC("SELECT ref_payout FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($uid)), __FILE__, __LINE__);
+       list($payout) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+       if (($payout > 0) && (!empty($payout)))
+       {
+               // Yes, he has.
+               $target = "locked_points";
+       }
+        elseif ($payout == "0")
+       {
+               // No, he has not
+               $target = "points";
+       }
+       // Add points...
+       if (empty($payout))
+       {
+               // ... to jackpot account
+               ADD_JACKPOT($points);
+               if (empty($jackpot)) $jackpot = "0";
+               $jackpot += $points;
+       }
+        else
+       {
+               // .. to user's account
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET %s=%s+%s WHERE userid=%d AND ref_depth='0' LIMIT 1",
+                array($target, $target, $points, bigintval($uid)), __FILE__, __LINE__);
+
+               // Update mediadata as well
+               if ((GET_EXT_VERSION("mediadata") >= "0.0.4") && ($target == "points"))
+               {
+                       // Update database
+                       MEDIA_UPDATE_ENTRY(array("total_points"), "add", $points);
+               }
+
+               // Send out mail to user
+               $msg = LOAD_EMAIL_TEMPLATE("member_autopurge_points", TRANSLATE_COMMA($points), $uid);
+               SEND_EMAIL($uid, AUTOPURGE_MEMBER_SUBJECT, $msg);
+       }
+}
+
+//
+?>
diff --git a/0.2.1/inc/libs/bonus_functions.php b/0.2.1/inc/libs/bonus_functions.php
new file mode 100644 (file)
index 0000000..888ecab
--- /dev/null
@@ -0,0 +1,275 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/10/2004 *
+ * ===============                              Last change: 03/18/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : bonus_functions.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Special functions for bonus extension            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Spezielle Funktion fuer bonus-Erweiterung        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// This function must be run *BEFORE* a link is removed from table 'mxchange_user_links' !
+function BONUS_ADD_TURBO_POINTS($mid, $uid, $type)
+{
+       global $CONFIG;
+
+       // Shall we add bonus points?
+       if ($CONFIG['bonus_active'] == "N") return;
+
+       // Select SQL command
+       $SQL = "";
+       switch ($type)
+       {
+       case "bonusid":
+               $result = SQL_QUERY_ESC("SELECT clicks FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+                array($mid), __FILE__, __LINE__);
+               $bonus = $mid; $mail = "0";
+               break;
+
+       case "mailid" :
+               $result = SQL_QUERY_ESC("SELECT clicks FROM "._MYSQL_PREFIX."_user_stats WHERE id=%d LIMIT 1",
+                array($mid), __FILE__, __LINE__);
+               $bonus = "0"; $mail = $mid;
+               break;
+       }
+
+       // Load clicks from table as current rank
+       list($rank) = SQL_FETCHROW($result);
+
+       if ($rank == 1)
+       {
+               // First rank!
+               $rank = 1;
+               $points = $CONFIG['turbo_bonus'];
+       }
+        else
+       {
+               // Anything else so let's explode all entered rank points
+               $test = explode(";", $CONFIG['bonus_rates']);
+               if (!empty($test[$rank - 2]))
+               {
+                       // Level found
+                       $points = $test[$rank - 2];
+               }
+                else
+               {
+                       // Level not found!
+                       $points = "0.00000";
+               }
+       }
+
+       // Add points to his account directly
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET turbo_bonus=turbo_bonus+".$points." WHERE userid=%d LIMIT 1",
+        array(bigintval($uid)), __FILE__, __LINE__);
+
+       // Rember this whole data for displaying ranking list
+       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus_turbo (userid, mail_id, bonus_id, level, points, timemark) VALUES ('%s', '%s', '%s', '".$rank."', '".$points."', UNIX_TIMESTAMP())",
+        array(bigintval($uid), bigintval($mail), bigintval($bonus)), __FILE__, __LINE__);
+
+       if ((GET_EXT_VERSION("bonus") >= "0.3.5") && ($CONFIG['bonus_mode'] != "ADD") && ($points > 0)) BONUS_POINTS_HANDLER($points);
+}
+//
+function BONUS_MAKE_RANK_ROWS($data, $type, $uid)
+{
+       global $CONFIG;
+       $self = false; $OUT = "";
+
+       // How many ranks do we have?
+       $ranks = sizeof(explode(";", $CONFIG['bonus_rates'])) + 1;
+
+       // Load current user's data
+       $result = SQL_QUERY_ESC("SELECT level, points, timemark FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s AND userid=%d LIMIT 1",
+        array($type, $data, $uid), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Load data
+               list($rank, $points, $mark) = SQL_FETCHROW($result);
+
+               // Remember all values for later use
+               $self  = true; $points = TRANSLATE_COMMA($points);
+
+               // Transfer data to template
+               define('__YR_LEVEL' , $rank);
+               define('__YR_POINTS', $points);
+               define('__YR_TMARK' , MAKE_DATETIME($mark, "1"));
+
+               // Load template
+               define('__YOUR_RANKING_LINE', LOAD_TEMPLATE("show_bonus_yr", true));
+       }
+
+       // Load rankings
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s ORDER BY level LIMIT %s",
+        array($type, $data, $CONFIG['bonus_lines']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Start generating the ranking list
+               $max = SQL_NUMROWS($result);
+
+               $SW = 2;
+               for ($rank = 1; $rank <= $max; $rank++)
+               {
+                       // Load data
+                       $result_users = SQL_QUERY_ESC("SELECT userid, points, timemark FROM "._MYSQL_PREFIX."_bonus_turbo WHERE %s=%s AND level='%s' LIMIT 1",
+                        array($type, $data, $rank), __FILE__, __LINE__);
+                       list($userid, $points, $mark) = SQL_FETCHROW($result_users);
+
+                       // Are you one of them?
+                       if (empty($userid))
+                       {
+                               // Nothing found
+                               $userid = "---"; $points = "---";
+                       }
+                        else
+                       {
+                               // Translate comma
+                               $points = TRANSLATE_COMMA($points);
+                       }
+
+                       // Output row
+                       $OUT .= "<TR>
+  <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\">&nbsp;".$rank.".</TD>
+  <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\" align=\"center\">".$userid."</TD>
+  <TD class=\"bonus_rank_".$rank." bottom2 switch_sw".$SW."\" align=\"center\">".$points."</TD>
+</TR>\n";
+                       $SW = 3 - $SW;
+               }
+               if (!$self)
+               {
+                       // If current user was not found set constant
+                       define('__YOUR_RANKING_LINE', BONUS_RANK_YOU_ARE_NOT_FOUND);
+               }
+       }
+        else
+       {
+               // No entries found!
+               $OUT = "<TR>
+  <TD colspan=\"3\" align=\"center\" height=\"30\" class=\"bottom2\">
+    <STRONG class=\"guest_failed\">".BONUS_NO_RANKS_1.$data.BONUS_NO_RANKS_2."</STRONG>
+  </TD>
+</TR>\n";
+               define('__YOUR_RANKING_LINE', "");
+       }
+       return $OUT;
+}
+//
+function BONUS_POINTS_HANDLER($MODE)
+{
+       global $CONFIG;
+
+       // Shall we add bonus points?
+       if ($CONFIG['bonus_active'] == "N") return;
+
+       // Switch to jackpot-mode when no UID is supplied but userid-mode is selected
+       if (($CONFIG['bonus_mode'] == "UID") && ($CONFIG['bonus_uid'] == "0")) $CONFIG['bonus_mode'] = "JACKPOT";
+
+       if ($MODE == "login_bonus")
+       {
+               // Login bonus detected
+               $POINTS = $CONFIG['login_bonus'];
+       }
+        else
+       {
+               // Direct points supplied
+               $POINTS = $MODE;
+       }
+
+       // Subtract points from...
+       switch ($CONFIG['bonus_mode'])
+       {
+       case "JACKPOT": // ... jackpot
+               if ((SUB_JACKPOT($POINTS) == -1) && ($CONFIG['bonus_uid'] > 0))
+               {
+                       // Check points amount first...
+                       $TOTAL = GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_points", "points") - GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_data", "used_points");
+                       if ($TOTAL >= $POINTS)
+                       {
+                               // Subtract points from userid's account
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+                                array(bigintval($POINTS), bigintval($CONFIG['bonus_uid'])), __FILE__, __LINE__);
+
+                               // Update mediadata as well
+                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                               {
+                                       // Update database
+                                       MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);
+                               }
+                       }
+               }
+               break;
+
+       case "UID": // ... userid's account
+               // Check his amount first
+               $TOTAL = GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_points", "points") - GET_TOTAL_DATA($CONFIG['bonus_uid'], "user_data", "used_points");
+               if ($TOTAL >= $POINTS)
+               {
+                       // Subtract points from userid's account
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+                        array(bigintval($POINTS), bigintval($CONFIG['bonus_uid'])),  __FILE__, __LINE__);
+
+                       // Update mediadata as well
+                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                       {
+                               // Update database
+                               MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);
+                       }
+               }
+                else
+               {
+                       // Try to subtract from jackpot
+                       $DUMMY = SUB_JACKPOT($POINTS);
+               }
+               break;
+       }
+}
+//
+function BONUS_PURGE_EXPIRED_TURBO_BONUS()
+{
+       global $CONFIG;
+       // Remove entries
+       $result = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus_turbo WHERE timemark < ".(time() - $CONFIG['bonus_timeout']), __FILE__, __LINE__);
+       $DELETED = SQL_AFFECTEDROWS($result);
+       if ($DELETED > 0)
+       {
+               // Send out email to admin
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(AUTOPURGE_ADMIN_TURBO_SUBJECT, "admin_autopurge_turbo", $DELETED, "");
+               }
+                else
+               {
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_autopurge_turbo", $DELETED, "");
+                       SEND_ADMIN_EMAILS(AUTOPURGE_ADMIN_TURBO_SUBJECT, $msg);
+               }
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/libs/cache_functions.php b/0.2.1/inc/libs/cache_functions.php
new file mode 100644 (file)
index 0000000..be3b0ce
--- /dev/null
@@ -0,0 +1,366 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/11/2003 *
+ * ===============                              Last change: 10/11/2003 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : admins_functions.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the admins extension               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer die admins-Erweiterung           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+        require($INC);
+}
+// Caching class
+class mxchange_cache
+{
+        // Define variables
+        var $update_interval = 0;
+        var $ret = "init";
+        var $cache_path = "";
+        var $cache_inc = "";
+        var $cache_ctime = 0;
+        var $cache_pointer = false;
+
+        // Constructor
+        function mxchange_cache($interval, $path, $tested)
+        {
+                // Remember interval in class
+                $this->update_interval=$interval;
+
+                // Remeber path
+                $this->cache_path=$path;
+
+                // Check if path exists
+                if ((file_exists($path)) && (is_dir($path)) && (!$tested))
+                {
+                        // Check if we can create a file inside the path
+                        @touch($path."dummy.tmp", 'w');
+                        if (file_exists($path."dummy.tmp"))
+                        {
+                                // Yes, we can do. So let's remove it
+                                unlink($path."dummy.tmp");
+
+                                // Is there a .htaccess file?
+                                if (file_exists($path.".htaccess"))
+                                {
+                                        // Update database that we have tested it
+                                        $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET cache_tested='1' WHERE config='0' LIMIT 1", __FILE__, __LINE__);
+                                        $this->ret="done";
+
+                                        // All done!
+                                        return "done";
+                                }
+                                 else
+                                {
+                                        // Stop! Set a .htaccess file first
+                                        $this->ret="htaccess";
+                                        return "htaccess";
+                                }
+                        }
+                }
+                 elseif ($tested)
+                {
+                        // System already tested
+                        $this->ret="done";
+                        return "done";
+                }
+
+                // Something goes wrong here!
+                $this->ret="failed";
+                return "failed";
+        }
+
+        function cache_file($file, $ignore_ctime=false)
+        {
+                global $INC;
+                // Construct FQFN (full qualified file name)
+                $inc = $this->cache_path.$file.".cache";
+
+                // Rember it + filename in class
+                $this->cache_inc = $inc;
+
+                // Check if file exists
+                $status = (file_exists($inc) && (is_readable($inc)) && (is_writeable($inc)));
+                if ($status)
+                {
+                        // Yes, it does. So let's get it's last changed date/time
+                        $ctime = filectime($inc);
+                }
+                 else
+                {
+                        // No, it doesn't. Zero date/time
+                        $ctime = "0";
+                }
+
+                // Remember change date/time in class
+                $this->cache_ctime = $ctime;
+
+                // Is the cache file outdated?
+                if (((time() - $ctime) >= $this->update_interval) && (!$ignore_ctime))
+                {
+                        // Ok, we need an update!
+                        $status = false;
+                }
+                return $status;
+        }
+
+        function cache_init($array)
+        {
+                // This will destory an existing cache file!
+                if ($this->ret == "done")
+                {
+                        // Create file
+                        if (file_exists($this->cache_inc)) @chmod($this->cache_inc, 0666);
+                        $fp = @fopen($this->cache_inc, 'w') or mxchange_die("Cannot write to cache ".$this->cache_inc." !");
+
+                        // Begin of cache file
+                        fwrite($fp, "\$ARRAY = \"".$array."\";\n\n");
+
+                        // Remember file pointer
+                        $this->cache_pointer = $fp;
+                }
+                 else
+                {
+                        // Cannot create file
+                        ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED);
+                }
+        }
+
+        function add_row($data)
+        {
+                if ($this->cache_pointer)
+                {
+                        // Write every array element to cache file
+                        foreach ($data as $k=>$v)
+                        {
+                                @fwrite($this->cache_pointer, "\$CACHE['".$k."'][] = \"".$v."\";\n");
+                        }
+                }
+                 else
+                {
+                        // Cannot create file
+                        ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED);
+                }
+        }
+
+        function cache_close()
+        {
+                // Quit function when no pointer is set
+                if (empty($this->cache_pointer)) return;
+                if ($this->cache_pointer)
+                {
+                        // Close file add destroy handler
+                        @fclose($this->cache_pointer);
+
+                        // Set rights
+                        if (file_exists($this->cache_inc)) @chmod($this->cache_inc, 0666);
+
+                        // Remove pointer
+                        unset($this->cache_pointer);
+                }
+                 else
+                {
+                        // Cannot create file
+                        ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED);
+                }
+        }
+
+        function cache_load()
+        {
+                if ((file_exists($this->cache_inc)) && (is_readable($this->cache_inc)))
+                {
+                        // Prepare temporay array
+                        $CACHE = array();
+                        // Load cache file
+                        $cache = implode("", file($this->cache_inc));
+                        // Execute cache file
+                        eval($cache);
+                        if (is_array($CACHE))
+                        {
+                                return $CACHE;
+                        }
+                         else
+                        {
+                                // Cache problem detected!
+                                $this->cache_destroy();
+                        }
+                }
+                 else
+                {
+                        // Cache file not found or not readable
+                        ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_LOAD_1.$this->cache_inc.CACHE_CANNOT_LOAD_2);
+                }
+        }
+
+        function cache_destroy()
+        {
+                if (file_exists($this->cache_inc))
+                {
+                        // Remove cache file from system
+                        @unlink($this->cache_inc);
+                        if (!file_exists($this->cache_inc))
+                        {
+                                // Close cache automatically (we don't need it anymore!)
+                                $this->cache_close();
+                        }
+                         else
+                        {
+                                // Not removed!
+                                ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_UNLINK_1.$this->cache_inc.CACHE_CANNOT_UNLINK_2);
+                        }
+                }
+                 else
+                {
+                        // Does not exist!
+                        ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_UNLINK_1.$this->cache_inc.CACHE_CANNOT_UNLINK_2);
+                }
+        }
+
+        function cache_remove($search, $data, $array)
+        {
+                global $ARRAY;
+                if ((file_exists($this->cache_inc)) && (is_writeable($this->cache_inc)))
+                {
+                        // Load cache into dummy array
+                        $DUMMY = $this->cache_load();
+
+                        // Search for key in array
+                        $key = array_search($data, $DUMMY[$search]);
+                        if (!empty($key))
+                        {
+                                // Key (hopefully) found?
+                                foreach ($array as $a)
+                                {
+                                        // So we can remove all elements as requested
+                                        unset($DUMMY[$a][$key]);
+                                }
+
+                                // Flush array to cache file
+                                $fp = fopen($this->cache_inc, 'w');
+                                fwrite($fp, "\$ARRAY = \"".$ARRAY."\";\n");
+                                foreach ($DUMMY as $k=>$v)
+                                {
+                                        if (is_array($v))
+                                        {
+                                                // Multi line(s) found
+                                                $LINE = "";
+                                                foreach($v as $k2=>$v2)
+                                                {
+                                                        // Put every array element in a row...
+                                                        $LINE .= "\$CACHE['".$k."'][] = \"".$v2."\";\n";
+                                                }
+                                        }
+                                         else
+                                        {
+                                                // Single line found
+                                                $LINE = "\$CACHE['".$k."'] = \"".$v."\";\n";
+                                        }
+
+                                        // Write line(s)
+                                        fwrite($fp, $LINE);
+                                }
+
+                                // Close cache file
+                                fclose($fp);
+                        }
+                }
+                 else
+                {
+                        // Cannot write to cache!
+                        ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED);
+                }
+        }
+
+        function cache_replace($search, $replace, $search_key, $array)
+        {
+                global $ARRAY;
+                if ((file_exists($this->cache_inc)) && (is_writeable($this->cache_inc)))
+                {
+                        // Load cache into dummy array
+                        $DUMMY = $this->cache_load();
+
+                        // Check if $DUMMY is valid (prevents some errors)
+                        if ((is_array($DUMMY)) && (is_array($DUMMY[$search])))
+                        {
+                                // Search for key in array
+                                $key_found = array_key_exists($search_key, $DUMMY[$search]);
+                                if ($key_found == true)
+                                {
+                                        $key = $search_key;
+                                        // Key (hopefully) found?
+                                        foreach ($DUMMY as $a=>$v)
+                                        {
+                                                // So we can update all entries
+                                                if ($a == $search)
+                                                {
+                                                        // Update now...
+                                                        $DUMMY[$a][$search_key] = $replace;
+                                                }
+                                        }
+
+                                        // Flush array to cache file
+                                        $fp = fopen($this->cache_inc, 'w');
+                                        fwrite($fp, "\$DUMMY = \"".$ARRAY."\";\n");
+                                        foreach ($DUMMY as $k=>$v)
+                                        {
+                                                if (is_array($v))
+                                                {
+                                                        // Multi line(s) found
+                                                        $LINE = "";
+                                                        foreach($v as $k2=>$v2)
+                                                        {
+                                                                // Put every array element in a row...
+                                                                $LINE .= "\$CACHE['".$k."'][] = \"".$v2."\";\n";
+                                                        }
+                                                }
+                                                 else
+                                                {
+                                                        // Single line found
+                                                        $LINE = "\$CACHE['".$k."'] = \"".$v."\";\n";
+                                                }
+
+                                                // Write line(s)
+                                                fwrite($fp, $LINE);
+                                        }
+
+                                        // Close cache file
+                                        fclose($fp);
+                                }
+                        }
+                }
+                 else
+                {
+                        // Cannot write to cache!
+                        ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_PROBLEMS_DETECTED);
+                }
+        }
+}
+//
+?>
diff --git a/0.2.1/inc/libs/country_functions.php b/0.2.1/inc/libs/country_functions.php
new file mode 100644 (file)
index 0000000..30b39fa
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/30/2005 *
+ * ===============                              Last change: 04/30/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : country_functions.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the guest's newsletter             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer den Newsletter an die Gaeste     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function COUNTRY_GENERATE_INFO($ID)
+{
+       $result = SQL_QUERY_ESC("SELECT code, descr FROM "._MYSQL_PREFIX."_countries WHERE id=%d LIMIT 1",
+        array(bigintval($ID)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               list($code, $descr) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               $ret = $descr." (".$code.")";
+       }
+        else
+       {
+               // Not found!
+               $ret = COUNTRY_NOT_FOUND;
+       }
+
+       // Return info
+       return $ret;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/doubler_functions.php b/0.2.1/inc/libs/doubler_functions.php
new file mode 100644 (file)
index 0000000..057c76b
--- /dev/null
@@ -0,0 +1,160 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/17/2005 *
+ * ===============                              Last change: 02/17/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : doubler_functions.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the guest's newsletter             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer den Newsletter an die Gaeste     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function DOUBLER_GENERATE_TABLE($uid="0", $done="N", $ref="N", $sort="ASC")
+{
+       global $CONFIG;
+       if (empty($cnt)) $cnt = "0";
+       $ADD = ""; $DT_MODE = "0";
+       if ($uid > 0)
+       {
+               // Load entries only from a single user
+               $ADD = " AND userid='".bigintval($uid)."'";
+               $MODE = "member"; $COLS = "4"; $DT_MODE = "2";
+               $NOT_FOUND = DOUBLER_MEMBER_NO_ENTRIES_FOUND;
+       }
+        else
+       {
+               // Guest mode!
+               $MODE = "guest"; $COLS = "3"; $DT_MODE = "3";
+               $NOT_FOUND = DOUBLER_GUEST_NO_ENTRIES_FOUND;
+       }
+
+       if (($done == "Y") && ($sort == "ASC"))
+       {
+               // Already payed out points (latest payouts first)
+               $limit = $CONFIG['doubler_display_old'];
+       }
+        elseif ($sort == "ASC")
+       {
+               // List entries which will receive their payout soon
+               $limit = $CONFIG['doubler_display_pay'];
+       }
+        elseif ($sort == "DESC")
+       {
+               // Newest entries
+               $limit = $CONFIG['doubler_display_new'];
+       }
+
+       // List entries
+       $result = SQL_QUERY("SELECT userid, refid, points, timemark
+FROM "._MYSQL_PREFIX."_doubler
+WHERE completed='".$done."' AND is_ref='".$ref."'".$ADD."
+ORDER BY timemark ".$sort."
+LIMIT ".$limit, __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List entries
+               $OUT = ""; $SW = 2;
+               while(list($uid, $rid, $points, $time) = SQL_FETCHROW($result))
+               {
+                       if (IS_ADMIN())
+                       {
+                               // Set links to admin area
+                               if ($uid > 0) { $uid = ADMIN_USER_PROFILE_LINK($uid); } else { $uid = "---"; }
+                               if ($rid > 0) { $rid = ADMIN_USER_PROFILE_LINK($rid); } else { $rid = "---"; }
+                       }
+
+                       // Prepare data for the row template
+                       $content = array(
+                               'uid'    => $uid,
+                               'rid'    => $rid,
+                               'points' => TRANSLATE_COMMA($points),
+                               'stamp'  => MAKE_DATETIME($time, $DT_MODE),
+                               'sw'     => $SW,
+                       );
+
+                       // Load template and switch color
+                       $OUT .= LOAD_TEMPLATE($MODE."_doubler_list_rows", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        else
+       {
+               // List no entries
+               $OUT = "<TR>
+  <TD colspan=\"".$COLS."\" align=\"center\" class=\"doubler_big_row bottom2\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, $NOT_FOUND)."
+  </TD>
+</TR>\n";
+       }
+
+       // Return template
+       return LOAD_TEMPLATE($MODE."_doubler_list", true, $OUT);
+}
+//
+function DOUBLER_GET_TOTAL_POINTS_LEFT()
+{
+       global $CONFIG;
+       // Initialize variables
+       $points = "0";
+
+       if ($CONFIG['doubler_own'] == "Y")
+       {
+               // Take points from doubler's own account
+               $points += $CONFIG['doubler_points'] - $CONFIG['doubler_used'];
+       }
+
+       if ($CONFIG['doubler_jackpot'] == "Y")
+       {
+               // Load jackpot
+               $result = SQL_QUERY("SELECT points FROM "._MYSQL_PREFIX."_jackpot WHERE ok='ok' LIMIT 1", __FILE__, __LINE__);
+               list($jackpot) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               if (!empty($jackpot)) $points += $jackpot;
+       }
+
+       if ($CONFIG['doubler_uid'] > 0)
+       {
+               // Get user's points
+               $user = GET_TOTAL_DATA($CONFIG['doubler_uid'], "user_points", "points");
+               $points += $user;
+       }
+
+       // Return value
+       return $points;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/holiday_functions.php b/0.2.1/inc/libs/holiday_functions.php
new file mode 100644 (file)
index 0000000..5e10287
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/31/2003 *
+ * ===============                              Last change: 08/02/2003 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : holiday_functions.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the admins extension               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer die admins-Erweiterung           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function HOLIDAY_STOP_HOLIDAYS()
+{
+       // Let's find some expired holiday requests...
+       $result_stop = SQL_QUERY("SELECT userid, holiday_start, holiday_end, comments
+FROM "._MYSQL_PREFIX."_user_holidays
+WHERE holiday_end <= ".time()."
+ORDER BY userid", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_stop) > 0)
+       {
+               // We foud at least one
+               $admin = "";
+               while (list($uid, $start, $end, $comments) = SQL_FETCHROW($result_stop))
+               {
+                       // Stop holiday
+                       $result_del = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_holidays WHERE userid=%d LIMIT 1",
+                        array(bigintval($uid)), __FILE__, __LINE__);
+
+                       // Unlock account
+                       $result_del = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data
+SET holiday_active='N', holiday_activated='0'
+WHERE userid=%d LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__);
+
+                       // Prepare array
+                       $content = array(
+                               'holiday_end'      => MAKE_DATETIME($end  , "3"),
+                               'holiday_start'    => MAKE_DATETIME($start, "3"),
+                               'holiday_comments' => $comments
+                       );
+
+                       // Send mail to user
+                       $msg = LOAD_EMAIL_TEMPLATE("member_holiday_unlock", $content, $uid);
+                       SEND_EMAIL($uid, HOLIDAY_MEMBER_UNLOCK_SUBJ, $msg);
+
+                       // Remember userid for admin
+                       $admin .= $uid."\n";
+               }
+
+               // Send mail to admins
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       // Use new system
+                       SEND_ADMIN_EMAILS_PRO(HOLIDAY_ADMIN_UNLOCK_SUBJ, "admin_holiday_unlock", $admin, "0");
+               }
+                else
+               {
+                       // Use old system
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_holiday_unlock", $admin, "0");
+                       SEND_ADMIN_EMAILS(HOLIDAY_ADMIN_UNLOCK_SUBJ, $msg);
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_stop);
+}
+
+//
+?>
diff --git a/0.2.1/inc/libs/html_mail_functions.php b/0.2.1/inc/libs/html_mail_functions.php
new file mode 100644 (file)
index 0000000..ce48a03
--- /dev/null
@@ -0,0 +1,172 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/25/2004 *
+ * ================                             Last change: 04/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : html_mail_functions.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the HTML extension                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer die HTML-Erweiterung             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function HTML_ADD_VALID_TAGS()
+{
+       global $HTML_TAGS; $OUT = "";
+       if (!is_array($HTML_TAGS)) return "";
+       foreach ($HTML_TAGS as $tag)
+       {
+               $OUT .= ", ".strtoupper($tag);
+       }
+       $OUT = substr($OUT, 2);
+       return $OUT;
+}
+//
+function HTML_CHECK_TAGS($html)
+{
+       global $HTML_TAGS;
+       $test = stripslashes($html);
+       while (ereg("<", $test) && ereg(">", $test))
+       {
+               $check = strtolower(substr($test, strpos($test, "<") + 1, strpos($test, ">") - strpos($test, "<") - 1));
+               $check = str_replace("/", "", $check);
+               if (!in_array($check, $HTML_TAGS))
+               {
+                       // Invalid tag found!
+                       return "";
+               }
+               $test = substr($test, strpos($test, ">") + 1);
+       }
+       // Return tested code
+       return $html;
+}
+//
+function HTML_INSERT_URLS($text)
+{
+       global $URL_ENDS, $VALID_EMAIL_CHARS;
+       $test = $text;
+
+       // First replace URLs...
+       while (ereg("http://", $test))
+       {
+               $check = substr($test, strpos($test, "http://")); $check2 = $check;
+
+               // See ext-html.php if you want to add more URL ends...
+               foreach ($URL_ENDS as $end)
+               {
+                       if (ereg($end, $check)) $check = substr($check, 0, strpos($check, $end));
+               }
+
+               // Now replace the URL against anchor container and pray...
+               $text = substr($text, 0, strpos($text, $check2))."<A href=\"".DEREFERER($check)."\" target=\"_blank\">".$check."</A>".substr($text, strpos($text, $check2) + strlen($check));
+
+               // Finally remove the url from testing string (or we have a loop and maybe server overload!)
+               $test = substr($test, strpos($test, $check) + strlen($check));
+       }
+
+       // Now do the (nearly) same thing with email addresses
+       // but now we have the problem that email addresses didn't have
+       // a start mark like http:// and our templates are lame didn't have
+       // a mailto: ... :-(
+       $test = $text;
+
+       // ... what will the email address be out the @... ;-)
+       $PARTS = array();
+       while (ereg("@", $test))
+       {
+               $pos = strpos($test, "@");
+               $test2 = substr($test, 0, $pos);
+
+               // First check backwards
+               $idx = $pos - 1;
+               while ($idx > 0)
+               {
+                       $check = substr($test2, $idx, 1);
+                       if (!in_array($check, $VALID_EMAIL_CHARS))
+                       {
+                               // Char found so we end here
+                               break;
+                       }
+                       $idx--;
+               }
+               if ($idx > 0)
+               {
+                       // Starting mark is found
+                       $check2 = substr($test, 0, ($idx + 1));
+                       $test = substr($test, ($idx + 1));
+               }
+
+               // And now go forward...
+               $idx = 0;
+               while ($idx < strlen($test))
+               {
+                       $check = substr($test, $idx, 1);
+                       if ((!in_array($check, $VALID_EMAIL_CHARS)) && ($check != "@"))
+                       {
+                               // Char found so end here again
+                               break;
+                       }
+                       $idx++;
+               }
+               if ($idx > 0)
+               {
+                       // Maybe this is the email address?
+                       $check = substr($test, 0, $idx);
+               }
+
+               // Now replace the email against anchor with mailto and pray...
+               $PARTS[] = $check2."<A href=\"mailto:".$check."\">".$check."</A>";
+
+               // Remove email from testing string (see above why...)
+               $test = substr($test, strlen($check));
+       }
+       // Now put all parts together
+       $text = ""; $PARTS[] = $test;
+       foreach ($PARTS as $part)
+       {
+               $text .= $part;
+       }
+
+       // Replace new-lines agains <BR>-s and finally compile possible own HTML tags out...
+       return COMPILE_CODE(str_replace("\n", "<BR>\n", $text));
+}
+//
+function SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM)
+{
+       if (EXT_IS_ACTIVE("html_mail"))
+       {
+               // Send mail away as HTML
+               $FROM = "Content-Type: text/html\n".$FROM;
+               SEND_EMAIL($TO, $SUBJECT, $MSG, "N", $FROM);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/libs/mediadata_functions.php b/0.2.1/inc/libs/mediadata_functions.php
new file mode 100644 (file)
index 0000000..9257c29
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/08/2005 *
+ * ===============                              Last change: 10/08/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : mediadata_functions.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the mediadata extension            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer die verbesserten Mediendaten     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function MEDIA_UPDATE_ENTRY($keys_array, $mode, $value)
+{
+       if (is_array($keys_array) && ($value > 0))
+       {
+               // Is an array so we can run it through
+               foreach ($keys_array as $key)
+               {
+                       // First check if it does exist
+                       $result_media = SQL_QUERY_ESC("SELECT media_key FROM "._MYSQL_PREFIX."_mediadata
+WHERE media_key = '%s' LIMIT 1", array($key), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result_media) == 0)
+                       {
+                               // Not found so we create it (mode will be ignored here!)
+                               $result_insert = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_mediadata (media_key, media_value)
+VALUES ('%s', '%s')", array($key, $value), __FILE__, __LINE__);
+                       }
+                        else
+                       {
+                               // Update entry
+                               switch ($mode)
+                               {
+                                       case "add": $mode = "+"; break;
+                                       case "sub": $mode = "-"; break;
+                               }
+                               if ($mode == "init")
+                               {
+                                       // Initialize entry
+                                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_mediadata SET media_value=%s WHERE media_key='%s' LIMIT 1",
+                                        array($value, $key), __FILE__, __LINE__);
+                               }
+                                else
+                               {
+                                       // Update entry
+                                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_mediadata SET media_value=media_value".$mode."%s WHERE media_key='%s' LIMIT 1",
+                                        array($value, $key), __FILE__, __LINE__);
+                               }
+                       }
+               }
+       }
+}
+//
+function MEDIA_GET_ENTRY($key)
+{
+       // Return nothing by default
+       $value = "";
+
+       // Check for entry
+       $result = SQL_QUERY_ESC("SELECT media_value FROM "._MYSQL_PREFIX."_mediadata WHERE media_key='%s' LIMIT 1",
+        array($key), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Load data
+               list($value) = SQL_FETCHROW($result);
+       }
+
+       // Return data
+       return $value;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/newsletter_functions.php b/0.2.1/inc/libs/newsletter_functions.php
new file mode 100644 (file)
index 0000000..aa75f75
--- /dev/null
@@ -0,0 +1,185 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/25/2004 *
+ * ================                             Last change: 04/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : newsletter_functions.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the HTML extension                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer die HTML-Erweiterung             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function NL_ADD_VALID_TAGS()
+{
+       global $HTML_TAGS; $OUT = "";
+       if (!is_array($HTML_TAGS)) return "";
+       foreach ($HTML_TAGS as $tag)
+       {
+               $OUT .= ", ".strtoupper($tag);
+       }
+       $OUT = substr($OUT, 2);
+       return $OUT;
+}
+//
+function NL_CHECK_TAGS($html)
+{
+       global $HTML_TAGS;
+       $test = stripslashes($html);
+       while (ereg("<", $test) && ereg(">", $test))
+       {
+               $check = strtolower(substr($test, strpos($test, "<") + 1, strpos($test, ">") - strpos($test, "<") - 1));
+               $check = str_replace("/", "", $check);
+               if (!in_array($check, $HTML_TAGS))
+               {
+                       // Invalid tag found!
+                       return "";
+               }
+               $test = substr($test, strpos($test, ">") + 1);
+       }
+       // Return tested code
+       return $html;
+}
+//
+function NL_INSERT_URLS($text)
+{
+       global $URL_ENDS, $VALID_EMAIL_CHARS;
+       $test = $text;
+
+       // First replace URLs...
+       while (ereg("http://", $test))
+       {
+               $check = substr($test, strpos($test, "http://")); $check2 = $check;
+
+               // See ext-html.php if you want to add more URL ends...
+               foreach ($URL_ENDS as $end)
+               {
+                       if (ereg($end, $check)) $check = substr($check, 0, strpos($check, $end));
+               }
+
+               // Now replace the URL against anchor container and pray...
+               $text = substr($text, 0, strpos($text, $check2)) . DEREFERER($check) . substr($text, strpos($text, $check2) + strlen($check));
+
+               // Finally remove the url from testing string (or we have a loop and maybe server overload!)
+               $test = substr($test, strpos($test, $check) + strlen($check));
+       }
+
+       // Now do the (nearly) same thing with email addresses
+       // but now we have the problem that email addresses didn't have
+       // a start mark like http:// and our templates are lame didn't have
+       // a mailto: ... :-(
+       $test = $text;
+
+       // ... what will the email address be out the @... ;-)
+       $PARTS = array();
+       while (ereg("@", $test))
+       {
+               $pos = strpos($test, "@");
+               $test2 = substr($test, 0, $pos);
+
+               // First check backwards
+               $idx = $pos - 1;
+               while ($idx > 0)
+               {
+                       $check = substr($test2, $idx, 1);
+                       if (!in_array($check, $VALID_EMAIL_CHARS))
+                       {
+                               // Char found so we end here
+                               break;
+                       }
+                       $idx--;
+               }
+               if ($idx > 0)
+               {
+                       // Starting mark is found
+                       $check2 = substr($test, 0, ($idx + 1));
+                       $test = substr($test, ($idx + 1));
+               }
+
+               // And now go forward...
+               $idx = 0;
+               while ($idx < strlen($test))
+               {
+                       $check = substr($test, $idx, 1);
+                       if ((!in_array($check, $VALID_EMAIL_CHARS)) && ($check != "@"))
+                       {
+                               // Char found so end here again
+                               break;
+                       }
+                       $idx++;
+               }
+               if ($idx > 0)
+               {
+                       // Maybe this is the email address?
+                       $check = substr($test, 0, $idx);
+               }
+
+               // Now replace the email against anchor with mailto and pray...
+               $PARTS[] = $check2.$check;
+
+               // Remove email from testing string (see above why...)
+               $test = substr($test, strlen($check));
+       }
+       // Now put all parts together
+       $text = ""; $PARTS[] = $test;
+       foreach ($PARTS as $part)
+       {
+               $text .= $part;
+       }
+
+       // Compile possible own HTML tags out...
+       return COMPILE_CODE($text);
+}
+//
+function SEND_NEWSLETTER($TO, $SUBJECT, $MSG, $MODE)
+{
+       global $_POST;
+       // Send mail away as HTML
+       if ($_POST['auto_urls'] == "Y") {
+               // Automatically insert URLs into newsletter
+               if ((EXT_IS_ACTIVE("html")) && ($MODE == "html")) {
+                       // Send HTML mail
+                       SEND_EMAIL($TO, $SUBJECT, HTML_INSERT_URLS($MSG), "Y");
+               } else {
+                       // Send normal mail
+                       SEND_EMAIL($TO, $SUBJECT, NL_INSERT_URLS($MSG), "N");
+               }
+       } else {
+               // Regular send-out
+               if ((EXT_IS_ACTIVE("html")) && ($MODE == "html")) {
+                       SEND_EMAIL($TO, $SUBJECT, $MSG, "Y");
+               } else {
+                       SEND_EMAIL($TO, $SUBJECT, $MSG);
+               }
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/libs/nickname_functions.php b/0.2.1/inc/libs/nickname_functions.php
new file mode 100644 (file)
index 0000000..9123ebc
--- /dev/null
@@ -0,0 +1,80 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/25/2004 *
+ * ================                             Last change: 06/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : nickname_functions.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Nickname functions                               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Nickname-Funktionen                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function NICKNAME_IS_ACTIVE($uidNick)
+{
+       $ret = false;
+       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE (userid=%d AND userid > 0 AND nickname != '') OR nickname='%s' LIMIT 1",
+        array(bigintval($uidNick), $uidNick), __FILE__, __LINE__);
+
+       // Check existence of nickname
+       if (SQL_NUMROWS($result) == 1) $ret = true;
+
+       // Free result
+       SQL_FREERESULT($result);
+
+       // Return nickname
+       return $ret;
+}
+//
+function NICKNAME_GET_NICK($userid)
+{
+       // If not found...
+       $ret = "";
+
+       // Search for non-empty nickname
+       $result = SQL_QUERY_ESC("SELECT nickname FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND nickname != '' LIMIT 1",
+        array(bigintval($userid)), __FILE__, __LINE__);
+
+       // Found?
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Load nickname from database
+               list($ret) = SQL_FETCHROW($result);
+       }
+
+       // Free result
+       SQL_FREERESULT($result);
+
+       // Return nickname
+       return $ret;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/optimize_functions.php b/0.2.1/inc/libs/optimize_functions.php
new file mode 100644 (file)
index 0000000..b4f4a74
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/17/2004 *
+ * ================                             Last change: 09/17/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : optimize_functions.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Optimize functions                               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Optimize-Funktionen                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+// Part taken from admin optimize module of PHPNuke (http://www.phpnuke.org)
+//
+function REPAIR_OPTIMIZE_DB()
+{
+       global $MySQL;
+       $ret = array();
+       $tot_data = 0; $tabs = 0; $opts = 0;
+       $tot_idx = 0; $total_gain = 0;
+       $tot_all = 0;
+       $result = @SQL_QUERY("SHOW TABLE STATUS FROM ".$MySQL['dbase'], __FILE__, __LINE__);
+       $tabs = @SQL_NUMROWS($result);
+       $ret['total_size'] = 0;
+       $ret['total_tabs'] = $tabs;
+       if ($tabs > 0)
+       {
+               while ($row = SQL_FETCHARRAY($result))
+               {
+                       $tot_data = $row['Data_length'];
+                       $tot_idx  = $row['Index_length'];
+                       $total = $tot_data + $tot_idx;
+                       $total = $total / 1024;
+                       $total = round ($total, 3);
+                       $gain  = $row['Data_free'];
+                       $gain  = $gain / 1024;
+                       $total_gain += $gain;
+                       $gain = round ($gain, 3);
+
+                       // Repair table
+                       $result1 = SQL_QUERY("REPAIR TABLE ".$row['Name'], __FILE__, __LINE__);
+                       $rep = SQL_FETCHARRAY($result1);
+
+                       // Optimize table
+                       $result1 = SQL_QUERY("OPTIMIZE TABLE ".$row['Name'], __FILE__, __LINE__);
+                       $opt = SQL_FETCHARRAY($result1);
+
+                       // Add data to array
+                       $ret['tables'][] = array($row['Name'], $opt['Msg_text'], $rep['Msg_text'], $total, $gain);
+
+                       // Count total table data
+                       $ret['total_size'] += $total;
+               }
+       }
+       // Total optimized data
+       $total_gain = round ($total_gain,3);
+       $ret['total_gain'] = $total_gain;
+
+       // Insert new row
+       $result = SQL_QUERY("INSERT INTO "._MYSQL_PREFIX."_optimize_gain (gain) VALUES ('".$total_gain."')", __FILE__, __LINE__);
+
+       // Get total runs and total optimization count
+       $result = SQL_QUERY("SELECT COUNT(id) AS rows, SUM(gain) AS opti FROM "._MYSQL_PREFIX."_optimize_gain", __FILE__, __LINE__);
+       list($total_rows, $total_opti) = SQL_FETCHROW($result);
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Transfer data
+       $ret['total_rows'] = $total_rows;
+       $ret['total_opti'] = $total_opti;
+
+       // Return array
+       return $ret;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/order_functions.php b/0.2.1/inc/libs/order_functions.php
new file mode 100644 (file)
index 0000000..a05f2f3
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/05/2005 *
+ * ===============                              Last change: 04/05/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : order_functions.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for the guest's newsletter             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer den Newsletter an die Gaeste     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+function ORDER_SELECT_OPTION_LIST($default)
+{
+       // Currenty the list is hardcoded...
+       $LIST = array("userid", "zip", "country", "email", "birth_year", "last_online", "ref_clicks", "total_logins", "mail_orders");
+       $OUT = "";
+       foreach ($LIST as $item)
+       {
+               $selected = "";
+               if ($item == $default) $selected = " selected=\"selected\"";
+               $OUT .= "<OPTION value=\"".$item."\"".$selected.">{--ORDER_SELECT_COLUMN_".strtoupper($item)."--}</OPTION>\n";
+       }
+       return $OUT;
+}
+
+//
+?>
diff --git a/0.2.1/inc/libs/output_functions.php b/0.2.1/inc/libs/output_functions.php
new file mode 100644 (file)
index 0000000..efa5bc7
--- /dev/null
@@ -0,0 +1,177 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/26/2005 *
+ * ===============                              Last change: 01/26/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : output_functions.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Class containing the HTML sub-system             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Klasse fuer das HTML-Subsystem                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add HTML to the output stream
+class HTMLParser
+{
+
+// Initializer
+function HTMLParser()
+{
+}
+
+// Add HTML-Code to buffer
+function add_html ($HTML, $NEW_LINE = true)
+{
+       global $OUTPUT;
+}
+// Compiles HTML code
+function compile_html($code, $simple=false)
+{
+       global $SEC_CHARS;
+
+       // Compile constants
+       $code = str_replace("{--", '".', str_replace("--}", '."', $code));
+
+       // Compile QUOT and other non-HTML codes
+       foreach ($SEC_CHARS['to'] as $k=>$from)
+       {
+               // Do the reversed thing as in inc/libs/security_functions.php
+               $code = str_replace($from, $SEC_CHARS['from'][$k], $code);
+       }
+
+       // But keep simple quotes for later use
+       if ($simple) $code = str_replace("'", "{QUOT}", $code);
+
+       // Return compiled code
+       return $code;
+}
+// Load a template file and return it's content (only it's name; do not use ' or ")
+function get_template ($template, $return=false, $content="")
+{
+       // Add more variables which you want to use in your template files
+       global $DATA, $ACTION, $WHAT;
+       $REFID = bigintval($_COOKIE['refid']);
+
+       if ($template == "member_support_form")
+       {
+               // Support request of a member
+               $ID = bigintval($_COOKIE['userid']);
+               $result = SQL_QUERY_ESC("SELECT sex, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid='%s' LIMIT 1", array($ID), __FILE__, __LINE__);
+               list($sex, $surname, $family) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               $salut = TRANSLATE_SEX($sex);
+       }
+
+       // Base directory
+       $BASE = PATH."templates/".GET_LANGUAGE()."/html/";
+       $MODE = "";
+
+       // Check for admin/guest/member templates
+       if (strpos($template, "admin_") > -1)
+       {
+               // Admin template found
+               $MODE = "admin/";
+       }
+        elseif (strpos($template, "guest_") > -1)
+       {
+               // Guest template found
+               $MODE = "guest/";
+       }
+        elseif (strpos($template, "member_") > -1)
+       {
+               // Member template found
+               $MODE = "member/";
+       }
+        elseif (strpos($template, "install_") > -1)
+       {
+               // Installation template found
+               $MODE = "install/";
+       }
+        elseif (strpos($template, "mailid_") > -1)
+       {
+               // Mail confirmation template found
+               $MODE = "mailid/";
+       }
+
+       // Generate file name
+       $file = $BASE.$MODE.$template.".tpl";
+       if ((!empty($HTTP_GET_VARS['what'])) && ((strpos($template, "_header") > 0) || (strpos($template, "_footer") > 0)) && (($MODE == "guest/") || ($MODE == "member/") || ($MODE == "admin/")))
+       {
+               // Select what depended header/footer template file for admin/guest/member area
+               $file2 = $BASE.$MODE.$template."_".$HTTP_GET_VARS['what'].".tpl";
+
+               // Probe for it...
+               if (file_exists($file2)) $file = $file2;
+
+               // Remove variable from memory
+               unset($file2);
+       }
+
+       // Does the special template exists?
+       if (!file_exists($file))
+       {
+               // Reset to default template
+               $file = PATH."templates/".GET_LANGUAGE()."/html/".$template.".tpl";
+       }
+
+       // Now does the final template exists?
+       if (file_exists($file))
+       {
+               // The local file does exists so we load it. :)
+               $tmpl_file = implode("", file($file));
+               $tmpl_file = str_replace("'", "{QUOT}", $tmpl_file);
+
+               // Compile and run code
+               $ret = COMPILE_CODE(addslashes($tmpl_file), false, true);
+               $ret = "<!-- Template ".$template." - Start -->\n".$ret."<!-- Template ".$template." - End -->\n";
+       }
+        elseif (IS_ADMIN())
+       {
+               // Only admins shall see this warning
+               $ret = "<BR><SPAN class=\"guest_failed\">".TEMPLATE_404."</SPAN><BR>
+(".basename($file).")
+<BR><BR>";
+       }
+       if ($return)
+       {
+               // Return the HTML code
+               return $ret;
+       }
+        else
+       {
+               // Output directly
+               $this->add_html ($ret);
+       }
+}
+
+       // END OF CLASS
+}
+//
+?>
diff --git a/0.2.1/inc/libs/payout_functions.php b/0.2.1/inc/libs/payout_functions.php
new file mode 100644 (file)
index 0000000..bc6036e
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 08/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-points.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : All your collected points...                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Ihrer gesammelten Punkte                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function PAYOUT_OUTPUT_PAYOUT_LIST($POINTS)
+{
+       // Replace german decimal comma with CPU's decimal dot
+       $POINTS = strval(str_replace(",", ".", $POINTS));
+       if ($POINTS > 0)
+       {
+               // Pay this out!
+               $result = SQL_QUERY_ESC("SELECT id, type, rate, min_points
+FROM "._MYSQL_PREFIX."_payout_types
+WHERE %s >= min_points
+ORDER BY type", array($POINTS), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) > 0)
+               {
+                       OUTPUT_HTML ("<BR><DIV align=\"center\">
+<DIV align=\"center\"><STRONG>".PAYOUT_NOW.":</STRONG></DIV><BR>
+<UL>");
+                       // Now let's check
+                       while (list($id, $type, $rate, $mpoi) = SQL_FETCHROW($result))
+                       {
+                               $type = COMPILE_CODE($type);
+                               if ($POINTS >= $mpoi)
+                               {
+                                       // Ok we found one
+                                       $P = $POINTS * $rate - 0.5;
+                                       OUTPUT_HTML ("<LI>".PAYOUT_IN.": <STRONG><A href=\"".URL."/modules.php?module=login&amp;what=payout&amp;payout=".$id."\">".$type." (".PAYOUT_MAX." ".round($P)." ".$type.")</A></STRONG></LI>");
+                               }
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+                       OUTPUT_HTML ("</UL></DIV>");
+               }
+                else
+               {
+                       // No payout types setup so far
+                       OUTPUT_HTML ("<P><FONT class=\"guest_failed\">".PAYOUT_NO_PAYOUT_TYPES."</FONT></P>");
+               }
+       }
+        else
+       {
+               // Points is empty
+               OUTPUT_HTML ("<P><FONT class=\"guest_failed\">".PAYOUT_NO_POINTS_ENTERED."</FONT></P>");
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/libs/rallye_functions.php b/0.2.1/inc/libs/rallye_functions.php
new file mode 100644 (file)
index 0000000..e55876b
--- /dev/null
@@ -0,0 +1,842 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/22/2004 *
+ * ===============                              Last change: 08/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : rallye_functions.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Special functions for rallye extension           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Spezielle Funktion fuer rallye-Erweiterung       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function RALLYE_AUTOSTART_RALLYES($result)
+{
+       // Global data array for LOAD_EMAIL_TEMPLATE()
+       $DATA = array();
+       global $DATA, $CONFIG;
+
+       // Load all rallyes (usally we have only one rallye active per time!
+       list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Set notified to Y
+       $result_notified = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET notified='Y' WHERE id=%d LIMIT 1",
+        array(bigintval($id)), __FILE__, __LINE__);
+
+       // Do a snapshot off all user refs
+       $result_user = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' ORDER BY userid", __FILE__, __LINE__);
+
+       // Transfer all neccessary data to the global $DATA array
+       $DATA['uid_cnt']    = SQL_NUMROWS($result_user);
+       $DATA['start']      = MAKE_DATETIME($start, "2");
+       $DATA['end']        = MAKE_DATETIME($end  , "2");
+       $DATA['now_t']      = MAKE_DATETIME(time(), "2");
+       $DATA['title']      = $title;
+       $DATA['id']         = $id;  // ID for the rallye details link
+
+       if ($min_users == 0)
+       {
+               // Rallye ends without user limitation
+               $DATA['min_users'] = RALLYE_END_NO_USER_LIMITATION;
+       }
+        else
+       {
+               // Rallye ends when X members are totally in your exchange
+               $DATA['min_users'] = RALLYE_END_USERS_1." ".$min_users." ".RALLYE_END_USERS_2;
+       }
+       if ($min_prices == 0)
+       {
+               // Rallye ends without user limitation
+               $DATA['min_prices'] = RALLYE_END_NO_PRICE_LIMITATION;
+       }
+        else
+       {
+               // Rallye ends when X members are totally in your exchange
+               $DATA['min_prices'] = RALLYE_END_PRICES_1." ".$min_prices." ".RALLYE_END_PRICES_2;
+       }
+
+       // Load prices
+       $prices = RALLYE_ADD_PRICES($id);
+
+       // Let's begin with the userids...
+       while (list($uid) = SQL_FETCHROW($result_user))
+       {
+               $un = false;
+
+               // Get refs by userid
+               $cnt = RALLYE_GET_REFCOUNT($uid);
+               if (empty($cnt)) $cnt = "0"; // Added prevent some unknown troubles... :-?
+
+               // Check if line is already included...
+               $result_ref = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%d AND userid=%d LIMIT 1",
+                array(bigintval($id), bigintval($uid)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result_ref) == 0)
+               {
+                       // Free memory
+                       SQL_FREERESULT($result_ref);
+
+                       // Add userid and his ref count to table
+                       $result_ref = SQL_QUERY_ESC("SELECT DISTINCT SUM(p.points)
+FROM "._MYSQL_PREFIX."_user_points AS p
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON p.userid=d.userid
+WHERE d.status='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND p.ref_depth='1' AND p.points > 0 AND d.userid=%d",
+ array($CONFIG['ref_payout'], bigintval($uid)), __FILE__, __LINE__);
+                       list($cpoints) = SQL_FETCHROW($result_ref);
+                       SQL_FREERESULT($result_ref);
+
+                       if (empty($cpoints)) $cpoints = "0.00000";
+
+                       // Add info line
+                       $result_ref = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_rallye_users (rallye_id, userid, refs, curr_points)
+VALUES ('%s', '%s', '%s', '%s')",
+ array(bigintval($id), bigintval($uid), bigintval($cnt), $cpoints), __FILE__, __LINE__);
+                       $un = true;
+               }
+
+               // Ignored but for the template required refs (made before start of rallye)
+               $DATA['refs']  = $cnt;
+
+               // Shall I notify this member?
+               if (($notify == "Y") && ($un))
+               {
+                       // Load email template and send it to the user
+                       $msg = LOAD_EMAIL_TEMPLATE("member_rallye_notify", $prices, $uid);
+                       SEND_EMAIL($uid, RALLYE_MEMBER_NOTIFY.$title, $msg);
+               }
+       }
+
+       // Send email to admin
+       $templ = "admin_rallye_no_notify";
+       if ($notify == "Y") $templ = "admin_rallye_notify";
+       if (GET_EXT_VERSION("admins") < "0.4.1")
+       {
+               // Use old method to send out
+               $msg = LOAD_EMAIL_TEMPLATE($templ, $prices, 0);
+               SEND_ADMIN_EMAILS(RALLYE_ADMIN_NOTIFY.$title, $msg);
+       }
+        else
+       {
+               // Use new system to send out
+               SEND_ADMIN_EMAILS_PRO(RALLYE_ADMIN_NOTIFY.$title, $templ, $prices, "0");
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_user);
+}
+//
+function RALLYE_ADD_PRICES($rallye,$mode="email")
+{
+       // Output mode
+       switch($mode)
+       {
+               case "email": $mode = "\n";     break;
+               case "html" : $mode = "<BR>\n"; break;
+       }
+
+       // Load prices
+       $result_prices = SQL_QUERY("SELECT price_level, points, info FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id='".$rallye."' ORDER BY price_level", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_prices) > 0)
+       {
+               // Load prices
+               if ($mode == "\n") $prices = RALLYE_MEMBER_PRICES_ADDED.":".$mode."------------------------------".$mode;
+               $prices = "";
+               while (list($level, $points, $info) = SQL_FETCHROW($result_prices))
+               {
+                       $prices .= $level.RALLYE_PRICE.": ";
+                       if (!empty($info))
+                       {
+                               $prices .= $info;
+                       }
+                        else
+                       {
+                               $prices .= $points." ".POINTS;
+                       }
+                       $prices .= "".$mode;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result_prices);
+       }
+        else
+       {
+               // No prices???
+               $prices = RALLYE_MEMBER_NO_PRICES.$mode;
+       }
+       // Add last line for email mode
+       if ($mode == "\n") $prices .= "------------------------------";
+
+       // Return price list
+       return $prices;
+}
+//
+function RALLYE_ADD_TOPUSERS($rallye,$default=0)
+{
+       global $CONFIG;
+       $since = (time() - $CONFIG['ap_in_since']);
+
+       // First check how many prices are set
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d ORDER BY price_level",
+        array(bigintval($rallye)), __FILE__, __LINE__);
+       $prices = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       // And load only limited users
+       $result = SQL_QUERY_ESC("SELECT DISTINCT u.userid, u.refs, u.curr_points FROM "._MYSQL_PREFIX."_rallye_users AS u
+LEFT JOIN "._MYSQL_PREFIX."_refsystem AS r
+ON u.userid=r.userid
+WHERE u.rallye_id=%d AND r.counter > 0 ORDER BY u.refs DESC",
+ array(bigintval($rallye)), __FILE__, __LINE__);
+
+       // Load users
+       $DATA = array(
+               'uid'      => array(),
+               'ref'      => array(),
+               'cpoints'  => array()
+       );
+
+       while(list($uid, $refs, $cpoints) = SQL_FETCHROW($result))
+       {
+               // Get current refs
+               $cnt = RALLYE_GET_REFCOUNT($uid, $refs);
+
+               // Points of ref's
+               $result_ref = SQL_QUERY_ESC("SELECT DISTINCT p.points FROM "._MYSQL_PREFIX."_user_points AS p
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON p.userid=d.userid
+WHERE d.userid=%d AND d.status='CONFIRMED' AND p.ref_depth='1' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND d.last_online >= %s
+LIMIT 1", array(bigintval($uid), $CONFIG['ref_payout'], $since), __FILE__, __LINE__);
+               list($refpoints) = SQL_FETCHROW($result_ref);
+               SQL_FREERESULT($result_ref);
+
+               if (empty($refpoints)) $refpoints = "0";
+
+               // And subtract start refs
+               $cnt -= $refs;
+
+               $_uid = "---";
+               // List only users with at least one ref!
+               if (($cnt > 0) && ($refpoints > $cpoints)) { $_uid = $uid; } else { $cnt = ""; }
+
+               // Save values to array
+               $DATA['uid'][]     = $_uid;
+               $DATA['ref'][]     = $cnt;
+               $DATA['cpoints'][] = $cpoints;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Sort whole array
+       array_pk_sort($DATA, array("ref", "cpoints"), 0, 1, true);
+
+       // Generate table
+       $OUT = LOAD_TEMPLATE("guest_rallye_header", true);
+       $SW = 2;
+       for ($idx = 0; $idx < $prices; $idx++)
+       {
+               if (empty($DATA['uid'][$idx])) $DATA['uid'][$idx] = "---";
+               if (empty($DATA['ref'][$idx])) $DATA['ref'][$idx] = "---";
+               // Add row
+               $OUT .= "<TR>
+  <TD class=\"switch_sw".$SW." bottom2\">&nbsp;&nbsp;".($idx+1).".</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2\">";
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "<STRONG>";
+               $OUT .= $DATA['uid'][$idx];
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "</STRONG>";
+               $OUT .= "</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2\">";
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "<STRONG>";
+               $OUT .= $DATA['ref'][$idx];
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "</STRONG>";
+               $OUT .= "</TD>
+</TR>\n";
+               $SW = 3 - $SW;
+       }
+       // Add footer
+       $OUT .= LOAD_TEMPLATE("guest_rallye_footer", true);
+
+       // And finnally return the output
+       return $OUT;
+}
+// Run this function only when a new member has confirmed his email address!
+function RALLYE_AUTOADD_USER($uid)
+{
+       global $DATA;
+       // Check for an auto-add rallye
+       $result = SQL_QUERY("SELECT id, title, start_time, end_time, send_notify FROM "._MYSQL_PREFIX."_rallye_data WHERE is_active='Y' AND notified='Y' AND auto_add_new_user='Y' AND expired='N' LIMIT 1", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Load data
+               list($id, $title, $start, $end, $notify) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Check if line is already included...
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%d AND userid=%d LIMIT 1",
+                array(bigintval($id), bigintval($uid)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 0)
+               {
+                       // Add userid and his ref count to table
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_rallye_users (rallye_id, userid, refs)
+VALUES ('%s', '%s', '0')",
+ array(bigintval($id), bigintval($uid)), __FILE__, __LINE__);
+               }
+                else
+               {
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
+
+               if ($notify == "Y")
+               {
+                       // Transfer all neccessary data to the global $DATA array
+                       $DATA['start'] = MAKE_DATETIME($start, "2");
+                       $DATA['end']   = MAKE_DATETIME($end  , "2");
+                       $DATA['now_t'] = MAKE_DATETIME(time(), "2");
+                       $DATA['title'] = $title;
+                       $DATA['id']    = $id;  // ID for the rallye details link
+                       $DATA['ref']   = "0";
+
+                       // Load prices
+                       $prices = RALLYE_ADD_PRICES($id);
+
+                       // Send notification to member
+                       $msg = LOAD_EMAIL_TEMPLATE("member_rallye_notify", $prices, $uid);
+                       SEND_EMAIL($uid, RALLYE_MEMBER_NOTIFY.$title, $msg);
+               }
+       }
+}
+//
+function RALLYE_EXPIRE_RALLYES($result)
+{
+       global $DATA, $CONFIG;
+
+       // Latest online time
+       $since = (time() - $CONFIG['ap_in_since']);
+
+       // Load rallye data
+       list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Load users array (!) with assigned prices
+       $prices = RALLYE_LOAD_USERS_ARRAY($id);
+
+       // Init array
+       $DATA = array(); $cnt = 0;
+       $users = array();
+       $DATA['title']  = $title;
+       $DATA['start']  = MAKE_DATETIME($start, "1");
+       $DATA['end']    = MAKE_DATETIME($end  , "1");
+       $DATA['now_t']  = MAKE_DATETIME(time(), "1");
+
+       // Just count...
+       $TOTAL = 0;
+       foreach($prices['uid'] as $key=>$uid)
+       {
+               // Check status
+               //   active = 1: account is still confirmed
+               //   active = 0: account is deleted or locked
+               $result = SQL_QUERY_ESC("SELECT COUNT(userid) AS active
+FROM "._MYSQL_PREFIX."_user_data
+WHERE userid=%d AND status='CONFIRMED' AND last_online >= %s
+LIMIT 1", array(bigintval($uid), $since), __FILE__, __LINE__);
+               list($active) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               $prices['active'][$key] = $active;
+
+               // Allow valid and active users with at least one ref to get points
+               if (($uid > 0) && ($prices['ref'][$key] > 0) && ($active == 1) && ($prices['cpoints'][$key] > 0))
+               {
+                       $TOTAL++;
+               }
+       }
+
+       if (($TOTAL < $min_prices) || ($TOTAL == 0))
+       {
+               // Do not end this rallye!
+               return;
+       }
+
+       // Expire rallye
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET expired='Y' WHERE id=%d LIMIT 1",
+        array(bigintval($id)), __FILE__, __LINE__);
+
+       // Run array through (by uid is the most important 2nd-level-array)
+       foreach($prices['uid'] as $key=>$uid)
+       {
+               // Allow valid and active users with at least one ref to get points
+               if (($uid > 0) && ($prices['ref'][$key] > 0) && ($prices['active'][$key] == 1) && ($prices['cpoints'][$key] > 0))
+               {
+                       // Transfer data to array for the mail template
+                       $DATA['level']  = $prices['level'][$key];
+                       $DATA['points'] = $prices['points'][$key];
+                       $DATA['info']   = $prices['info'][$key];
+                       $DATA['ref']    = $prices['ref'][$key];
+
+                       if ($DATA['points'] > 0)
+                       {
+                               // Add points directly to user's account
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth='0' LIMIT 1",
+                                array($DATA['points'], bigintval($uid)), __FILE__, __LINE__);
+
+                               // Update mediadata as well
+                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                               {
+                                       // Update database
+                                       MEDIA_UPDATE_ENTRY(array("total_points"), "add", $DATA['points']);
+                               }
+                       }
+
+                       if ($notify == "Y")
+                       {
+                               // Prepare infos for the mail template
+                               if (!empty($DATA['info']))
+                               {
+                                       // Take direct infos
+                                       $DATA['infos'] = $DATA['info'];
+                               }
+                                else
+                               {
+                                       // Take points
+                                       $DATA['infos'] = $DATA['points']." ".POINTS;
+                               }
+
+                               // Add suffix to template name
+                               $template = "member_rallye_expired";
+                               if ($DATA['level'] == 1)
+                               {
+                                       // The winner!
+                                       $template .= "_gold";
+                               }
+                                elseif ($DATA['level'] == 2)
+                               {
+                                       // The vice winner!
+                                       $template .= "_silver";
+                               }
+                                elseif ($DATA['level'] == 3)
+                               {
+                                       // The bronce winner
+                                       $template .= "_bronce";
+                               }
+
+                               // Load template
+                               $msg = LOAD_EMAIL_TEMPLATE($template, $DATA, $uid);
+                               SEND_EMAIL($uid, RALLYE_MEMBER_EXPIRED.": ".$DATA['level']." "._RALLYE_PRICE, $msg);
+                       }
+
+                       // Count userid
+                       $cnt++;
+                       $users['uid'][$uid] = $uid;
+                       $users['poi'][$uid] = $DATA['infos'];
+               }
+       }
+
+       // Select template depending on notfication is switch on / off
+       if ($notify == "Y")
+       {
+               $templ = "admin_rallye_expired";
+       }
+        elseif (is_array($users['uid']))
+       {
+               $templ = "admin_rallye_expired_no";
+               $cnt = RALLYE_LOAD_USER_DATA($users);
+       }
+
+       // Send mail to admin
+       if (GET_EXT_VERSION("admins") < "0.4.1")
+       {
+               // Use old method to send out
+               $msg = LOAD_EMAIL_TEMPLATE($templ, $cnt, 0);
+               SEND_ADMIN_EMAILS(RALLYE_ADMIN_EXPIRED.": ".$title, $msg);
+       }
+        else
+       {
+               // Use new system to send out
+               SEND_ADMIN_EMAILS_PRO(RALLYE_ADMIN_EXPIRED.": ".$title, $templ, $cnt, 0);
+       }
+
+       // Add task
+       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (status, task_type, subject, text, task_created)
+VALUES ('NEW', 'RALLYE_EXPIRED', '".RALLYE_ADMIN_EXPIRED.": %s', '".RALLYE_ADMIN_EXPIRED_TEXT."', UNIX_TIMESTAMP())",
+ array($title), __FILE__, __LINE__);
+
+       // All work done here...
+}
+//
+function RALLYE_LOAD_USER_DATA($uids_array)
+{
+       // Implode user ids
+       $uid_string = implode(",", $uids_array['uid']);
+
+       // Load users
+       $result = SQL_QUERY_ESC("SELECT userid, sex, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid IN(%s) AND status='CONFIRMED' ORDER BY userid LIMIT %s",
+        array($uid_string, count($uids_array)), __FILE__, __LINE__);
+       $ret = "";
+       while (list($u, $sex, $surname, $family, $email) = SQL_FETCHROW($result))
+       {
+               $ret .= TRANSLATE_SEX($sex)." ".$surname." ".$family." (".$email.") - ".$uids_array['poi'][$u]."\n";
+       }
+
+       // Return result
+       return substr($ret, 0, -1);
+}
+//
+function RALLYE_LOAD_PRICES_ARRAY($rallye)
+{
+       // Init multi array
+       $prices = array(
+               'level'  => array(),
+               'points' => array(),
+               'info'   => array()
+       );
+
+       // Load prices
+       $result = SQL_QUERY_ESC("SELECT price_level, points, info FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d ORDER BY price_level",
+        array(bigintval($rallye)), __FILE__, __LINE__);
+       while(list($level, $points, $info) = SQL_FETCHROW($result))
+       {
+               $prices['level'][]  = $level;
+               $prices['points'][] = $points;
+               $prices['info'][]   = $info;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Return array
+       return $prices;
+}
+//
+function RALLYE_LOAD_USERS_ARRAY($rallye)
+{
+       global $CONFIG;
+
+       // Fix zero points to 0.00000
+       if ($CONFIG['ref_payout'] == "0") $CONFIG['ref_payout'] = "0.00000";
+
+       // Init multi array
+       $users = array(
+               'uid'     => array(),
+               'ref'     => array(),
+               'cpoints' => array(),
+       );
+
+       // Load users                    uid    old   points earned
+       $result_user = SQL_QUERY_ESC("SELECT userid, refs, curr_points FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%d ORDER BY userid",
+        array(bigintval($rallye)), __FILE__, __LINE__);
+       while(list($uid, $refs, $cpoints) = SQL_FETCHROW($result_user))
+       {
+               // Load current ref count
+               $cnt = RALLYE_GET_REFCOUNT($uid, $refs);
+
+               // Points of ref's
+               $result_ref = SQL_QUERY_ESC("SELECT DISTINCT SUM(p.points)
+FROM "._MYSQL_PREFIX."_user_points AS p
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON p.userid=d.userid
+WHERE d.status='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= %s AND p.ref_depth='1' AND p.points > 0 AND d.userid=%d",
+ array($CONFIG['ref_payout'], bigintval($uid)), __FILE__, __LINE__);
+               list($refpoints) = SQL_FETCHROW($result_ref);
+               SQL_FREERESULT($result_ref);
+
+               if (empty($refpoints)) $refpoints = "0";
+
+               // Store calculated new refs to array
+               $users['uid'][]     = $uid;
+               $users['ref'][]     = abs($cnt - $refs);
+               $users['cpoints'][] = $refpoints - $cpoints;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_user);
+
+       // Sort array for refs (descending)
+       array_pk_sort($users, array("ref", "cpoints"), 0, 1, true);
+
+       // Load prices array (!)
+       $prices = RALLYE_LOAD_PRICES_ARRAY($rallye);
+
+       // Merge users into prices
+       foreach ($prices['level'] as $k=>$lvl)
+       {
+               $prices['uid'][$k]  = $users['uid'][$k];
+               if (empty($prices['uid'][$k])) $prices['uid'][$k]  = "---";
+               $prices['ref'][$k] = $users['ref'][$k];
+               if (empty($prices['ref'][$k])) $prices['ref'][$k] = "---";
+               $prices['cpoints'][$k] = $users['cpoints'][$k];
+       }
+
+       // Return completed array
+       return $prices;
+}
+//
+function RALLYE_LIST_WINNERS($rallye,$default=0)
+{
+       // First check how many prices are set
+       $result_prices = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d ORDER BY price_level",
+        array(bigintval($rallye)), __FILE__, __LINE__);
+       $prices = SQL_NUMROWS($result_prices);
+       SQL_FREERESULT($result_prices);
+
+       // Load data
+       $DATA = RALLYE_LOAD_USERS_ARRAY($rallye);
+
+       // Generate table
+       $OUT = LOAD_TEMPLATE("guest_rallye_expired_header", true);
+       $SW = 2;
+       for ($idx = 0; $idx < $prices; $idx++)
+       {
+               // Check status
+               //   active = 1: account is still confirmed
+               //   active = 0: account is deleted or locked
+               $result_active = SQL_QUERY_ESC("SELECT COUNT(userid) FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                array(bigintval($DATA['uid'][$idx])), __FILE__, __LINE__);
+               list($active) = SQL_FETCHROW($result_active);
+               SQL_FREERESULT($result_active);
+
+               if (empty($DATA['uid'][$idx])) $DATA['uid'][$idx] = "---";
+               if ((empty($DATA['ref'][$idx])) || ($DATA['ref'][$idx] == 0) || ($active == 0) || ("".round($DATA['cpoints'][$idx])."" == "0") || (empty($DATA['cpoints'][$idx])))
+               {
+                       // Allow valid and active users with at least one ref to get points
+                       $DATA['ref'][$idx]   = "---";
+                       $DATA['uid'][$idx]   = "---";
+               }
+               if (!empty($DATA['info'][$idx]))
+               {
+                       // Take direct infos
+                       $DATA['infos'][$idx] = $DATA['info'][$idx];
+               }
+                else
+               {
+                       // Take ppints
+                       $DATA['infos'][$idx] = $DATA['points'][$idx]." ".POINTS;
+               }
+
+               // Add row
+               $ADD = "";
+               $OUT .= "<TR>
+  <TD class=\"switch_sw".$SW." bottom2".$ADD."\">&nbsp;&nbsp;".($idx+1).".</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2".$ADD."\">";
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "<STRONG>";
+               $OUT .= $DATA['uid'][$idx];
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "</STRONG>";
+               $OUT .= "</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2".$ADD."\">";
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "<STRONG>";
+               $OUT .= $DATA['ref'][$idx];
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "</STRONG>";
+               $OUT .= "</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2".$ADD."\">";
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "<STRONG>";
+               $OUT .= $DATA['infos'][$idx];
+               if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= "</STRONG>";
+               $OUT .= "</TD>
+</TR>\n";
+               $SW = 3 - $SW;
+       }
+       // Add footer
+       $OUT .= LOAD_TEMPLATE("guest_rallye_expired_footer", true);
+
+       // And finnally return the output
+       return $OUT;
+}
+//
+function RALLYE_DELETE_EXPIRED_RALLYES()
+{
+       global $DATA, $CONFIG;
+       // Check for expired rallyes
+       $EXPIRE = time() - ONE_DAY * 3; // The hard-coded value...
+       $result_rallye = SQL_QUERY_ESC("SELECT id, title, start_time, end_time FROM "._MYSQL_PREFIX."_rallye_data WHERE end_time <= %s AND expired='Y'",
+        array($EXPIRE), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result_rallye) > 0)
+       {
+               // Expire found rallyes and notify admin
+               while(list($id, $title, $start, $end) = SQL_FETCHROW($result_rallye))
+               {
+                       // Prepare data for mail template
+                       $DATA['title']  = $title;
+                       $DATA['start']  = MAKE_DATETIME($start, "1");
+                       $DATA['end']    = MAKE_DATETIME($end  , "1");
+                       $DATA['now_t']  = MAKE_DATETIME(time(), "1");
+
+                       // Send mail to admin
+                       if (GET_EXT_VERSION("admins") < "0.4.1")
+                       {
+                               // Use old method to send out
+                               $msg = LOAD_EMAIL_TEMPLATE("admin_rallye_purged", "", 0);
+                               SEND_ADMIN_EMAILS(RALLYE_ADMIN_PURGED.": ".$title, $msg);
+                       }
+                        else
+                       {
+                               // Use new system to send out
+                               SEND_ADMIN_EMAILS_PRO(RALLYE_ADMIN_PURGED.": ".$title, "admin_rallye_purged", "", 0);
+                       }
+
+                       // Purge whole rallye
+                       $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_data WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       $result_purge = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+               }
+
+               // Add task
+               $result_task = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (status, task_type, subject, text, task_created)
+VALUES ('NEW', 'RALLYE_PURGED', '".RALLYE_ADMIN_PURGED.": %s', '".RALLYE_ADMIN_PURGED_TEXT."', UNIX_TIMESTAMP())",
+ array($title), __FILE__, __LINE__);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_rallye);
+}
+//
+function RALLYE_TEMPLATE_SELECTION($name="template", $default="")
+{
+       // Check templates directory
+       $OUT = ""; $ral = array();
+       $BASE = PATH."templates/".GET_LANGUAGE()."/html";
+       $dir = opendir($BASE);
+       while ($read = readdir($dir))
+       {
+               // If it is no dir (so a file)
+               if (!is_dir($BASE.$read))
+               {
+                       // Accept only templates matching with rallye_????.tpl.xx
+                       if (eregi("^rallye_.*\.tpl", $read))
+                       {
+                               $read = substr($read, 7, strpos($read, ".") - 7);
+                               // Accept only template names between 1 and 255 chars length
+                               if ((strlen($read) < 256) && (!empty($read))) $ral[] = $read;
+                       }
+               }
+       }
+       closedir($dir);
+
+       // Do we have found templates which we can link with the new rallye?
+       if (!empty($ral[0]))
+       {
+               // Generate selection box for all found templates
+               $OUT  = "<SELECT name=\"".$name."\" size=\"1\" class=\"admin_select\">
+  <OPTION value=\"\">".SELECT_NONE."</OPTION>\n";
+               foreach ($ral as $rallye)
+               {
+                    $OUT .= "  <OPTION value=\"".$rallye."\"";
+                       if ($default == $rallye) $OUT .= " selected default";
+                       $OUT .= ">".$rallye."</OPTION>\n";
+               }
+               $OUT .= "</SELECT>\n";
+       }
+        else
+       {
+               // No rallye templates found
+               $OUT = RALLYE_NO_TEMPLATES_FOUND;
+       }
+
+       // Return selection
+       return $OUT;
+}
+//
+function RALLYE_GET_REFCOUNT($uid, $old=0)
+{
+       global $REF_SYSTEM, $REF_DEPTHS, $CONFIG;
+       // Check current refs
+       if (GET_EXT_VERSION("cache") >= "0.1.2")
+       {
+               // Get refs from cache
+               $cnt = 0;
+               foreach ($REF_SYSTEM['userid'] as $id=>$u_id)
+               {
+                       if (($u_id == $uid) && ($REF_SYSTEM['level'][$id] == 0))
+                       {
+                               foreach ($REF_DEPTHS['level'] as $level)
+                               {
+                                       if (($level == $REF_SYSTEM['level'][$id]) && ($level == 0))
+                                       {
+                                               // Level does exist so abort here
+                                               $cnt = $REF_SYSTEM['counter'][$id];
+                                               //* DEBUG: */ echo "*".$uid."/".$cnt."*<BR>";
+                                               break;
+                                       }
+                                        elseif ($level > 0)
+                                       {
+                                               // Not interesting here...
+                                               break;
+                                       }
+                               }
+                               // Abort also here!
+                               if ($cnt > 0) break;
+                       }
+               }
+               //* DEBUG: */ echo "<PRE>";
+               //* DEBUG: */ print_r($REF_SYSTEM);
+               //* DEBUG: */ echo "</PRE>";
+               //* DEBUG: */ die();
+
+               if ($cnt > 0)
+               {
+                       // Count cache hits
+                       $CONFIG['cache_hits']++;
+
+                       // Remove old refs
+                       //* DEBUG: */ echo "+".$cnt."/".$old."+<BR>";
+                       $cnt -= $old;
+               }
+       }
+        else
+       {
+               // Load current refs from database
+               $result_ref = SQL_QUERY_ESC("SELECT DISTINCT SUM(s.counter) AS cnt
+FROM "._MYSQL_PREFIX."_refsystem AS s
+LEFT JOIN "._MYSQL_PREFIX."_refdepths AS d
+ON s.level=d.level
+WHERE s.userid=%d AND s.level=0", array(bigintval($uid)), __FILE__, __LINE__);
+               list($cnt) = SQL_FETCHROW($result_ref);
+               SQL_FREERESULT($result_ref);
+               if (empty($cnt))
+               {
+                       $cnt = "0";
+               }
+                else
+               {
+                       $cnt -= $old;
+               }
+       }
+
+       // Return count
+       //* DEBUG: */ echo "*".$uid."/".$old."/".$cnt."*<BR>";
+       return $cnt;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/register_functions.php b/0.2.1/inc/libs/register_functions.php
new file mode 100644 (file)
index 0000000..5dc7074
--- /dev/null
@@ -0,0 +1,173 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/10/2004 *
+ * ===============                              Last change: 07/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : register_functions.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Special functions for register extension         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Spezielle Funktion fuer register-Erweiterung     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+function REGISTER_FILL_MUST_CONSTANTS()
+{
+       $result = SQL_QUERY("SELECT field_name, field_required FROM "._MYSQL_PREFIX."_must_register ORDER BY id", __FILE__, __LINE__);
+       while(list($name, $required) = SQL_FETCHROW($result))
+       {
+               $value = "";
+               if ($required == "Y") $value = "<FONT class=\\\"guest_failed\\\">&nbsp;(*)</FONT>";
+               $eval = "define('MUST_".strtoupper($name)."', \"".$value."\");";
+               eval($eval);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Also fill other constants
+       define('MUST_SEX'   , "<FONT class=\"guest_failed\">&nbsp;(*)</FONT>");
+       define('MUST_ADDY'  , "<FONT class=\"guest_failed\">&nbsp;(*)</FONT>");
+       define('MUST_BIRTH' , "<FONT class=\"guest_failed\">&nbsp;(*)</FONT>");
+       define('MUST_MARKER', "<FONT class=\"guest_failed\">&nbsp;(*)</FONT>");
+}
+//
+function REGISTER_CHECK_REQUIRED_FIELDS(&$array)
+{
+       $ret = false;
+       foreach ($array as $key=>$value)
+       {
+               $result = SQL_QUERY("SELECT field_required FROM "._MYSQL_PREFIX."_must_register WHERE field_name='".$key."' LIMIT 1", __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // "Must-line" found
+                       list($chk) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Check if extension country is not found (you have to enter the 2-chars long country code) or
+                       // if extensions is present check if country code was selected
+                       //         01              2         21    12             3         32    234     5      54    4               43    34                      4    4      5      5432    2      3                      3210
+                       $country = ((!EXT_IS_ACTIVE("country")) || ((EXT_IS_ACTIVE("country")) && (((empty($value)) && ($key == "cntry")) || (($key == "country_code") && (!empty($value)))) && (!empty($array['country_code']))));
+                       if ((empty($value)) && ($chk == "Y") && (!$country))
+                       {
+                               // Required field not set
+                               $array[$key] = "!";
+                               $ret = true;
+                       }
+               }
+       }
+       return $ret;
+}
+//
+function REGISTER_OUTPUT_REQUIRE_CHECK(&$array)
+{
+       $result = SQL_QUERY("SELECT field_name, field_required FROM "._MYSQL_PREFIX."_must_register ORDER BY id", __FILE__, __LINE__);
+       while(list($name, $required) = SQL_FETCHROW($result))
+       {
+               if (($array[$name] == "!") && ($required == "Y"))
+               {
+                       // Empty entry found
+                       $array[$name] = "";
+                       $eval = "\$OUT = REGISTER_".strtoupper($name)."_REQUIRED;";
+                       eval($eval);
+                       OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".$OUT."</SPAN></STRONG><BR><BR>");
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+//
+function REGISTER_ADD_CATEGORY_TABLE ($MODE, $return=false)
+{
+       global $_POST, $CONFIG;
+       $OUT = "";
+
+       // Guests are mostly not interested in how many members has
+       // choosen an individual category
+       $AND = "WHERE visible='Y' ";
+       // Admins are allowed to see every category...
+       if (IS_ADMIN()) $AND = "";
+       $result = SQL_QUERY("SELECT id, cat, visible FROM "._MYSQL_PREFIX."_cats ".$AND." ORDER BY sort", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List alle visible modules (or all to the admin)
+               $SW = 2;
+               $OUT .= "<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">\n";
+               while (list($id, $cat, $visible) = SQL_FETCHROW($result))
+               {
+                       if (empty($_POST['cat'][$id])) $_POST['cat'][$id] = "";
+                       // Prepare array for the template
+                       $content = array(
+                               'sw'    => $SW,
+                               'cat'   => $cat,
+                               'def_y' => "",
+                               'def_n' => "",
+                               'id'    => $id,
+                       );
+
+                       if (($_POST['cat'][$id] == "Y") || (($CONFIG['register_default'] == "Y") && (empty($_POST['cat'][$id]))))
+                       {
+                               $content['def_y'] = " checked";
+                       }
+                        else
+                       {
+                               $content['def_n'] = " checked";
+                       }
+
+                       // Load template and switch color
+                       $OUT .= LOAD_TEMPLATE("guest_cat_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+               $OUT .= "</TABLE>\n";
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        else
+       {
+               // No categories setted up so far...
+               $OUT .= LOAD_TEMPLATE("admin_settings_saved", true, NO_CATEGORIES_VISIBLE);
+       }
+
+       if ($return)
+       {
+               // Return generated HTML code
+               return $OUT;
+       }
+        else
+       {
+               // Output directly (default)
+               OUTPUT_HTML ($OUT);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/libs/rewrite_functions.php b/0.2.1/inc/libs/rewrite_functions.php
new file mode 100644 (file)
index 0000000..1434360
--- /dev/null
@@ -0,0 +1,124 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/24/2004 *
+ * ===============                              Last change: 11/14/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : rewrite_functions.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Special functions for rewrite extension          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Spezielle Funktion fuer rewrite-Erweiterung      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+function REWRITE_LINKS($HTML)
+{
+       global $_GET, $CONFIG;
+
+       // Skip rewriting for the admin area (which search engine may enter here???)
+       if (ereg($GLOBALS['module'], $CONFIG['rewrite_skipped_mods'])) return $HTML;
+
+       // Strip slashes with double-backslashes for the preg_replace() function
+       $URL = str_replace("/", "\\/", URL);
+
+       // Generate target URL
+       $target = URL."/cms/";
+
+       // Convert modules.php?module=...
+       $test = preg_replace("/".$URL."\\/modules.php\\?module=/i", $target, $HTML);
+
+       if (eregi(SERVER_URL, $test))
+       {
+               // Konvert URLs from my server
+               $URL = str_replace("/", "\\/", SERVER_URL);
+               $test = preg_replace("/".$URL."\\/modules.php\\?module=/i", SERVER_URL."/cms/", $test);
+       }
+
+       // Strip slashes as above for the main URL
+       $target2 = str_replace("/", "\\/", $target);
+
+       // Action variable
+       $act = $target."\$1/act/";
+
+       // Convert &amp;|&action=...
+       $test = preg_replace("/".$target2."(.*)&amp;action=/i", $act, $test);
+
+       // "The same procedure as last variable"... now for &amp;what=
+       $wht = $target."\$1/wht/";
+       $target2 = str_replace("/", "\\/", $target);
+       $test = preg_replace("/".$target2."(.*)&amp;what=/i", $wht, $test);
+
+       if ((EXT_IS_ACTIVE("rallye")) && (eregi("rallye=", $test)))
+       {
+               // Replace data when rallye extension is active
+               // Add more if you need more like these entries
+               $REPLACE = array("rallye", "activate", "auto", "notify", "sub");
+               foreach ($REPLACE as $var)
+               {
+                       // This will replace "&amp;var=" to "/var/"
+                       $test = preg_replace("/&amp;".$var."=/i", "/".$var."/", $test);
+               }
+       }
+
+       // Simple from->to replacements
+       $REPLACE = array(
+               'search'  => array("u_id", "url", "page", "offset", "mid", "bid", "sub", "home"),
+               'replace' => array("u"   , "url", "page", "offset", "m"  , "b"  , "s"  , "h")
+       );
+
+       if ((EXT_IS_ACTIVE("admins")) && (eregi("admin=", $test)))
+       {
+               // Replace &amp;admin= with "/aid/"
+               $REPLACE['search'][]  = "admin";
+               $REPLACE['replace'][] = "aid";
+       }
+
+       // Replace all array elements through
+       foreach ($REPLACE['search'] as $k=>$v)
+       {
+               if (eregi("$v=", $test))
+               {
+                       // Replace &amp;u_id= with /u/
+                       $test = preg_replace("/&amp;".$v."=/i", "/".$REPLACE['replace'][$k]."/", $test);
+               }
+       }
+
+       // Repair missed &amp;what=??? entries
+       while (preg_match("/&amp;what=(.*)\/(.*)\/(.*)/i", $test))
+       {
+               $test = preg_replace("/&amp;what=(.*)\/(.*)\/(.*)/i", "/wht/\$1/\$2/\$3", $test);
+       }
+
+       // Return rewritten code
+       return $test;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/security_functions.php b/0.2.1/inc/libs/security_functions.php
new file mode 100644 (file)
index 0000000..73875e3
--- /dev/null
@@ -0,0 +1,250 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/20/2005 *
+ * ===============                              Last change: 09/20/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : security_functions.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Secure all GET, POST and COOKIE data             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle GET, POST und COOKIE-Daten sichern          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+/**
+ * Function to secure input strings
+ *
+ * @param      $str    The unsecured string
+ * @return     $str    A (hopefully) secured string against HTML and other things
+ */
+function secureString ($str) {
+       $str = trim(strip_tags($str));
+       $str = htmlentities($str, ENT_QUOTES);
+       return $str;
+}
+
+// Run only once this security check/exchange
+if (defined('__SECURITY')) return;
+
+// Fatal messages goes here
+global $FATAL;
+$FATAL = array();
+
+// Runtime quoting is off now...
+set_magic_quotes_runtime(false);
+
+// Unregister all global variables because of vultures and surpress failed attemps
+@import_request_variables('');
+
+// Error reporting level
+@error_reporting(E_ALL | E_STRICT);
+
+// Check if important arrays are found and define them if missing
+if (!isset($_SERVER))
+{
+       global $_SERVER;
+       $_SERVER = $GLOBALS['_SERVER'];
+}
+if (!isset($_GET))
+{
+       global $_GET;
+       $_GET = $GLOBALS['_GET'];
+}
+if (!isset($_POST))
+{
+       global $_POST;
+       $_POST = $GLOBALS['_POST'];
+}
+if (!isset($_COOKIE))
+{
+       global $_COOKIE;
+       $_COOKIE = $GLOBALS['_COOKIE'];
+}
+
+// Include IP-Filter here
+//require("/usr/share/php/ipfilter.php");
+
+// Generate arrays which holds the relevante chars to replace
+global $SEC_CHARS, $URL_CHARS;
+$SEC_CHARS = array(
+       // The chars we are looking for...
+       'from' => array("{", "}", "/", ".", "'", "$", "(", ")", "{--", "--}", "%", ";", "[", "]", ":", "--"),
+       // ... and we will replace to.
+       'to'   => array(
+               "{OPEN_ANCHOR2}",
+               "{CLOSE_ANCHOR2}",
+               "{SLASH}",
+               "{DOT}",
+               "{QUOT}",
+               "{DOLLAR}",
+               "{OPEN_ANCHOR}",
+               "{CLOSE_ANCHOR}",
+               "{OPEN_TEMPLATE}",
+               "{CLOSE_TEMPLATE}",
+               "{PER}",
+               "{SEMI}",
+               "{OPEN_INDEX}",
+               "{CLOSE_INDEX}",
+               "{DBL_DOT}",
+               "{COMMENT}"
+       ),
+);
+
+// Characters allowed in URLs
+//
+// Note: Do not replace 'to' with 'from' and vise-versa! When you do this all booked URLs will be
+//       rejected because of the {SLASH}, {DOT} and all below listed items inside the URL.
+$URL_CHARS = array(
+       // Search for these secured characters
+       'to'   => array("{SLASH}", "{DOT}", "{PER}", "{DBL_DOT}", "{COMMENT}"),
+       // Replace with these characters
+       'from' => array("/", ".", "%", ":", "--")
+);
+
+// Overworked security part:
+if (is_array($_GET)) {
+       foreach ($_GET as $seckey=>$secvalue)
+       {
+               if (is_array($secvalue))
+               {
+                       // Throw arrays away...
+                       unset($_GET[$seckey]);
+               }
+                else
+               {
+                       // Only variables are allowed (non-array) but we secure them all!
+                       foreach ($SEC_CHARS['from'] as $key=>$char)
+                       {
+                               // Pass all through
+                               $_GET[$seckey] = str_replace($char  , $SEC_CHARS['to'][$key], $_GET[$seckey]);
+                       }
+
+                       // Strip all other out
+                       $_GET[$seckey] = strip_tags($_GET[$seckey]);
+               }
+       }
+}
+
+if (basename($_SERVER['PHP_SELF']) != "install.php")
+{
+       // And POST data
+       foreach ($_POST as $seckey=>$secvalue)
+       {
+               if (!is_array($secvalue))
+               {
+                       // Only variables are allowed (non-array) to be secured...
+                       foreach ($SEC_CHARS['from'] as $key=>$char)
+                       {
+                               // Pass all through
+                               $_POST[$seckey] = str_replace($char  , $SEC_CHARS['to'][$key], $_POST[$seckey]);
+                       }
+
+                       // Strip all other out
+                       $_POST[$seckey] = strip_tags($_POST[$seckey]);
+               }
+       }
+
+       // ... and finally cookies
+       foreach ($_COOKIE as $seckey=>$secvalue)
+       {
+               if (is_array($secvalue))
+               {
+                       // Throw arrays away...
+                       unset($_COOKIE[$seckey]);
+               }
+                else
+               {
+                       // Only variables are allowed (non-array) but we secure them all!
+                       foreach ($SEC_CHARS['from'] as $key=>$char)
+                       {
+                               // Pass all through
+                               $_COOKIE[$seckey] = str_replace($char  , $SEC_CHARS['to'][$key], $_COOKIE[$seckey]);
+                       }
+
+                       // Strip all other out
+                       $_COOKIE[$seckey] = strip_tags($_COOKIE[$seckey]);
+               }
+       }
+}
+
+// Activate caching or transparent compressing when it is not already done
+if (!defined('_OB_CACHING'))
+{
+       if (phpversion() >= '4.0.4pl1' && (strstr(getenv('HTTP_USER_AGENT'),'compatible') || (strstr(getenv('HTTP_USER_AGENT'), "Mozilla"))))
+       {
+               if ((extension_loaded('zlib')) && (function_exists('ob_start')))
+               {
+                       // Start caching
+                       define('_OB_CACHING', "on");
+                       ob_start();
+               }
+                else
+               {
+                       // Extension not loaded or required function is missing
+                       define('_OB_CACHING', "404");
+               }
+       }
+        else
+       {
+               // Old PHP version
+               define('_OB_CACHING', "old");
+       }
+}
+
+// At last secure the $_SERVER['PHP_SELF'] element
+$_SERVER['PHP_SELF'] = secureString($_SERVER['PHP_SELF']);
+
+// Split it up into path and filename
+$SELF_DIR  = dirname($_SERVER['PHP_SELF']);
+$SELF_FILE = basename($_SERVER['PHP_SELF']);
+
+// Check for a .php inside the $SELF_DIR...
+while (ereg(".php", $SELF_DIR))
+{
+       // Correct the dirname
+       $SELF_DIR = substr($SELF_DIR, 0, (strpos($SELF_DIR, ".php") + 4));
+       // Rewrite filename...
+       $SELF_FILE = basename($SELF_DIR);
+       // ... and dirname
+       $SELF_DIR = dirname($SELF_DIR);
+}
+
+// Put both together again and let's pray it is secured now...
+$_SERVER['PHP_SELF'] = $SELF_DIR."/".$SELF_FILE;
+
+// Remove uneccessary variables
+unset($SELF_DIR);
+unset($SELF_FILE);
+
+// Security system loaded...
+define('__SECURITY', "1");
+
+//
+?>
diff --git a/0.2.1/inc/libs/task_functions.php b/0.2.1/inc/libs/task_functions.php
new file mode 100644 (file)
index 0000000..9140cd1
--- /dev/null
@@ -0,0 +1,567 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/03/2004 *
+ * ================                             Last change: 11/19/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : task_functions.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Special task functions                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Spezielle task-Funktionen                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+// The advanced overview shows detailed informations to your exchange script:
+//  - Unconfirmed / locked accounts
+//  - Mails waiting to be approved
+//  - Open tasks
+//  - Your own tasks
+//  - ...
+//
+function OUTPUT_ADVANCED_OVERVIEW (&$result_main)
+{
+       global $_COOKIE, $CONFIG;
+
+       // Init variables/arrays
+       $EXTRAS = ""; $OUT = ""; $SQLs = array(); $WHATs = array(); $DESCRs = array(); $TITLEs = array();
+
+       // Chheck for new extensions and updates
+       $JOBS_DONE = OUTPUT_STANDARD_OVERVIEW($result_main);
+
+       if (!$JOBS_DONE) {
+               // New extensions or updates found
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='%s' AND status='NEW' AND task_type='EXTENSION_UPDATE'",
+                array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+
+               $value = SQL_NUMROWS($result);
+               SQL_FREERESULT($result);
+
+               if ($value > 0) {
+                       define ('__TASK_UPDATE_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=updates\">".$value."</A>");
+               } else {
+                       define ('__TASK_UPDATE_VALUE', "0");
+               }
+       } else {
+               define ('__TASK_UPDATE_VALUE', "0");
+       }
+
+       //
+       // First check for all account status seperately
+       //
+       // Confirmed accounts
+       $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__CONFIRMED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;mode=confirmed\">".$value."</A>");
+       } else {
+               define('__CONFIRMED_VALUE', "0");
+       }
+
+       // Unconfirmed accounts
+       $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='UNCONFIRMED'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__UNCONFIRMED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=chk_regs\">".$value."</A>");
+       } else {
+               define('__UNCONFIRMED_VALUE', "0");
+       }
+
+       // And locked accounts
+       $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='LOCKED'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__LOCKED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;mode=locked\">".$value."</A>");
+       } else {
+               define('__LOCKED_VALUE', "0");
+       }
+
+       //
+       // Unassigned tasks
+       //
+       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='0' AND status != 'DELETED'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__TASK_NEW_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=unassigned\">".$value."</A>");
+       } else {
+               define('__TASK_NEW_VALUE', "0");
+       }
+
+       //
+       // Closed tasks
+       //
+       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE status = 'CLOSED'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__TASK_CLOSED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=closed\">".$value."</A>");
+       } else {
+               define('__TASK_CLOSED_VALUE', "0");
+       }
+
+       //
+       // Deleted tasks
+       //
+       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE status = 'DELETED'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__TASK_DELETED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=deleted\">".$value."</A>");
+       } else {
+               define('__TASK_DELETED_VALUE', "0");
+       }
+
+       //
+       // Solved tasks
+       //
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE status = 'SOLVED' AND assigned_admin='%s'",
+        array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__TASK_SOLVED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task&amp;type=solved\">".$value."</A>");
+       } else {
+               define('__TASK_SOLVED_VALUE', "0");
+       }
+
+       //
+       // Your tasks
+       //
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='%s' AND status = 'NEW' AND task_type != 'EXTENSION_UPDATE'",
+        array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__TASK_YOUR_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_task\">".$value."</A>");
+       } else {
+               define('__TASK_YOUR_VALUE', "0");
+       }
+
+       //
+       // Mails waiting to be approved
+       //
+       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE data_type='ADMIN'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__MAIL_ADMIN_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=unlock_emails\">".$value."</A>");
+       } else {
+               define('__MAIL_ADMIN_VALUE', "0");
+       }
+
+       //
+       // Unfinished mail orders
+       //
+       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE data_type='TEMP'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__MAIL_TEMP_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_details\">".$value."</A>");
+       } else {
+               define('__MAIL_TEMP_VALUE', "0");
+       }
+
+       //
+       // Sent mail orders
+       //
+       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE data_type='SEND'", __FILE__, __LINE__);
+       $value = SQL_NUMROWS($result);
+       SQL_FREERESULT($result);
+
+       if ($value > 0) {
+               define('__MAIL_SEND_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_archiv\">".$value."</A>");
+       } else {
+               define('__MAIL_SEND_VALUE', "0");
+       }
+
+       //
+       // Autopurged mails
+       //
+       if (EXT_IS_ACTIVE("autopurge")) {
+               $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE data_type='DELETED'", __FILE__, __LINE__);
+               $value = SQL_NUMROWS($result);
+               SQL_FREERESULT($result);
+
+               if ($value > 0) {
+                       define('__MAIL_DELETED_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_details\">".$value."</A>");
+               } else {
+                       define('__MAIL_DELETED_VALUE', "0");
+               }
+
+               //
+               // Autopurged bonus mails
+               //
+               if (GET_EXT_VERSION("bonus") >= "0.1.8") {
+                       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_bonus WHERE data_type='DELETED'", __FILE__, __LINE__);
+                       $value = SQL_NUMROWS($result);
+                       SQL_FREERESULT($result);
+
+                       if ($value > 0) {
+                               define('__MAIL_BONUS_AP_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_details\">".$value."</A>");
+                       } else {
+                               define('__MAIL_BONUS_AP_VALUE', "0");
+                       }
+               } elseif (EXT_IS_ACTIVE("bonus")) {
+                       define('__MAIL_BONUS_AP_VALUE', ADMIN_EXT_BONUS_OUTDATED_1."0.1.8".ADMIN_EXT_BONUS_OUTDATED_2);
+               } else {
+                       define('__MAIL_BONUS_AP_VALUE', "<FONT class=\"admin_note\">".ADMIN_EXT_BONUS_404."</FONT>");
+               }
+       } else {
+               define('__MAIL_BONUS_AP_VALUE', "<FONT class=\"admin_note\">".ADMIN_EXT_AUTOPURGE_404."</FONT>");
+               define('__MAIL_DELETED_VALUE', "<FONT class=\"admin_note\">".ADMIN_EXT_AUTOPURGE_404."</FONT>");
+       }
+
+       //
+       // Sent bonus mails
+       //
+       if (GET_EXT_VERSION("bonus") >= "0.1.8") {
+               $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_bonus WHERE data_type='SEND'", __FILE__, __LINE__);
+               $value = SQL_NUMROWS($result);
+               SQL_FREERESULT($result);
+
+               if ($value > 0) {
+                       define('__MAIL_BONUS_SEND_VALUE', "<A href=\"".URL."/modules.php?module=admin&amp;what=email_details\">".$value."</A>");
+               } else {
+                       define('__MAIL_BONUS_SEND_VALUE', "0");
+               }
+       } elseif (EXT_IS_ACTIVE("bonus")) {
+               define('__MAIL_BONUS_SEND_VALUE', ADMIN_EXT_BONUS_OUTDATED_1."0.1.8".ADMIN_EXT_BONUS_OUTDATED_2);
+       } else {
+               define('__MAIL_BONUS_SEND_VALUE', ADMIN_EXT_BONUS_404);
+       }
+
+       if (EXT_IS_ACTIVE("autopurge")) {
+               // Start finding them...
+               $since = (time() - $CONFIG['ap_in_since']);
+               $EXCLUDE_LIST = " AND d.userid != c.def_refid";
+
+               // Check for more extensions
+               if (EXT_IS_ACTIVE("beg"))     $EXCLUDE_LIST .= " AND d.userid != c.beg_uid";
+               if (EXT_IS_ACTIVE("bonus"))   $EXCLUDE_LIST .= " AND d.userid != c.bonus_uid";
+               if (EXT_IS_ACTIVE("doubler")) $EXCLUDE_LIST .= " AND d.userid != c.doubler_uid";
+
+               // Check for new holiday system
+               if (GET_EXT_VERSION("holiday") >= "0.1.3") {
+                       $EXCLUDE_LIST .= " AND d.holiday_active = 'N'";
+               }
+
+               // Check for all accounts
+               $SQLs[] = "SELECT DISTINCT d.userid, d.email, d.last_online
+FROM "._MYSQL_PREFIX."_user_data AS d, "._MYSQL_PREFIX."_config AS c
+WHERE d.status='CONFIRMED' AND d.joined < ".$since." AND d.last_online < ".$since." AND d.ap_notified < ".$since."
+".$EXCLUDE_LIST."
+ORDER BY d.userid";
+               $WHATs[]  = "list_autopurge";
+               $DESCRs[] = TASK_ADMIN_INACTIVE_AUTOPURGE;
+               $TITLEs[] = TASK_ADMIN_INACTIVE_AUTOPURGE_TITLE;
+       }
+
+       if (GET_EXT_VERSION("sql_patches") >= "0.3.4") {
+               // Check for accounts without referral
+               $SQLs[]   = "SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE refid='0' ORDER BY userid";
+               $DESCRs[] = TAKS_ADMIN_LIST_ACCOUNT_NOREF;
+               $TITLEs[] = TAKS_ADMIN_LIST_ACCOUNT_NOREF_TITLE;
+               $WHATs[]  = "list_norefs";
+       }
+
+       if (EXT_IS_ACTIVE("payout")) {
+               // List new payout requests
+               $SQLs[]   = "SELECT userid FROM "._MYSQL_PREFIX."_user_payouts WHERE status='NEW' ORDER BY userid";
+               $WHATs[]  = "list_payouts";
+               $DESCRs[] = TASK_ADMIN_LIST_PAYOUTS_WAITING;
+               $TITLEs[] = TASK_ADMIN_LIST_PAYOUTS_WAITING_TITLE;
+               $SQLs[]   = "SELECT userid FROM "._MYSQL_PREFIX."_user_payouts ORDER BY userid";
+               $WHATs[]  = "list_payouts";
+               $DESCRs[] = TASK_ADMIN_LIST_PAYOUTS_ALL;
+               $TITLEs[] = TASK_ADMIN_LIST_PAYOUTS_ALL_TITLE;
+       }
+
+       if (EXT_IS_ACTIVE("wernis")) {
+               // List new wernis requests
+               $SQLs[]   = "SELECT userid FROM "._MYSQL_PREFIX."_user_wernis ORDER BY userid";
+               $WHATs[]  = "list_wernis";
+               $DESCRs[] = TASK_ADMIN_LIST_WERNIS_ALL;
+               $TITLEs[] = TASK_ADMIN_LIST_WERNIS_ALL_TITLE;
+       }
+
+       if (EXT_IS_ACTIVE("holiday")) {
+               // List holiday requests
+               $SQLs[]   = "SELECT userid FROM "._MYSQL_PREFIX."_user_holidays ORDER BY userid";
+               $WHATs[]  = "list_holiday";
+               $DESCRs[] = TASK_ADMIN_LIST_HOLIDAYS;
+               $TITLEs[] = TASK_ADMIN_LIST_HOLIDAYS_TITLE;
+       }
+
+       if (GET_EXT_VERSION("bonus") >= "0.2.3") {
+               // Active rallye
+               if (GET_EXT_VERSION("bonus") >= "0.6.9") {
+                       // Add more bonus points here
+                       $USE = "(0";
+                       if ($CONFIG['bonus_click_yn'] == "Y") $USE .= " + turbo_bonus";
+                       if ($CONFIG['bonus_login_yn'] == "Y") $USE .= " + login_bonus";
+                       if ($CONFIG['bonus_order_yn'] == "Y") $USE .= " + bonus_order";
+                       if ($CONFIG['bonus_stats_yn'] == "Y") $USE .= " + bonus_stats";
+                       if ($CONFIG['bonus_ref_yn']   == "Y") $USE .= " + bonus_ref";
+                       $USE .= ")";
+               } else {
+                       // Old version ???
+                       $USE = "turbo_bonus";
+               }
+
+               // Autopurge installed?
+               $LAST = ""; $ONLINE = "";
+               if ((EXT_IS_ACTIVE("autopurge")) && ($CONFIG['ap_inactive'] == "Y") && ($CONFIG['ap_in_since'] > 0)) {
+                       // Use last online timestamp to keep inactive members away from here
+                       $LAST   = " AND last_online >= ";
+                       $ONLINE = bigintval(time() - $CONFIG['ap_in_since']);
+               }
+
+               $SQLs[]   = "SELECT ".$USE." AS active_bonus FROM "._MYSQL_PREFIX."_user_data
+WHERE status='CONFIRMED' AND ".$USE.">0".$LAST."".$ONLINE."
+ORDER BY active_bonus DESC, userid";
+               $WHATs[]  = "list_bonus";
+               $DESCRs[] = TASK_ADMIN_LIST_BONUS;
+               $TITLEs[] = TASK_ADMIN_LIST_BONUS_TITLE;
+       }
+
+       if (GET_EXT_VERSION("beg") >= "0.1.2") {
+               // Begging rallye
+
+               // Autopurge installed?
+               $LAST = ""; $ONLINE = "";
+               if ((EXT_IS_ACTIVE("autopurge")) && ($CONFIG['ap_inactive'] == "Y") && ($CONFIG['ap_in_since'] > 0)) {
+                       // Use last online timestamp to keep inactive members away from here
+                       $LAST   = " AND last_online >= ";
+                       $ONLINE = bigintval(time() - $CONFIG['ap_in_since']);
+               }
+
+               $SQLs[]   = "SELECT userid FROM "._MYSQL_PREFIX."_user_data
+WHERE status='CONFIRMED' AND beg_points>0".$LAST."".$ONLINE."
+ORDER BY beg_points DESC, userid";
+               $WHATs[]  = "list_beg";
+               $DESCRs[] = TASK_ADMIN_LIST_BEG;
+               $TITLEs[] = TASK_ADMIN_LIST_BEG_TITLE;
+       }
+
+       if (EXT_IS_ACTIVE("doubler")) {
+               // List waiting payouts
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_doubler WHERE completed='N' ORDER BY id";
+               $WHATs[]  = "list_doubler&amp;mode=waiting&amp;select=all";
+               $DESCRs[] = TASK_ADMIN_LIST_DOUBLER_WAITING;
+               $TITLEs[] = TASK_ADMIN_LIST_DOUBLER_WAITING_TITLE;
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_doubler ORDER BY id";
+               $WHATs[]  = "list_doubler";
+               $DESCRs[] = TASK_ADMIN_LIST_DOUBLER_ALL;
+               $TITLEs[] = TASK_ADMIN_LIST_DOUBLER_ALL_TITLE;
+       }
+
+       //
+       // All referral banner
+       //
+       $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_refbanner ORDER BY id";
+       $WHATs[] = "refbanner";
+       $DESCRs[] = TASK_ADMIN_LIST_REFBANNER_ALL;
+       $TITLEs[] = TASK_ADMIN_LIST_REFBANNER_ALL_TITLE;
+
+       //
+       // All activated referral banner
+       //
+       $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_refbanner WHERE visible='Y' ORDER BY id";
+       $WHATs[] = "refbanner";
+       $DESCRs[] = TASK_ADMIN_LIST_REFBANNER_ACTIVE;
+       $TITLEs[] = TASK_ADMIN_LIST_REFBANNER_ACTIVE_TITLE;
+
+       //
+       // All extensions
+       //
+       $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_extensions ORDER BY id";
+       $WHATs[] = "extensions";
+       $DESCRs[] = TASK_ADMIN_LIST_EXTENSIONS_ALL;
+       $TITLEs[] = TASK_ADMIN_LIST_EXTENSIONS_ALL_TITLE;
+
+       //
+       // All activated extensions
+       //
+       $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_extensions WHERE ext_active='Y' ORDER BY id";
+       $WHATs[] = "extensions&amp;active=Y";
+       $DESCRs[] = TASK_ADMIN_LIST_EXTENSIONS_ACTIVE;
+       $TITLEs[] = TASK_ADMIN_LIST_EXTENSIONS_ACTIVE_TITLE;
+
+       if (EXT_IS_ACTIVE("engine")) {
+               // List all export accounts
+               $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_engine_accounts ORDER BY id";
+               $WHATs[] = "list_engine";
+               $DESCRs[] = TASK_ADMIN_LIST_ENGINE;
+
+               // List all pending accounts
+               $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_engine_accounts WHERE status='UNCONFIRMED' ORDER BY id";
+               $WHATs[] = "unlock_engine";
+               $DESCRs[] = TASK_ADMIN_UNLOCK_ENGINE;
+
+               // List all safes
+               $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_engine_safe ORDER BY id";
+               $WHATs[] = "list_engine&amp;mode=safe";
+               $DESCRs[] = TASK_ADMIN_LIST_ENGINE_SAFES;
+
+               // List all export URLs
+               $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_engine_urls ORDER BY id";
+               $WHATs[] = "engine_urls";
+               $DESCRs[] = TASK_ADMIN_LIST_ENGINE_URLS;
+       }
+
+       if (EXT_IS_ACTIVE("sponsor")) {
+               // List all sponsors
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_sponsor_data ORDER BY id";
+               $WHATs[]  = "list_sponsor";
+               $DESCRs[] = TASK_ADMIN_LIST_SPONSOR;
+               $TITLEs[] = TASK_ADMIN_LIST_SPONSOR_TITLE;
+
+               // List confirmed sponsor accounts
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_sponsor_data WHERE status='CONFIRMED' ORDER BY id";
+               $WHATs[]  = "list_sponsor";
+               $DESCRs[] = TASK_ADMIN_LIST_SPONSOR_CONFIRMED;
+               $TITLEs[] = TASK_ADMIN_LIST_SPONSOR_CONFIRMED_TITLE;
+
+               // List unconfirmed sponsor accounts
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_sponsor_data WHERE status='UNCONFIRMED' ORDER BY id";
+               $WHATs[]  = "list_sponsor";
+               $DESCRs[] = TASK_ADMIN_LIST_SPONSOR_UNCONFIRMED;
+               $TITLEs[] = TASK_ADMIN_LIST_SPONSOR_UNCONFIRMED_TITLE;
+
+               // List locked sponsor accounts
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_sponsor_data WHERE status='LOCKED' ORDER BY id";
+               $WHATs[]  = "list_sponsor";
+               $DESCRs[] = TASK_ADMIN_LIST_SPONSOR_LOCKED;
+               $TITLEs[] = TASK_ADMIN_LIST_SPONSOR_LOCKED_TITLE;
+
+               // List waiting sponsor accounts to be approved
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_sponsor_data WHERE status='PENDING' ORDER BY id";
+               $WHATs[]  = "unlock_sponsor";
+               $DESCRs[] = TASK_ADMIN_LIST_SPONSOR_PENDING;
+               $TITLEs[] = TASK_ADMIN_LIST_SPONSOR_PENDING_TITLE;
+
+               // Waiting payments
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_sponsor_orders WHERE pay_status='PENDING' ORDER BY id";
+               $WHATs[]  = "list_sponsor_pays";
+               $DESCRs[] = TASK_ADMIN_LIST_SPONSOR_ORDERS;
+               $TITLEs[] = TASK_ADMIN_LIST_SPONSOR_ORDERS_TITLE;
+       }
+
+       if (EXT_IS_ACTIVE("country")) {
+               // List country codes
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_countries ORDER BY id";
+               $WHATs[]  = "list_country";
+               $DESCRs[] = TASK_ADMIN_LIST_COUNTRY;
+               $TITLEs[] = TASK_ADMIN_LIST_COUNTRY_TITLE;
+       }
+
+       if (EXT_IS_ACTIVE("theme")) {
+               // List all themes
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_themes ORDER BY id";
+               $WHATs[]  = "theme_edit";
+               $DESCRs[] = TASK_ADMIN_LIST_THEME_ALL;
+               $TITLEs[] = TASK_ADMIN_LIST_THEME_ALL_TITLE;
+
+               // List active themes
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_active='Y' ORDER BY id";
+               $WHATs[]  = "theme_edit";
+               $DESCRs[] = TASK_ADMIN_LIST_THEME_ACTIVE;
+               $TITLEs[] = TASK_ADMIN_LIST_THEME_ACTIVE_TITLE;
+       }
+
+       if (EXT_IS_ACTIVE("admins")) {
+               // List all administrator logins
+               $SQLs[]   = "SELECT id FROM "._MYSQL_PREFIX."_admins ORDER BY id";
+               $WHATs[]  = "admins_edit";
+               $DESCRs[] = TASK_ADMIN_LIST_ADMINS_ALL;
+               $TITLEs[] = TASK_ADMIN_LIST_ADMINS_ALL_TITLE;
+       }
+
+       // Generate extra overview rows
+       $EXTRAS .= TASK_CREATE_EXTRA_ROWS($SQLs, $WHATs, $DESCRs, $TITLEs);
+
+       // If empty just keep a forced-space left for CSS issues
+       if (empty($EXTRAS)) $EXTRAS = "&nbsp;";
+
+       // Add compiled string to constant for final template
+       define('__OVERVIEW_EXTRA_TABLE', $EXTRAS);
+
+       // Simply load the template... :-)
+       LOAD_TEMPLATE("admin_overview_task");
+}
+
+//
+function TASK_CREATE_EXTRA_ROWS($SQLs, $WHATs, $DESCRs, $TITLEs){
+       // Init
+       $OUT = ""; $SW = 2; $MAX = sizeof($SQLs) - 1;
+       foreach ($SQLs as $key=>$sql) {
+               // Run SQL command, get line numbers and free memory
+               $result = SQL_QUERY($sql, __FILE__, __LINE__);
+               $value = SQL_NUMROWS($result);
+               SQL_FREERESULT($result);
+
+               $content = array(
+                       'row_descr' => $DESCRs[$key],
+                       'row_sw'    => $SW,
+                       'bottom'    => "",
+               );
+
+               if ($key < $MAX) $content['bottom'] = "bottom2";
+               if (($value > 0) && (!empty($WHATs[$key]))) {
+                       if (empty($TITLEs[$key])) $TITLEs[$key] = TASK_ADMIN_UNKNOWN_LIST_TITLE;
+                       $content['row_link'] = "<A href=\"".URL."/modules.php?module=admin&amp;what=".$WHATs[$key]."\" title=\"".$TITLEs[$key]."\">".$value."</A>";
+               } else {
+                       $content['row_link'] = "0";
+               }
+
+               // Switch color
+               $SW = 3 - $SW;
+
+               // And insert the final string into extras template
+               $OUT .= LOAD_TEMPLATE("admin_overview_task_rows", true, $content);
+       }
+
+       // Return output
+       return LOAD_TEMPLATE("admin_overview_task_extras", true, $OUT);
+}
+//
+?>
diff --git a/0.2.1/inc/libs/transfer_functions.php b/0.2.1/inc/libs/transfer_functions.php
new file mode 100644 (file)
index 0000000..80ebfab
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/13/2004 *
+ * ===============                              Last change: 10/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : transfer_functions.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Special functions for transfer extension         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Spezielle Funktion fuer transfer-Erweiterung     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+function TRANSFER_AUTPPURGE($max, $age)
+{
+       global $link;
+       // First get total in-going lines
+       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_user_transfers_in ORDER BY id", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > $max)
+       {
+               // Update overdue transfers
+               $remove = SQL_NUMROWS($result) - $max;
+
+               // This will make it really old, so the final removal query will find it
+               $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_transfers_in SET time_trans='0' ORDER BY id LIMIT ".$remove, __FILE__, __LINE__);
+       }
+       // Second get total out-going lines
+       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_user_transfers_out ORDER BY id", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > $max)
+       {
+               // Update overdue transfers
+               $remove = SQL_NUMROWS($result) - $max;
+
+               // This will make it really old, so the final removal query will find it
+               $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_transfers_out SET time_trans='0' ORDER BY id LIMIT ".$remove, __FILE__, __LINE__);
+       }
+
+       // Remove old in-going transfers
+       $result = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_transfers_in WHERE time_trans < ".(time() - $age), __FILE__, __LINE__);
+       $REMOVE = SQL_AFFECTEDROWS($link);
+
+       // Remove old out-going transfers
+       $result = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_transfers_out WHERE time_trans < ".(time() - $age), __FILE__, __LINE__);
+       $REMOVE += SQL_AFFECTEDROWS($link);
+
+       // Only send email to admin(s) when we have removed entries
+       if ($REMOVE > 0)
+       {
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(TRANSFER_ADMIN_AUTOPURGE, "admin_transfer_ap", $REMOVE, 0);
+               }
+                else
+               {
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_transfer_ap", $REMOVE, 0);
+                       SEND_ADMIN_EMAILS(TRANSFER_ADMIN_AUTOPURGE, $msg);
+               }
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/libs/user_functions.php b/0.2.1/inc/libs/user_functions.php
new file mode 100644 (file)
index 0000000..4701307
--- /dev/null
@@ -0,0 +1,226 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/16/2004 *
+ * ===============                              Last change: 10/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : user_functions.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Special functions for user extension             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Spezielle Funktionen fuer die user-Erweiterung   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+function alpha($sortby, $colspan, $return=false)
+{
+       global $CONFIG;
+       if (empty($_GET['offset'])) $_GET['offset'] = "0";
+       $ADD = "&amp;page=".$_GET['page']."&amp;offset=".$_GET['offset'];
+       if (!empty($_GET['mode'])) $ADD .= "&amp;mode=".SQL_ESCAPE($_GET['mode']);
+
+       /* Creates the list of letters and makes them a link. */
+       $alphabet = array(_ALL2, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", _OTHERS);
+       $num = count($alphabet) - 1;
+       $OUT = "";
+       while (list($counter, $ltr) = each($alphabet))
+       {
+               if ($_GET['letter'] == $ltr)
+               {
+                       // Current letter is letter from URL
+                       $OUT .= "<STRONG>".$ltr."</STRONG>";
+               }
+                else
+               {
+                       // Output link to letter
+                       $OUT .= "<A href=\"".URL."/modules.php?module=admin&amp;what=".$GLOBALS['what'];
+                       if (!empty($_GET['mode'])) $OUT .= "&amp;mode=".SQL_ESCAPE($_GET['mode']);
+                       $OUT .= "&amp;letter=".$ltr."&amp;sortby=".$sortby.$ADD."\">".$ltr."</A>";
+               }
+               if ((($counter / $CONFIG['user_alpha']) == round($counter / $CONFIG['user_alpha'])) && ($counter > 0))
+               {
+                       $OUT .= "&nbsp;]<BR>[&nbsp;";
+               }
+                elseif ( $counter != $num )
+               {
+                       $OUT .= "&nbsp;|&nbsp;";
+               }
+       }
+       define('__ALPHA_LIST', $OUT);
+
+       // Load template
+       $OUT = LOAD_TEMPLATE("admin_list_user_alpha", true);
+       if ($return)
+       {
+               // Return generated code
+               return $OUT;
+       }
+        else
+       {
+               // Output generated code
+               OUTPUT_HTML ($OUT);
+       }
+}
+//
+function SortLinks($letter, $sortby, $colspan, $return=false)
+{
+       $OUT = "";
+       if (empty($_GET['offset'])) $_GET['offset'] = "0";
+       $ADD = "&amp;page=".$_GET['page']."&amp;offset=".$_GET['offset'];
+       if (!empty($_GET['mode'])) $ADD .= "&amp;mode=".SQL_ESCAPE($_GET['mode']);
+
+       // Makes order by links..
+       if ($letter == "front") $letter = _ALL2;
+
+       // Prepare array with all possible sorters
+       $list = array(
+               'userid'                => _UID,
+               'family'                => FAMILY_NAME,
+               'email'         => ADDY,
+               'REMOTE_ADDR'   => REMOTE_IP
+       );
+
+       // Add nickname if extension is installed
+       if (EXT_IS_ACTIVE("nickname")) {
+               $list['nickname'] = NICKNAME;
+       }
+
+       foreach ($list as $sort=>$title) {
+               if ($sortby == $sort) {
+                       $OUT .= "<STRONG>".$title."</STRONG>&nbsp;|&nbsp;";
+               } else {
+                       $OUT .= "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;letter=".$letter."&amp;sortby=".$sort.$ADD."\">".$title."</a>&nbsp;|&nbsp;";
+               }
+       }
+       define('__SORT_LIST', substr($OUT, 0, -13));
+
+       // Load template
+       $OUT = LOAD_TEMPLATE("admin_list_user_sort", true);
+       if ($return)
+       {
+               // Return code
+               return $OUT;
+       }
+        else
+       {
+               // Output code
+               OUTPUT_HTML ($OUT);
+       }
+}
+//
+function ADD_PAGENAV($PAGES, $offset, $show_form, $colspan,$return=false)
+{
+       if (!$show_form)
+       {
+               // Empty row
+               define('__FORM_HEADER', "<TR><TD colspan=\"".$colspan."\" class=\"seperator\">&nbsp;</TD></TR>");
+       }
+        else
+       {
+               // Load form for changing number of lines
+               define('__FORM_HEADER', LOAD_TEMPLATE("admin_list_user_sort_form", true));
+       }
+       if (!$show_form)
+       {
+               // Add line with bottom border
+               define('__FORM_FOOTER', "<TR><TD colspan=\"".__COLSPAN2."\" class=\"seperator bottom2\">&nbsp;</TD></TR>");
+       }
+        else
+       {
+               // Add line without bottom border
+               define('__FORM_FOOTER', "<TR><TD colspan=\"".__COLSPAN2."\" class=\"seperator bottom2\">&nbsp;</TD></TR>");
+       }
+
+       $OUT = "";
+       for ($page = 1; $page <= $PAGES; $page++)
+       {
+               if (($page == $_GET['page']) || ((empty($_GET['page'])) && ($page == "1")))
+               {
+                       $OUT .= "<STRONG>-";
+               }
+                else
+               {
+                       if (empty($_GET['letter'])) $_GET['letter'] = _ALL2;
+                       if (empty($_GET['sortby'])) $_GET['sortby'] = "userid";
+                       $OUT .= "<A href=\"".URL."/modules.php?module=admin&amp;what=".$GLOBALS['what'];
+                       if (!empty($_GET['mode'])) $OUT .= "&amp;mode=".SQL_ESCAPE($_GET['mode']);
+                       $OUT .= "&amp;letter=".$_GET['letter']."&amp;sortby=".$_GET['sortby']."&amp;page=".$page."&amp;offset=".$offset."\">";
+               }
+               $OUT .= $page;
+               if (($page == $_GET['page']) || ((empty($_GET['page'])) && ($page == "1")))
+               {
+                       $OUT .= "-</STRONG>";
+               }
+                else
+               {
+                       $OUT .= "</A>";
+               }
+               if ($page < $PAGES) $OUT .= "&nbsp;|&nbsp;";
+       }
+       define('__PAGENAV_LIST', $OUT);
+
+       // Load template
+       $OUT = LOAD_TEMPLATE("admin_list_user_pagenav", true);
+       if ($return)
+       {
+               // Return code
+               return $OUT;
+       }
+        else
+       {
+               // Output code
+               OUTPUT_HTML ($OUT);
+       }
+}
+// Create email link to user's account
+function USER_CREATE_EMAIL_LINK($email, $mod="admin")
+{
+       $locked = " AND status='CONFIRMED'";
+       if (IS_ADMIN()) $locked = "";
+       $result = SQL_QUERY_ESC("SELECT userid
+FROM "._MYSQL_PREFIX."_user_data
+WHERE email='%s'".$locked." LIMIT 1",
+        array($email), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Load userid
+               list($uid) = SQL_FETCHROW($result);
+
+               // Rewrite email address to contact link
+               $email = URL."/modules.php?module=".$mod."&amp;what=user_contct&amp;u_id=".bigintval($uid);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Return rewritten (?) email address
+       return $email;
+}
+//
+?>
diff --git a/0.2.1/inc/libs/wernis_functions.php b/0.2.1/inc/libs/wernis_functions.php
new file mode 100644 (file)
index 0000000..c96ac9e
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 08/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-points.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : All your collected points...                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Ihrer gesammelten Punkte                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+?>
diff --git a/0.2.1/inc/load_cache.php b/0.2.1/inc/load_cache.php
new file mode 100644 (file)
index 0000000..6458778
--- /dev/null
@@ -0,0 +1,407 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/28/2004 *
+ * ===============                              Last change: 11/28/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : load_cache.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Load more cache files                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mehr Cache-Dateien nachladen                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Let's start with the admins table...
+if (($CACHE->cache_file("admins", true) == true))
+{
+       // Load cache
+       global $ADMINS;
+       $ADMINS = $CACHE->cache_load();
+
+       // Check if valid
+       if (is_array($ADMINS['login']) && is_array($ADMINS['def_acl']) && is_array($ADMINS['aid']))
+       {
+               // Check count
+               if (count($ADMINS['login']) == count($ADMINS['aid']) && count($ADMINS['login']) == count($ADMINS['def_acl']) && count($ADMINS['aid']) == count($ADMINS['def_acl']))
+               {
+                       //* DEBUG: */ echo "<PRE>";
+                       //* DEBUG: */ print_r($ADMINS);
+
+                       // The cache file seems to be fine
+                       foreach ($ADMINS['login'] as $k=>$login)
+                       {
+                               // Rewrite default_acl
+                               $ADMINS['aid'][$login]      = $ADMINS['aid'][$k];
+                               $ADMINS['password'][$login] = $ADMINS['password'][$k];
+                               $ADMINS['email'][$login]    = $ADMINS['email'][$k];
+
+                               // Some extra data depening on version
+                               if (GET_EXT_VERSION("admins") >= "0.3")
+                               {
+                                       $ADMINS['def_acl'][$login]  = $ADMINS['def_acl'][$k];
+                                       if (GET_EXT_VERSION("admins") >= "0.6.7")
+                                       {
+                                               $ADMINS['la_mode'][$login]  = $ADMINS['la_mode'][$k];
+                                       }
+                               }
+
+                               //* DEBUG: */ print_r($ADMINS);
+
+                               // Clear array
+                               unset($ADMINS['aid'][$k]);
+                               unset($ADMINS['def_acl'][$k]);
+                               unset($ADMINS['la_mode'][$k]);
+                               unset($ADMINS['password'][$k]);
+                               unset($ADMINS['email'][$k]);
+                       }
+
+                       //* DEBUG: */ print_r($ADMINS);
+
+                       // Rewrite Login
+                       foreach ($ADMINS['login'] as $k=>$login)
+                       {
+                               $ADMINS['login'][$ADMINS['aid'][$login]] = $login;
+                               if (!in_array($k, $ADMINS['aid']))
+                               {
+                                       unset($ADMINS['login'][$k]);
+                               }
+                       }
+
+                       //* DEBUG: */ echo "****\n";
+                       //* DEBUG: */ print_r($ADMINS);
+                       //* DEBUG: */ echo "</PRE>";
+                       //* DEBUG: */ die();
+               }
+                else
+               {
+                       // Nope, cache file is corrupted!
+                       $CACHE->cache_destroy();
+               }
+       }
+        else
+       {
+               // Nope, cache file is corrupted!
+               $CACHE->cache_destroy();
+               unset($ADMINS);
+       }
+}
+ elseif (($CONFIG['cache_admins'] == "Y") && ($CSS != "1") && ($CSS != "-1"))
+{
+       // Create cache file
+       $CACHE->cache_init("ADMINS");
+
+       // Load every data from DB to cache file
+       $ADD = ", id, id";
+       if (GET_EXT_VERSION("admins") >= "0.3")   $ADD  = ", default_acl AS def_acl";
+       if (GET_EXT_VERSION("admins") >= "0.6.7") $ADD .= ", la_mode";
+
+       $result_admins = SQL_QUERY("SELECT id AS aid, login, password, email".$ADD."
+FROM "._MYSQL_PREFIX."_admins
+ORDER BY login", __FILE__, __LINE__);
+       while($dummy = SQL_FETCHARRAY($result_admins))
+       {
+               // Save row
+               $CACHE->add_row($dummy);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_admins);
+}
+
+// Close file
+$CACHE->cache_close();
+
+// Next cached table is the module registry (mod_reg)...
+if ($CACHE->cache_file("mod_reg", true) == true)
+{
+       // Load cache
+       global $MODULES;
+       $MODULES = $CACHE->cache_load();
+
+       // Valid cache file
+       $CNT = 0;
+       foreach ($MODULES as $k=>$array)
+       {
+               $CNT += count($array);
+       }
+
+       // When there is a period (.) in the result this test will fail and so the cache file is
+       // damaged/corrupted
+       $TEST = "failed";
+       if (count($MODULES) > 0 ) $TEST = ($CNT / (count($MODULES)));
+       if ($TEST != bigintval($TEST))
+       {
+               // Cache file is corrupted!
+               $CACHE->cache_destroy();
+               unset($MODULES);
+       }
+        else
+       {
+               // Rewrite module cache
+               $MOD = $MODULES;
+               foreach ($MODULES['module'] as $key=>$mod)
+               {
+                       $MODULES['id'][$mod] = $MODULES['id'][$key];
+                       unset($MODULES['id'][$key]);
+                       $MODULES['title'][$mod] = $MODULES['title'][$key];
+                       unset($MODULES['title'][$key]);
+                       $MODULES['locked'][$mod] = $MODULES['locked'][$key];
+                       unset($MODULES['locked'][$key]);
+                       $MODULES['hidden'][$mod] = $MODULES['hidden'][$key];
+                       unset($MODULES['hidden'][$key]);
+                       $MODULES['admin_only'][$mod] = $MODULES['admin_only'][$key];
+                       unset($MODULES['admin_only'][$key]);
+                       $MODULES['mem_only'][$mod] = $MODULES['mem_only'][$key];
+                       unset($MODULES['mem_only'][$key]);
+                       $MODULES['has_menu'][$mod] = $MODULES['has_menu'][$key];
+                       unset($MODULES['has_menu'][$key]);
+               }
+       }
+}
+ elseif (($CONFIG['cache_modreg'] == "Y") && ($CSS != "1") && ($CSS != "-1"))
+{
+       // Create cache file here
+       $CACHE->cache_init("MODULES");
+
+       // Load all modules and their data
+       if (GET_EXT_VERSION("sql_patches") >= "0.3.6")
+       {
+               // Load has_menu
+               $result = SQL_QUERY("SELECT id, module, title, locked, hidden, admin_only, title, mem_only, has_menu
+FROM "._MYSQL_PREFIX."_mod_reg ORDER BY id", __FILE__, __LINE__);
+       }
+        else
+       {
+               // Don't load has_menu
+               $result = SQL_QUERY("SELECT id, module, title, locked, hidden, admin_only, title, mem_only
+FROM "._MYSQL_PREFIX."_mod_reg ORDER BY id", __FILE__, __LINE__);
+       }
+       while ($DATA = SQL_FETCHARRAY($result))
+       {
+               // Add row to cache file
+               $CACHE->add_row($DATA);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+
+// Close file
+$CACHE->cache_close();
+
+// Next cached table is the configuration (config)...
+if ($CACHE->cache_file("config", true) == true)
+{
+       // Load config from cache
+       global $CFG_CACHE;
+       $CFG_CACHE = $CACHE->cache_load();
+
+       // Valid cache file
+       $CNT = 0;
+       foreach ($CFG_CACHE as $k=>$array)
+       {
+               $CNT += count($array);
+       }
+
+       // When there is a period (.) in the result this test will fail and so the cache file is
+       // damaged/corrupted
+       $TEST = "failed";
+       if (count($CFG_CACHE) > 0 ) $TEST = ($CNT / (count($CFG_CACHE)));
+       if ($TEST != bigintval($TEST))
+       {
+               // Cache file is corrupted!
+               $CACHE->cache_destroy();
+               unset($CFG_CACHE);
+       }
+}
+ elseif (($CONFIG['cache_config'] == "Y") && ($CSS != "1") && ($CSS != "-1"))
+{
+       // Create cache file here
+       $CACHE->cache_init("CONFIG");
+
+       // Load all modules and their data
+       $result = SQL_QUERY("SELECT * FROM "._MYSQL_PREFIX."_config ORDER BY config", __FILE__, __LINE__);
+       while ($DATA = SQL_FETCHARRAY($result))
+       {
+               // Add row to cache file
+               $CACHE->add_row($DATA);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+
+// Close file
+$CACHE->cache_close();
+
+// Next cached table is the referral system (refsystem)...
+if ($CACHE->cache_file("refsystem", true) == true)
+{
+       // Load referral system from cache
+       global $REF_SYSTEM;
+       $REF_SYSTEM = $CACHE->cache_load();
+
+       // Valid cache file
+       $CNT = 0;
+       foreach ($REF_SYSTEM as $k=>$array)
+       {
+               $CNT += count($array);
+       }
+
+       // When there is a period (.) in the result this test will fail and so the cache file is
+       // damaged/corrupted
+       $TEST = "failed";
+       if (count($REF_SYSTEM) > 0 ) $TEST = ($CNT / (count($REF_SYSTEM)));
+       if ($TEST != bigintval($TEST))
+       {
+               // Cache file is corrupted!
+               $CACHE->cache_destroy();
+               unset($REF_SYSTEM);
+       }
+}
+ elseif (($CONFIG['cache_refsys'] == "Y") && ($CSS != "1") && ($CSS != "-1"))
+{
+       // Create cache file here
+       $CACHE->cache_init("REFSYSTEM");
+
+       // Load all modules and their data
+       $result = SQL_QUERY("SELECT id, userid, level, counter FROM "._MYSQL_PREFIX."_refsystem ORDER BY userid, level", __FILE__, __LINE__);
+       while ($DATA = SQL_FETCHARRAY($result))
+       {
+               // Add row to cache file
+               $CACHE->add_row($DATA);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+
+// Close file
+$CACHE->cache_close();
+
+// Next cached table is the referral system (refdepths)...
+if ($CACHE->cache_file("refdepths", true) == true)
+{
+       // Load referral system from cache
+       global $REF_DEPTHS;
+       $REF_DEPTHS = $CACHE->cache_load();
+
+       // Valid cache file
+       $CNT = 0;
+       foreach ($REF_DEPTHS as $k=>$array)
+       {
+               $CNT += count($array);
+       }
+
+       // When there is a period (.) in the result this test will fail and so the cache file is
+       // damaged/corrupted
+       $TEST = "failed";
+       if (count($REF_DEPTHS) > 0 ) $TEST = ($CNT / (count($REF_DEPTHS)));
+       if ($TEST != bigintval($TEST))
+       {
+               // Cache file is corrupted!
+               $CACHE->cache_destroy();
+               unset($REF_DEPTHS);
+       }
+}
+ elseif (($CONFIG['cache_refdepth'] == "Y") && ($CSS != "1") && ($CSS != "-1"))
+{
+       // Create cache file here
+       $CACHE->cache_init("REFDEPTHS");
+
+       // Load all modules and their data
+       $result = SQL_QUERY("SELECT id, level, percents FROM "._MYSQL_PREFIX."_refdepths ORDER BY level", __FILE__, __LINE__);
+       while ($DATA = SQL_FETCHARRAY($result))
+       {
+               // Add row to cache file
+               $CACHE->add_row($DATA);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+
+// Close file
+$CACHE->cache_close();
+
+// Next cached table is the referral system (admins_acls)...
+if (GET_EXT_VERSION("admins") >= "0.3")
+{
+       // Check for cache file
+       if ($CACHE->cache_file("admins_acls", true) == true)
+       {
+               // Load referral system from cache
+               global $ADMINS_ACLS;
+               $ADMINS_ACLS = $CACHE->cache_load();
+
+               // Valid cache file
+               $CNT = 0;
+               foreach ($ADMINS_ACLS as $k=>$array)
+               {
+                       $CNT += count($array);
+               }
+
+               // When there is a period (.) in the result this test will fail and so the cache file is
+               // damaged/corrupted
+               if (count($ADMINS_ACLS) > 0)
+               {
+                       $TEST = "failed";
+                       if (count($ADMINS_ACLS) > 0 ) $TEST = ($CNT / (count($ADMINS_ACLS)));
+                       if ($TEST != bigintval($TEST))
+                       {
+                               // Cache file is corrupted!
+                               $CACHE->cache_destroy();
+                               unset($ADMINS_ACLS);
+                       }
+               }
+       }
+        elseif (($CONFIG['cache_acls'] == "Y") && ($CSS != "1") && ($CSS != "-1"))
+       {
+               // Create cache file here
+               $CACHE->cache_init("ADMINS_ACLS");
+
+               // Load all modules and their data
+               $result = SQL_QUERY("SELECT id, admin_id, action_menu, what_menu, access_mode FROM "._MYSQL_PREFIX."_admins_acls ORDER BY admin_id, action_menu, what_menu", __FILE__, __LINE__);
+               while ($DATA = SQL_FETCHARRAY($result))
+               {
+                       // Add row to cache file
+                       $CACHE->add_row($DATA);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+
+       // Close file
+       $CACHE->cache_close();
+}
+
+//
+?>
diff --git a/0.2.1/inc/load_extensions.php b/0.2.1/inc/load_extensions.php
new file mode 100644 (file)
index 0000000..91a3fb6
--- /dev/null
@@ -0,0 +1,345 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/26/2004 *
+ * ===============                              Last change: 07/01/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : load_extensions.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Load all extensions                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Erweiterungen laden                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+//
+global $EXT_CSS_FILES;
+$EXT_CSS_FILES = array();
+$ADD = "";
+
+// Skip loading extensions
+if ((!mxchange_installed) || (mxchange_installing)) return;
+
+// Load default sql_patches extension if present
+if (file_exists(PATH."inc/extensions/ext-sql_patches.php") && is_readable(PATH."inc/extensions/ext-sql_patches.php"))
+{
+       // Load it...
+       $EXT_LOAD_MODE = "";
+       require_once(PATH."inc/extensions/ext-sql_patches.php");
+       $KEEP_ACTIVE = array('sql_patches' => "Y"); // KEEP THIS ALWAYS ACTIVE!
+}
+ else
+{
+       // Initialize array for "always keep active extensions"
+       $KEEP_ACTIVE = array();
+}
+
+//
+// Load extensions
+//
+if (EXT_IS_ACTIVE("cache"))
+{
+       // Load cache extension alone
+       include_once(PATH."inc/libs/cache_functions.php");
+       $CACHE_FILE = "";
+       include_once(PATH."inc/extensions/ext-cache.php");
+       switch($CACHE->cache_file("extensions", true))
+       {
+               case true : $CACHE_FILE = "load"; break;
+               case false: $CACHE_FILE = "init"; break;
+       }
+
+       // Do not recreate cache file when it's switched off!
+       if (($CACHE_FILE == "init") && ($CONFIG['cache_exts'] == "N")) $CACHE_FILE = "skip";
+
+       // Load language
+       if ($CACHE_FILE == "load") include(PATH."inc/language/cache_".GET_LANGUAGE().".php");
+}
+ else
+{
+       $CACHE_FILE = "no";
+}
+
+if ($CACHE_FILE == "load")
+{
+       // Load more cache files (like admins)
+       require_once(PATH."inc/load_cache.php");
+
+       // Re-initialize handler
+       $CACHE->cache_file("extensions", true);
+
+       // Load extension data from cache file
+       $EXT_DUMMY = $CACHE->cache_load();
+       foreach ($EXT_DUMMY['ext_name'] as $k=>$name)
+       {
+               // Load functions file
+               if ($EXT_DUMMY['ext_funcs'][$k] == "Y") require_once(PATH."inc/libs/".$name."_functions.php");
+
+               // Load Language file
+               if ($EXT_DUMMY['ext_lang'][$k] == "Y")
+               {
+                       $INC = sprintf(PATH."inc/language/%s_%s.php", $name, GET_LANGUAGE());
+                       if (file_exists($INC)) require_once($INC);
+               }
+
+               // Load CSS file
+               if ($EXT_DUMMY['ext_css'][$k] == "Y") $EXT_CSS_FILES[] = "".$name.".css";
+
+               // Load extension file itself
+               if (($EXT_DUMMY['ext_active'][$k] == "Y") || ($EXT_DUMMY['ext_keep'][$k] == "Y") || (IS_ADMIN()))
+               {
+                       require_once(PATH."inc/extensions/ext-".$name.".php");
+               }
+
+               // Transfer version number and active status
+               $EXT_DUMMY['ext_version'][$name] = $EXT_DUMMY['ext_version'][$k];
+               unset($EXT_DUMMY['ext_version'][$k]);
+               $EXT_DUMMY['ext_active'][$name] = $EXT_DUMMY['ext_active'][$k];
+               unset($EXT_DUMMY['ext_active'][$k]);
+               $EXT_DUMMY['ext_menu'][$name] = $EXT_DUMMY['ext_menu'][$k];
+               unset($EXT_DUMMY['ext_menu'][$k]);
+               $KEEP_ACTIVE['$name'] = $EXT_DUMMY['ext_keep'][$k];
+               unset($EXT_DUMMY['ext_keep'][$k]);
+               $k2 = $EXT_DUMMY['ext_id'][$k];
+               $EXT_DUMMY['ext_id'][$k2] = $name;
+               if ($k2 != $k) unset($EXT_DUMMY['ext_id'][$k]);
+
+               // Remove unneccessary data from memory
+               unset($EXT_DUMMY['ext_lang'][$k]);
+               unset($EXT_DUMMY['ext_css'][$k]);
+               unset($EXT_DUMMY['ext_funcs'][$k]);
+       }
+
+       // Close cache file
+       $CACHE->cache_close();
+
+       // Loading cache is done so let's free some memory!
+       unset($EXT_DUMMY['ext_lang']);
+       unset($EXT_DUMMY['ext_keep']);
+       unset($EXT_DUMMY['ext_css']);
+       unset($EXT_DUMMY['ext_funcs']);
+       $EXTENSIONS = $EXT_DUMMY;
+       unset($EXT_DUMMY);
+
+       // No database load needed
+       $res_ext_crt = false;
+}
+ else
+{
+       // If current user is not admin load only activated extensions
+       // The admin shall use every available extension for testing purposes
+       if (!IS_ADMIN()) $ADD = " WHERE ext_active='Y'";
+
+       if (GET_EXT_VERSION("sql_patches") >= "0.0.6")
+       {
+               // Query with CSS file from DB
+               $res_ext_crt = SQL_QUERY("SELECT id, ext_name, ext_lang_file, ext_has_css, ext_active, ext_version
+FROM "._MYSQL_PREFIX."_extensions".$ADD."
+ORDER BY ext_name", __FILE__, __LINE__);
+       }
+        else
+       {
+               // Old obsulete query string
+               $res_ext_crt = SQL_QUERY("SELECT id, ext_name, ext_lang_file, ext_name, ext_active, ext_version
+FROM "._MYSQL_PREFIX."_extensions".$ADD."
+ORDER BY ext_name", __FILE__, __LINE__);
+       }
+}
+
+// Array for removed but not uninstalled extensions
+$DEL = array();
+
+// At least one found?
+if ((SQL_NUMROWS($res_ext_crt) > 0) && (($CACHE_FILE == "init") || ($CACHE_FILE == "no")) && ($CSS != "1") && ($CSS != "-1"))
+{
+       // Load theme management
+       require_once(PATH."inc/theme-manager.php");
+
+       // If we need to init the cache init it now
+       if ($CACHE_FILE == "init") $CACHE->cache_init("EXTENSIONS");
+
+       // Extensions are registered so we load them
+       while (list($EXT_ID, $name, $lang, $css, $active, $version) = SQL_FETCHROW($res_ext_crt))
+       {
+               // Get menu entry
+               $result_menu = SQL_QUERY_ESC("SELECT has_menu FROM "._MYSQL_PREFIX."_mod_reg WHERE module='%s' LIMIT 1",
+                array($name), __FILE__, __LINE__);
+               list($menu) = SQL_FETCHROW($result_menu);
+               //* DEBUG: */ echo "*".$name."/".$menu."*<br>";
+
+               // An empty menu entry will be interpreted as N (no menu) to avoid problems
+               if (empty($menu)) $menu = "N";
+
+               // Load extensions
+               $file1 = sprintf(PATH."inc/extensions/ext-%s.php", $name);
+               $file2 = $file1; $EXT_CSS = "N"; $EXT_ALWAYS_ACTIVE = "N";
+
+               // Special functions file
+               $file3 = sprintf(PATH."inc/libs/%s_functions.php", $name);
+
+               // Does the extension file exists?
+               if (file_exists($file1) && is_readable($file1))
+               {
+                       // If there's no language file specified we don't need to load one... ;-)
+                       if (!empty($lang)) {
+                               // Create language file
+                               $file2 = sprintf(PATH."inc/language/%s_%s.php", $lang, GET_LANGUAGE());
+                       }
+
+                       if (file_exists($file3) && is_readable($file3))
+                       {
+                               // Special functions file
+                               $funcs = "Y";
+                               require_once($file3);
+                       }
+                        else
+                       {
+                               // Don't load functions file
+                               $funcs = "N";
+                       }
+
+                       // Do we need a language file?
+                       if (($file1 != $file2) && (file_exists($file2)) && (is_readable($file2)))
+                       {
+                               // Load language file
+                               $lang = "Y";
+                               include($file2);
+                       }
+                        else
+                       {
+                               // Don't load language file
+                               $lang = "N";
+                       }
+
+                       // Load extension
+                       if ($name != "sql_patches")
+                       {
+                               // Load extension's file
+                               include_once($file1);
+                       }
+                        else
+                       {
+                               // KEEP sql_patches ALWAYS ACTIVE!
+                               $EXT_ALWAYS_ACTIVE = "Y";
+                       }
+
+                       if ($css == "Y")
+                       {
+                               $CSS_FILE = PATH."theme/".GET_CURR_THEME()."/css/".$name.".css";
+                               if (file_exists($CSS_FILE))
+                               {
+                                       // CSS file for extension was found (use only relative path for now!)
+                                       $EXT_CSS_FILES[] = $name.".css";
+                               }
+                                else
+                               {
+                                       // Don't load CSS file
+                                       $css = "N";
+                               }
+                       }
+
+                       // Add cache row
+                       if ($CACHE_FILE == "init")
+                       {
+                               $CACHE->add_row(array(
+                                       'ext_id'      => $EXT_ID,
+                                       'ext_name'    => $name,
+                                       'ext_lang'    => $lang,
+                                       'ext_css'     => $css,
+                                       'ext_menu'    => $menu,
+                                       'ext_funcs'   => $funcs,
+                                       'ext_active'  => $active,
+                                       'ext_version' => $version,
+                                       'ext_keep'    => $EXT_ALWAYS_ACTIVE,
+                               ));
+                       }
+                        elseif ($CACHE_FILE == "no")
+                       {
+                               // Remember this value for later usage
+                               $KEEP_ACTIVE[$name] = $EXT_ALWAYS_ACTIVE;
+                       }
+               }
+                elseif (!file_exists($file1))
+               {
+                       // Deleted extension file so we mark it for removal from DB
+                       $DEL[] = $name;
+               }
+       }
+
+       if ($CACHE_FILE == "init")
+       {
+               // Close cache file
+               $CACHE->cache_close();
+
+               // Load more cache files (like admins)
+               require_once(PATH."inc/load_cache.php");
+       }
+}
+
+// Free memory
+SQL_FREERESULT($res_ext_crt);
+
+// Compile configuration system
+/**
+ * Commented out...
+ *
+ *foreach ($CONFIG as $k=>$v)
+ *{
+ *     $CONFIG[$k] = COMPILE_CODE($v);
+ *}
+ */
+
+// Load include files
+if (!empty($INC_POOL[0]))
+{
+       foreach ($INC_POOL as $inc)
+       {
+               require_once($inc);
+       }
+}
+
+// Uninstall extensions that are no longer in our system
+if (!empty($DEL[0]))
+{
+       // Remove extensions from two tables: extension registry and tasks table
+       foreach ($DEL as $name)
+       {
+               // First remove entry from extensions table
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",
+                array($name), __FILE__, __LINE__);
+
+               // Remove (maybe?) found tasks (main task and possible updates
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE subject LIKE '[%s:] %' AND (task_type='EXTENSION' OR task_type='EXTENSION_UPDATE')",
+                array($name), __FILE__, __LINE__);
+       }
+
+       // I think it's not neccessary to run the optimization function here
+       // because we didn't delete so much data from database. Can you aggree?
+}
+//
+?>
diff --git a/0.2.1/inc/mails/.htaccess b/0.2.1/inc/mails/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/mails/_mails.php b/0.2.1/inc/mails/_mails.php
new file mode 100644 (file)
index 0000000..f8cf830
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/29/2005 *
+ * ===============                              Last change: 11/29/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : _mails.php                                       *
+ * -------------------------------------------------------------------- *
+ * Short description : Sends out reminder mails                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Versendet Erinnerungsmails                       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "");
+       return;
+}
+
+// Do not execute when script is in CSS mode
+if ($CSS == 1) return;
+
+//
+?>
diff --git a/0.2.1/inc/mails/beg_mails.php b/0.2.1/inc/mails/beg_mails.php
new file mode 100644 (file)
index 0000000..2391b28
--- /dev/null
@@ -0,0 +1,170 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/22/2005 *
+ * ===============                              Last change: 11/22/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : beg_mails.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Sends out reminder mails                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Versendet Erinnerungsmails                       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("beg")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "beg");
+       return;
+}
+
+// Do not execute when script is in CSS mode
+if ($CSS == 1) return;
+
+// Create timemark from saved month
+$mark = mktime(0, 0, 0, $CONFIG['beg_month'], date("d", time()), date("Y", time()));
+$SQL = ""; $MODE = "";
+
+// Shall I sent activation or deactivation mail?
+$SQL = "SELECT userid, email FROM "._MYSQL_PREFIX."_user_data WHERE (beg_ral_notify ";
+switch ($CONFIG['beg_rallye'])
+{
+case "Y": // Begging rallye is activated
+       if ($CONFIG['beg_ral_en_notify'] == "Y")
+       {
+               // Okay, let's check for member accounts
+               $SQL .= "= 0 OR (beg_ral_notify > 0 AND beg_ral_en_notify < beg_ral_di_notify)";
+               $MODE = "en";
+       }
+        else
+       {
+               // Do not notify!
+               $SQL = "";
+       }
+       break;
+
+case "N": // Begging rallye is deactivated
+       if ($CONFIG['beg_ral_di_notify'] == "Y")
+       {
+               // Okay, let's check for member accounts
+               $SQL .= " > 0 AND beg_ral_di_notify < beg_ral_en_notify";
+               $MODE = "di";
+       }
+        else
+       {
+               // Do not notify!
+               $SQL = "";
+       }
+       break;
+}
+
+if (!empty($SQL))
+{
+       // The SQL command needs to be finisched here (only confirmed accounts!)
+       $SQL .= ") AND status='CONFIRMED' ORDER BY last_online ASC";
+
+       // Prepare data for the template
+       define('__BEG_MIN_POINTS' , TRANSLATE_COMMA($CONFIG['beg_points']));
+       define('__BEG_MAX_POINTS' , TRANSLATE_COMMA($CONFIG['beg_points_max']));
+       define('__BEG_MAX_WINNERS', round($CONFIG['beg_ranks']));
+       if ($CONFIG['beg_ip_timeout'] == 0)
+       {
+               // No IP locking setuped!
+               define('__BEG_IP_LOCKER', BEG_NO_LIMITATION);
+       }
+        else
+       {
+               // Create timemark
+               define('__BEG_IP_LOCKER', CREATE_FANCY_TIME($CONFIG['beg_ip_timeout']));
+       }
+
+       // Check for accounts to be notified
+       $result_main = SQL_QUERY($SQL, __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_main) > 0)
+       {
+               // Normal notification mails or bonus mails?
+               $MAIL_MODE = (($CONFIG['beg_notify_bonus'] > 0) && ($MODE == "en") && (EXT_IS_ACTIVE("bonus")));
+
+               // Generate subject line
+               $eval = "\$SUBJECT = BEG_RALLYE_".strtoupper($MODE)."_NOTIFY;";
+               eval($eval);
+
+               // Load message body for bonus mails
+               $MSG = LOAD_EMAIL_TEMPLATE("beg_en_notify_body", "", "{PER}uid{PER}");
+               $RECEIVER = ""; $UIDs = array();
+
+               // Okay lets notify all users!
+               while(list($uid, $email) = SQL_FETCHROW($result_main))
+               {
+                       // Update account
+                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data
+SET beg_ral_notify='%s', beg_ral_%s_notify='%s' WHERE userid=%d LIMIT 1",
+ array(time(), $MODE, time(), $uid), __FILE__, __LINE__);
+
+                       // Load email template and send it to the user!
+                       if ($MAIL_MODE)
+                       {
+                               // Add userid to queue
+                               $UIDs[] = $uid;
+                       }
+                        else
+                       {
+                               // Send normal notification mail to the members
+                               $MSG = LOAD_EMAIL_TEMPLATE("beg_".$MODE."_notify", "", $uid);
+                               SEND_EMAIL($email, $SUBJECT, $MSG);
+                       }
+               }
+
+               // Shall I send out bonus mails?
+               if ($MAIL_MODE)
+               {
+                       // Okay, make array to string
+                       $RECEIVER = implode(";", $UIDs);
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus
+(subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, mails_sent, is_notify)
+VALUES ('%s', '%s', '%s', '%s', '%s', 'NEW', UNIX_TIMESTAMP(), '%s', '%s', '%s', '%s', 'Y')",
+ array(
+       $SUBJECT,
+       $MSG,
+       $RECEIVER,
+       $CONFIG['beg_notify_bonus'],
+       $CONFIG['beg_notify_wait'],
+       URL."/modules.php?module=index&what=login",
+       0,
+       SELECTION_COUNT(explode(";", $RECEIVER)),
+       SQL_NUMROWS($result_main),
+), __FILE__, __LINE__);
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_main);
+}
+
+//
+?>
diff --git a/0.2.1/inc/mails/birthday_mails.php b/0.2.1/inc/mails/birthday_mails.php
new file mode 100644 (file)
index 0000000..2c3f047
--- /dev/null
@@ -0,0 +1,120 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/23/2004 *
+ * ===============                              Last change: 11/22/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : birthday_mails.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Sends out birthday mails                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Versendet Geburtstagsmails                       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("birthday")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "birthday");
+       return;
+}
+
+// Do not execute when script is in CSS mode
+if ($CSS == 1) return;
+
+// Get current day (01 to 31), month (01 to 12) and year (4-digits year)
+$DAY   = date("d", time());
+$MONTH = date("m", time());
+$YEAR  = date("Y", time());
+
+// Shall I include only active members?
+$ADD = "%s"; $VALUE = "";
+if (($CONFIG['birthday_active']) && (EXT_IS_ACTIVE("autopurge")) && ($CONFIG['ap_in_since'] > 0) && ($CONFIG['ap_inactive'] == "Y"))
+{
+       $ADD = " AND last_online >= %d";
+       $VALUE = bigintval(time() - $CONFIG['ap_in_since']);
+}
+
+// Only confirmed members shall receive birthday mails...
+$result_birthday = SQL_QUERY_ESC("SELECT userid, email, birth_year
+FROM "._MYSQL_PREFIX."_user_data
+WHERE status='CONFIRMED' AND birth_day=%d AND birth_month=%d AND birthday_sent < ".(time() - (ONE_DAY*364)).$ADD."
+ORDER BY userid",
+ array($DAY, $MONTH, $VALUE), __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result_birthday) > 0)
+{
+       // Start sending out birthday mails
+       while (list($uid, $email, $byear) = SQL_FETCHROW($result_birthday))
+       {
+               // Calculate own timestamp for birthday and today
+               $BD  = $byear + 12*$MONTH + 365*$DAY;
+               $NOW = $YEAR  + 12*$MONTH + 365*$DAY;
+
+               // Simply subtract both values and you got the age... :)
+               $AGE = $NOW - $BD;
+
+               if ($CONFIG['birthday_points'] > 0)
+               {
+                       // Prepare array for loading template
+                       $content = array(
+                               'age'    => $AGE,
+                               'points' => $CONFIG['birthday_points'],
+                               'check'  => "",
+                       );
+                       for ($idx = 0; $idx < 4; $idx++)
+                       {
+                               $content['check'] .= GEN_RANDOM_CODE("8", rand(0, "$MONTH$DAY"), $uid, ($AGE*($idx+1)));
+                       }
+
+                       // Insert row into database
+                       $result_insert = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_birthday (userid, points, chk_value) VALUES ('%s', '%s', '%s' )",
+                        array(bigintval($uid), $CONFIG['birthday_points'], $content['check']), __FILE__, __LINE__);
+
+                       // Load email template with confirmation link
+                       $msg = LOAD_EMAIL_TEMPLATE("member_birthday_confirm", $content, bigintval($uid));
+               }
+                else
+               {
+                       // Load default email template and fill in the age
+                       $msg = LOAD_EMAIL_TEMPLATE("member_birthday", $AGE, $uid);
+               }
+
+               // Send email
+               SEND_EMAIL($email, HAPPY_BIRTHDAY, $msg);
+
+               // Remember him that he has received a birthday mail
+               $result_bd = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET birthday_sent=UNIX_TIMESTAMP() WHERE userid=%d LIMIT 1",
+                array(bigintval($uid)), __FILE__, __LINE__);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+
+//
+?>
diff --git a/0.2.1/inc/mails/bonus_mails.php b/0.2.1/inc/mails/bonus_mails.php
new file mode 100644 (file)
index 0000000..e265e53
--- /dev/null
@@ -0,0 +1,154 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/22/2005 *
+ * ===============                              Last change: 11/22/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : bonus_mails.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Sends out reminder mails                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Versendet Erinnerungsmails                       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("bonus")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "bonus");
+       return;
+}
+
+// Do not execute when script is in CSS mode
+if ($CSS == 1) return;
+
+// Create timemark from saved month
+$mark = mktime(0, 0, 0, $CONFIG['bonus_month'], date("d", time()), date("Y", time()));
+$SQL = ""; $MODE = "";
+
+// Shall I sent activation or deactivation mail?
+$SQL = "SELECT userid, email FROM "._MYSQL_PREFIX."_user_data WHERE (bonus_ral_notify ";
+switch ($CONFIG['bonus_active'])
+{
+case "Y": // Active rallye is activated
+       if ($CONFIG['bonus_en_notify'] == "Y")
+       {
+               // Okay, let's check for member accounts
+               $SQL .= "= 0 OR (bonus_ral_notify > 0 AND bonus_ral_en_notify < bonus_ral_di_notify)";
+               $MODE = "en";
+       }
+        else
+       {
+               // Do not notify!
+               $SQL = "";
+       }
+       break;
+
+case "N": // Active rallye is deactivated
+       if ($CONFIG['bonus_di_notify'] == "Y")
+       {
+               // Okay, let's check for member accounts
+               $SQL .= " > 0 AND bonus_ral_di_notify < bonus_ral_en_notify";
+               $MODE = "di";
+       }
+        else
+       {
+               // Do not notify!
+               $SQL = "";
+       }
+       break;
+}
+
+if (!empty($SQL))
+{
+       // The SQL command needs to be finisched here (only confirmed accounts!)
+       $SQL .= ") AND status='CONFIRMED' ORDER BY last_online ASC";
+
+       // Normal notification mails or bonus mails?
+       $MAIL_MODE = (($CONFIG['bonus_notify_points'] > 0) && ($MODE == "en") && (EXT_IS_ACTIVE("bonus")));
+
+       // Generate subject line
+       $eval = "\$SUBJECT = BONUS_RALLYE_".strtoupper($MODE)."_NOTIFY;";
+       eval($eval);
+
+       // Load message body for bonus mails
+       $MSG = LOAD_EMAIL_TEMPLATE("bonus_en_notify_body", "", "{PER}uid{PER}");
+       $RECEIVER = ""; $UIDs = array();
+
+       // Check for accounts to be notified
+       $result_main = SQL_QUERY($SQL, __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_main) > 0)
+       {
+               // Okay lets notify all users!
+               while(list($uid, $email) = SQL_FETCHROW($result_main))
+               {
+                       // Update account
+                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data
+SET bonus_ral_notify='%s', bonus_ral_%s_notify='%s' WHERE userid=%d LIMIT 1",
+ array(time(), $MODE, time(), $uid), __FILE__, __LINE__);
+
+                       // Load email template and send it to the user!
+                       if ($MAIL_MODE)
+                       {
+                               // Add userid to queue
+                               $UIDs[] = $uid;
+                       }
+                        else
+                       {
+                               // Send normal notification mail to the members
+                               $MSG = LOAD_EMAIL_TEMPLATE("bonus_".$MODE."_notify", "", $uid);
+                               SEND_EMAIL($email, $SUBJECT, $MSG);
+                       }
+               }
+
+               // Shall I send out bonus mails?
+               if ($MAIL_MODE)
+               {
+                       // Okay, make array to string
+                       $RECEIVER = implode(";", $UIDs);
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus
+(subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, mails_sent, is_notify)
+VALUES ('%s', '%s', '%s', '%s', '%s', 'NEW', UNIX_TIMESTAMP(), '%s', '%s', '%s', '%s', 'Y')",
+ array(
+       $SUBJECT,
+       $MSG,
+       $RECEIVER,
+       $CONFIG['bonus_notify_points'],
+       $CONFIG['bonus_notify_wait'],
+       URL."/modules.php?module=index&what=login",
+       0,
+       SELECTION_COUNT(explode(";", $RECEIVER)),
+       SQL_NUMROWS($result_main),
+), __FILE__, __LINE__);
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_main);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/.htaccess b/0.2.1/inc/modules/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/modules/admin.php b/0.2.1/inc/modules/admin.php
new file mode 100644 (file)
index 0000000..5719f09
--- /dev/null
@@ -0,0 +1,406 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/31/2003 *
+ * ===============                              Last change: 07/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : admin.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Administration module                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Administrationsmodul                             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Login is default
+if ((empty($GLOBALS['action'])) && ($check == "admin_only"))
+{
+       // Redirect to right URL
+       LOAD_URL(URL."/modules.php?module=admin&amp;action=login");
+}
+
+// Load include file
+require_once(PATH."inc/modules/admin/admin-inc.php");
+
+// Fix "deleted" cookies in PHP4 (PHP5 does remove them, PHP4 sets them to deleted!)
+FIX_DELETED_COOKIES(array('admin_login', 'admin_md5', 'admin_last', 'admin_to'));
+
+// Is the logout empty?
+if (empty($_GET['logout'])) $_GET['logout'] = "";
+
+if (!admin_registered)
+{
+       // Admin is not registered so we have to inform the user
+       if ((isset($_POST['ok'])) && ((empty($_POST['login'])) || (empty($_POST['pass'])) || (strlen($_POST['pass']) < 4))) $_POST['ok'] = "***";
+       if ((isset($_POST['ok'])) && ($_POST['ok'] != "***"))
+       {
+               // Hash the password with our new generateHash() function
+               $hashedPass = generateHash($_POST['pass']);
+
+               // If the password has not been hashed we have to fall-back to md5()
+               if ($hashedPass == $_POST['pass']) $hashedPass = md5($hashedPass);
+
+               // Do registration
+               $ret = REGISTER_ADMIN($_POST['login'], $hashedPass);
+               switch ($ret)
+               {
+               case "done":
+                       admin_WriteData(PATH."inc/config.php", "ADMIN-SETUP", "define ('admin_registered', ", ");", "true", 0);
+                       if (!_FATAL)
+                       {
+                               $URL = URL."/modules.php?module=admin&amp;action=login&register=done";
+                               LOAD_URL($URL);
+                               die($URL);
+                       }
+                        else
+                       {
+                               $ret = ADMIN_CANNOT_COMPLETE;
+                       }
+                       break;
+
+               case "failed":
+                       $ret = ADMIN_REGISTER_FAILED;
+                       break;
+
+               case "already":
+               default:
+                       if ($ret == "already")
+                       {
+                               // Admin does already exists!
+                               $ret = ADMIN_LOGIN_ALREADY_REG;
+                       }
+                        else
+                       {
+                               // Any other kind
+                               $ret = "done";
+                       }
+                       if (!admin_registered)
+                       {
+                               // Write to config that registration is done
+                               admin_WriteData(PATH."inc/config.php", "ADMIN-SETUP", "define ('admin_registered', ", ");", "true", 0);
+
+                               // Load URL for login
+                               $URL = URL."/modules.php?module=admin&amp;action=login";
+                               LOAD_URL($URL);
+                       }
+                       break;
+               }
+       }
+       if ($ret != "done")
+       {
+               // Fixes another "Notice"
+               if (!empty($_POST['login'])) {
+                       define('__LOGIN_VALUE', $_POST['login']);
+               } else {
+                       define('__LOGIN_VALUE', "");
+               }
+
+               // Yet-another "Notice" fix
+               if ((!empty($_POST['ok'])) && ($_POST['ok'] == "***"))
+               {
+                       // No login entered?
+                       if (empty($_POST['login'])) $MSG1 = ADMIN_NO_LOGIN;
+
+                       // An error comes back from registration?
+                       if (!empty($ret)) $MSG1 = $ret;
+
+                       // No password entered?
+                       if (empty($_POST['pass'])) $MSG2 = ADMIN_NO_PASS;
+
+                       // Or password too short?
+                       if (strlen($_POST['pass']) < 4) $MSG2 = ADMIN_SHORT_PASS;
+
+                       // Output error messages
+                       define('__MSG_LOGIN', LOAD_TEMPLATE("admin_login_msg", true, $MSG1));
+                       define('__MSG_PASS',  LOAD_TEMPLATE("admin_login_msg", true, $MSG2));
+
+                       // Reset variables
+                       $MSG1 = ""; $MSG2 = "";
+               }
+                else
+               {
+                       // Reset values to nothing
+                       define('__MSG_LOGIN', "");
+                       define('__MSG_PASS' , "");
+               }
+
+               // Load register template
+               LOAD_TEMPLATE("admin_reg_form");
+       }
+}
+ elseif ((empty($_COOKIE['admin_login'])) || (empty($_COOKIE['admin_md5'])) || (empty($_COOKIE['admin_last'])) || (empty($_COOKIE['admin_to'])) || (($_COOKIE['admin_last'] + bigintval($_COOKIE['admin_to']) * 3600 * 24) < time()))
+{
+       // At leat one administrator account was created
+       if ((!empty($_COOKIE['admin_login'])) && (!empty($_COOKIE['admin_md5'])) && (!empty($_COOKIE['admin_last'])) && (!empty($_COOKIE['admin_to'])))
+       {
+               // Timeout for last login, we have to logout first!
+               $URL = URL."/modules.php?module=admin&amp;action=login&amp;logout=1";
+               LOAD_URL($URL);
+       }
+       if (!empty($_GET['register']))
+       {
+               // Registration of first admin is done
+               if ($_GET['register'] == "done") OUTPUT_HTML ("<STRONG class=\"admin\">".ADMIN_REGISTER_DONE."</STRONG>");
+       }
+
+       // Check if the admin has submitted data or not
+       $ret = "";
+       if ((isset($_POST['ok'])) && ((empty($_POST['login'])) || (empty($_POST['pass'])) || (strlen($_POST['pass']) < 4))) $_POST['ok'] = "***";
+       if ((isset($_POST['ok'])) && ($_POST['ok'] != "***"))
+       {
+               // All required data was entered so we check his account
+               $ret = CHECK_ADMIN_LOGIN($_POST['login'], $_POST['pass']);
+               switch ($ret)
+               {
+               case "done": // Admin and password are okay, so we log in now
+                       $TIMEOUT = time() + (3600 * 24 * $_POST['timeout']);
+                       if ((@setcookie("admin_md5", generatePassString(generateHash($_POST['pass'], __SALT)), $TIMEOUT, COOKIE_PATH)) && (@setcookie("admin_login", $_POST['login'], $TIMEOUT, COOKIE_PATH)) && (@setcookie("admin_last", time(), $TIMEOUT, COOKIE_PATH)) && (@setcookie("admin_to", $_POST['timeout'], $TIMEOUT, COOKIE_PATH)))
+                       {
+                               // Construct URL and redirect
+                               $URL = URL."/modules.php?module=admin&amp;";
+
+                               // Rewrite overview module
+                               if ($GLOBALS['what'] == "overview") {
+                                       $GLOBALS['action'] = GET_ACTION($GLOBALS['module'], $GLOBALS['what']);
+                               }
+
+                               // Add data to URL
+                               if (!empty($GLOBALS['what'])) $URL .= "what=".$GLOBALS['what'];
+                                elseif (!empty($GLOBALS['action'])) $URL .= "action=".$GLOBALS['action'];
+                                elseif (!empty($_GET['area'])) $URL .= "area=".$_GET['area'];
+
+                               // Load URL
+                               LOAD_URL($URL);
+                       }
+                        else
+                       {
+                               OUTPUT_HTML ("<STRONG class=\"admin_fatal\">".ADMIN_LOGIN_FAILED."</STRONG>");
+                               ADD_FATAL(CANNOT_REGISTER_SESS);
+                       }
+                       break;
+
+               case "404": // Administrator login not found
+                       $_POST['ok'] = $ret;
+                       $ret = ADMIN_NOT_FOUND;
+                       break;
+
+               case "pass": // Wrong password
+                       $_POST['ok'] = $ret;
+                       $ret = WRONG_PASS;
+                       break;
+               }
+       }
+       if ($ret != "done")
+       {
+               if (!empty($_POST['login']))
+               {
+                       define('__LOGIN_VALUE', $_POST['login']);
+               }
+                else
+               {
+                       define('__LOGIN_VALUE', "");
+               }
+
+               if (isset($_POST['ok']))
+               {
+                       // Set messages to zero
+
+                       $MSG1 = ""; $MSG2 = "";
+                       // No login entered?
+                       if (empty($_POST['login'])) $MSG1 = ADMIN_NO_LOGIN;
+
+                       // An error comes back from login?
+                       if ((!empty($ret)) && ($_POST['ok'] == "404")) $MSG1 = $ret;
+
+                       // No password entered?
+                       if (empty($_POST['pass'])) $MSG2 = ADMIN_NO_PASS;
+
+                       // Or password too short?
+                       if (strlen($_POST['pass']) < 4) $MSG2 = ADMIN_SHORT_PASS;
+
+                       // An error comes back from login?
+                       if ((!empty($ret)) && ($_POST['ok'] == "pass")) $MSG2 = $ret;
+
+                       // Load message template
+                       define('__MSG_LOGIN', LOAD_TEMPLATE("admin_login_msg", true, $MSG1));
+                       define('__MSG_PASS' , LOAD_TEMPLATE("admin_login_msg", true, $MSG2));
+
+                       // Reset variables
+                       $MSG1 = ""; $MSG2 = "";
+               }
+                else
+               {
+                       // Set constants to empty for hiding them
+                       define('__MSG_LOGIN', "");
+                       define('__MSG_PASS' , "");
+               }
+
+               // Load login form
+               if (!empty($GLOBALS['what']))
+               {
+                       // Restore old what value
+                       $content = array('target' => "what", 'value' => $GLOBALS['what']);
+               }
+                elseif (!empty($GLOBALS['action']))
+               {
+                       if ($GLOBALS['action'] != "logout")
+                       {
+                               // Restore old action value
+                               $content = array('target' => "action", 'value' => $GLOBALS['action']);
+                       }
+                        else
+                       {
+                               // Set default values
+                               $content = array('target' => "action", 'value' => "login");
+                       }
+               }
+                elseif (!empty($_GET['area']))
+               {
+                       // Restore old area value
+                       $content = array('target' => "area", 'value' => $_GET['area']);
+               }
+                else
+               {
+                       // Set default values
+                       $content = array('target' => "action", 'value' => "login");
+               }
+
+               // Load login form template
+               LOAD_TEMPLATE("admin_login_form", false, $content);
+       }
+}
+ elseif ($_GET['logout'] == "1")
+{
+       // Only try to remove cookies
+       if (@setcookie("admin_login", "", (time() - 3600), COOKIE_PATH) && @setcookie("admin_md5", "", (time() - 3600), COOKIE_PATH) && @setcookie("admin_last", "", (time() - 3600), COOKIE_PATH) && @setcookie("admin_to", "", (time() - 3600), COOKIE_PATH))
+       {
+               // Also remove array elements
+               unset($_COOKIE['admin_login']);
+               unset($_COOKIE['admin_md5']);
+               unset($_COOKIE['admin_last']);
+               unset($_COOKIE['admin_to']);
+
+               // Destroy session
+               @session_destroy();
+
+               // Load logout template
+               LOAD_TEMPLATE("admin_logout");
+       }
+        else
+       {
+               // Something went wrong here...
+               OUTPUT_HTML ("<STRONG class=\"admin_fatal\">".ADMIN_LOGOUT_FAILED."</STRONG>");
+
+               // Add fatal message
+               ADD_FATAL(CANNOT_UNREG_SESS);
+       }
+}
+ else
+{
+       // Maybe an Admin want's to login?
+       $ret = CHECK_ADMIN_COOKIES(SQL_ESCAPE($_COOKIE['admin_login']), SQL_ESCAPE($_COOKIE['admin_md5']));
+       switch ($ret)
+       {
+       case "done":
+               // Cookie-Data accepted
+               $TIMEOUT = time() + bigintval($_COOKIE['admin_to']);
+               if ((@setcookie("admin_md5", SQL_ESCAPE($_COOKIE['admin_md5']), $TIMEOUT, COOKIE_PATH)) && (@setcookie("admin_login", SQL_ESCAPE($_COOKIE['admin_login']), $TIMEOUT, COOKIE_PATH)) && (@setcookie("admin_last", time(), $TIMEOUT, COOKIE_PATH)) && (@setcookie("admin_to", bigintval($_COOKIE['admin_to']), $TIMEOUT, COOKIE_PATH)))
+               {
+                       // Ok, Cookie-Update done
+                       if ((EXT_IS_ACTIVE("admins")) && (GET_EXT_VERSION("admins") > "0.2"))
+                       {
+                               // Check if action GET variable was set
+                               $act = SQL_ESCAPE($GLOBALS['action']);
+                               if (!empty($GLOBALS['what'])) {
+                                       // Get action value by what-value
+                                       $act = GET_ACTION("admin", $GLOBALS['what']);
+                               }
+
+                               // Check for access control line of current menu entry
+                               define('__ACL_ALLOW', ADMINS_CHECK_ACL($act, $GLOBALS['what']));
+                       }
+                        else
+                       {
+                               // Extension not installed so it's always allowed to access everywhere!
+                               define('__ACL_ALLOW', true);
+                       }
+
+                       // When type of admin menu is not set fallback to old menu system
+                       if (empty($CONFIG['admin_menu'])) $CONFIG['admin_menu'] = "OLD";
+
+                       // Check for version and switch between old menu system and new "intelligent menu system"
+                       if ((ADMIN_CHECK_MENU_MODE() == "NEW") && (file_exists(PATH."inc/modules/admin/la_sys-inc.php")))
+                       {
+                               // Default area is the entrance, of course
+                               $area = "entrance";
+
+                               // Check for similar URL variable
+                               if (!empty($_GET['area'])) $area = $_GET['area'];
+
+                               // Load "logical-area menu-system" file
+                               require_once(PATH."inc/modules/admin/la_sys-inc.php");
+
+                               // Create new-style menu system will "logical areas"
+                               ADMIN_LOGICAL_AREA_SYSTEM($area, $act, $GLOBALS['what']);
+                       }
+                        else
+                       {
+                               // This little call constructs the whole default old and lacky menu system
+                               // on left side
+                               ADMIN_DO_ACTION($GLOBALS['what']);
+                       }
+               }
+                else
+               {
+                       // Login failed (cookies enabled?)
+                       OUTPUT_HTML ("<STRONG class=\"admin_fatal\">".ADMIN_LOGIN_FAILED."</STRONG>");
+                       ADD_FATAL(CANNOT_RE_REGISTER_SESS);
+               }
+               break;
+
+       case "404": // Administrator login not found
+               $_POST['ok'] = $ret;
+               ADD_FATAL(ADMIN_NOT_FOUND);
+               break;
+
+       case "pass": // Wrong password
+               $_POST['ok'] = $ret;
+               ADD_FATAL(WRONG_PASS);
+               break;
+       }
+}
+
+if (admin_registered)
+{
+       // Check config.php and inc directory for right access rights
+       if (is_INCWritable("config"))     ADD_FATAL(FATAL_CONFIG_WRITABLE);
+       if (is_INCWritable("dummy"))      ADD_FATAL(FATAL_INC_WRITABLE);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/.htaccess b/0.2.1/inc/modules/admin/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/modules/admin/action- b/0.2.1/inc/modules/admin/action-
new file mode 100644 (file)
index 0000000..984f25f
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/06/2004 *
+ * ===============                              Last change: 06/30/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-                                          *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-admins.php b/0.2.1/inc/modules/admin/action-admins.php
new file mode 100644 (file)
index 0000000..a0beb1b
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/06/2004 *
+ * ===============                              Last change: 06/30/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-admins.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup admin accounts                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Admin-Accounts verwalten                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-bank.php b/0.2.1/inc/modules/admin/action-bank.php
new file mode 100644 (file)
index 0000000..58d393c
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/31/2007 *
+ * ===============                              Last change: 05/31/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-bank.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = PATH."inc/modules/admin/what-".$GLOBALS['what'].".php";
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-country.php b/0.2.1/inc/modules/admin/action-country.php
new file mode 100644 (file)
index 0000000..90455e7
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/30/2005 *
+ * ===============                              Last change: 04/30/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-country.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Country code management                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Laendercode-Management                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-doubler.php b/0.2.1/inc/modules/admin/action-doubler.php
new file mode 100644 (file)
index 0000000..6982a40
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2005 *
+ * ===============                              Last change: 02/12/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-doubler.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Points doubler                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punkte-Verdoppler                                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-email.php b/0.2.1/inc/modules/admin/action-email.php
new file mode 100644 (file)
index 0000000..787081a
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 01/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-email.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Main menu "EMails"                               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Hauptmenue "E-Mails"                             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-holiday.php b/0.2.1/inc/modules/admin/action-holiday.php
new file mode 100644 (file)
index 0000000..ca00de5
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/24/2004 *
+ * ===============                              Last change: 07/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-holiday.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Manage holiday requests                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Urlaubsschaltungen verwalten                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-login.php b/0.2.1/inc/modules/admin/action-login.php
new file mode 100644 (file)
index 0000000..a66a1be
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 01/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-login.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Login area and welcome page                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einloggen und Willkommensseite                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-logout.php b/0.2.1/inc/modules/admin/action-logout.php
new file mode 100644 (file)
index 0000000..1fefc2a
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/13/2006 *
+ * ===============                              Last change: 01/13/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-logout.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Logout menu point                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausloggen-Menuepunkt                             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OUTPUT_HTML("</FONT><BR><BR>");
+
+if (!empty($_POST['no']))
+{
+       // Do not logout now
+       LOAD_URL(URL."/modules.php?module=admin");
+}
+ elseif ((!empty($_POST['yes'])) && ($GLOBALS['action'] == "logout"))
+{
+       // Redirect to logout link
+       LOAD_URL(URL."/modules.php?module=admin&amp;logout=1");
+}
+ else
+{
+       // Load logout form template
+       LOAD_TEMPLATE("admin_logout_form");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-menu.php b/0.2.1/inc/modules/admin/action-menu.php
new file mode 100644 (file)
index 0000000..ddaf08a
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 01/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-menu.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Editing all three menu systems                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle drei Menue-Systeme bearbeiten               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-misc.php b/0.2.1/inc/modules/admin/action-misc.php
new file mode 100644 (file)
index 0000000..41cdcc6
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 01/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-misc.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Misc things: new patches / versions and so on    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verschiedenes: Nach Patches/Updates suchen usw.  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-mods.php b/0.2.1/inc/modules/admin/action-mods.php
new file mode 100644 (file)
index 0000000..4f05fcc
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/27/2004 *
+ * ===============                              Last change: 08/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-mods.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Module management                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Modul-Management                                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-newsletter.php b/0.2.1/inc/modules/admin/action-newsletter.php
new file mode 100644 (file)
index 0000000..49c3361
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/06/2004 *
+ * ===============                              Last change: 03/06/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-newsletter.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Newsletter management                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Newsletter-Management                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-payouts.php b/0.2.1/inc/modules/admin/action-payouts.php
new file mode 100644 (file)
index 0000000..2882feb
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/08/2004 *
+ * ===============                              Last change: 05/08/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-payouts.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Payout management                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auszahlung-Management                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-rallye.php b/0.2.1/inc/modules/admin/action-rallye.php
new file mode 100644 (file)
index 0000000..221889a
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/29/2004 *
+ * ===============                              Last change: 06/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-rallye.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Rallye management                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ref-Rallye Management                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-repair.php b/0.2.1/inc/modules/admin/action-repair.php
new file mode 100644 (file)
index 0000000..1f54b7e
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/24/2004 *
+ * ===============                              Last change: 04/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-repair.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Repair actions                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Reperaturaktionen                                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-setup.php b/0.2.1/inc/modules/admin/action-setup.php
new file mode 100644 (file)
index 0000000..5cf0b0c
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 01/16/2003 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-setup.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-stats.php b/0.2.1/inc/modules/admin/action-stats.php
new file mode 100644 (file)
index 0000000..2db7b93
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/16/2003 *
+ * ===============                              Last change: 01/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-stats.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-task.php b/0.2.1/inc/modules/admin/action-task.php
new file mode 100644 (file)
index 0000000..08c5eaa
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/03/2004 *
+ * ===============                              Last change: 08/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-task.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Advanced task management                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Erweitertes Aufgaben-Management                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-theme.php b/0.2.1/inc/modules/admin/action-theme.php
new file mode 100644 (file)
index 0000000..651d82a
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/03/2004 *
+ * ===============                              Last change: 12/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-theme.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Theme Management                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Theme-Management                                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-transfer.php b/0.2.1/inc/modules/admin/action-transfer.php
new file mode 100644 (file)
index 0000000..3ea5af9
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/06/2004 *
+ * ===============                              Last change: 10/06/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-transfer.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Point transfers between users                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punktetransfers zwischen Mitgliedern             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-user.php b/0.2.1/inc/modules/admin/action-user.php
new file mode 100644 (file)
index 0000000..20254c2
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 01/16/2003 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-user.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/action-wernis.php b/0.2.1/inc/modules/admin/action-wernis.php
new file mode 100644 (file)
index 0000000..25b4ff1
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/08/2004 *
+ * ===============                              Last change: 05/08/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-wernis.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Wernis management                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auszahlung-Management                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/admin/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the admin action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(ADMIN_404_ACTION_1.$GLOBALS['what'].ADMIN_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/admin-inc.php b/0.2.1/inc/modules/admin/admin-inc.php
new file mode 100644 (file)
index 0000000..0ac0175
--- /dev/null
@@ -0,0 +1,810 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/31/2003 *
+ * ===============                              Last change: 11/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : admin-inc.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Administrative related functions                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Fuer die Administration benoetigte Funktionen    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+function REGISTER_ADMIN ($user, $md5)
+{
+       $ret = "failed";
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+        array($user), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Ok, let's create the admin login
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admins (login, password, email) VALUES('%s', '%s', '".WEBMASTER."')",
+                array($user, $md5), __FILE__, __LINE__);
+               $ret = "done";
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Login does already exist
+               $ret = "already";
+       }
+       return $ret;
+}
+// Only be executed on login procedure!
+function CHECK_ADMIN_LOGIN ($admin_login, $password)
+{
+       global $ADMINS, $CONFIG, $CACHE;
+       $ret = "404"; $pass = "";
+       if (!empty($ADMINS['aid'][$admin_login]))
+       {
+               // Get password from cache
+               $pass = $ADMINS['password'][$admin_login];
+               $ret = "pass";
+               $CONFIG['cache_hits']++;
+       }
+        else
+       {
+               // Get password from DB
+               $result = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+                array($admin_login), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       $ret = "pass";
+                       list($pass) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+       }
+
+       //* DEBUG: */ echo "*".$pass."/".$password."/".$ret."<BR>";
+       if ((strlen($pass) == 32) && ($pass == md5($password)))
+       {
+               // Generate new hash
+               $pass = generateHash($password);
+               if (($ret == "pass") && (GET_EXT_VERSION("sql_patches") < "0.3.6")) $ret = "done";
+       }
+        elseif ((GET_EXT_VERSION("sql_patches") < "0.3.6") || (GET_EXT_VERSION("sql_patches") == ""))
+       {
+               // Old hashing way
+               return $ret;
+       }
+
+       // Generate salt of password
+       define('__SALT', substr($pass, 0, -40));
+       $salt = __SALT;
+
+       // Check if password is same
+       if (($ret == "pass") && ($pass == generateHash($password, $salt)) && (!empty($salt)))
+       {
+               // Update password
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admins SET password='%s' WHERE login='%s' LIMIT 1",
+                array($pass, $admin_login), __FILE__, __LINE__);
+
+               // Shall I remove the cache file?
+               if ((EXT_IS_ACTIVE("cache")) && ($CACHE != false))
+               {
+                       if ($CACHE->cache_file("admins", true)) $CACHE->cache_destroy();
+               }
+
+               // Password matches!
+               $ret = "done";
+       }
+        elseif ((empty($salt)) && ($ret == "pass"))
+       {
+               // Something bad went wrong
+               $ret = "failed";
+       }
+       return $ret;
+}
+// Only be executed on cookie checking
+function CHECK_ADMIN_COOKIES ($admin_login, $password)
+{
+       global $ADMINS, $CONFIG;
+       $ret = "404"; $pass = "";
+       if (!empty($ADMINS['aid'][$admin_login]))
+       {
+               // Get password from cache
+               $pass = $ADMINS['password'][$admin_login];
+               $ret = "pass";
+               $CONFIG['cache_hits']++;
+       }
+        else
+       {
+               // Get password from DB
+               $result = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+                array($admin_login), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       $ret = "pass";
+                       list($pass) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+       }
+
+       //* DEBUG: */ echo "*".$pass."/".$password."<BR>";
+
+       // Check if password matches
+       if (($ret == "pass") && ((generatePassString($pass) == $password) || ($pass == $password)))
+       {
+               // Passwords matches!
+               $ret = "done";
+       }
+       return $ret;
+}
+//
+function admin_WriteData ($FILE, $COMMENT, $PREFIX, $SUFFIX, $DATA, $SEEK=0)
+{
+       $DONE = false;  $SEEK++; $found = false;
+       if (file_exists($FILE))
+       {
+               $SEARCH = "CFG: ".$COMMENT;
+               $TMP = $FILE.".tmp";
+               $fp = fopen($FILE, 'r') or OUTPUT_HTML ("<STRONG>READ:</STRONG> ".$FILE."<BR>");
+               if ($fp)
+               {
+                       $fp_tmp = fopen($TMP, 'w') or OUTPUT_HTML ("<STRONG>WRITE:</STRONG> ".$TMP."<BR>");
+                       if ($fp_tmp)
+                       {
+                               while (! feof($fp))
+                               {
+                                       $line = fgets ($fp, 1024);
+                                       if (strpos($line, $SEARCH) > -1) { $next = 0; $found = true; }
+                                       if ($next > -1)
+                                       {
+                                               if ($next == $SEEK)
+                                               {
+                                                       $next = -1;
+                                                       $line = $PREFIX.$DATA.$SUFFIX."\n";
+                                               }
+                                                else
+                                               {
+                                                       $next++;
+                                               }
+                                       }
+                                       fputs($fp_tmp, $line);
+                               }
+                               fclose($fp_tmp);
+                               // Finished writing tmp file
+                               $DONE = true;
+                       }
+                       fclose($fp);
+                       if (($DONE) && ($found))
+                       {
+                               // Copy back tmp file and delete tmp :-)
+                               @copy($TMP, $FILE);
+                               @unlink($TMP);
+                               define ('_FATAL', false);
+                       }
+                        elseif (!$found)
+                       {
+                               OUTPUT_HTML ("<STRONG>CHANGE:</STRONG> 404!");
+                               define ('_FATAL', true);
+                       }
+                        else
+                       {
+                               OUTPUT_HTML ("<STRONG>TMP:</STRONG> UNDONE!");
+                               define ('_FATAL', true);
+                       }
+               }
+       }
+        else
+       {
+               OUTPUT_HTML ("<STRONG>404:</STRONG> ".$FILE."<BR>");
+       }
+}
+//
+function ADMIN_DO_ACTION($wht)
+{
+       global $menuDesription, $MTITLE, $CONFIG, $EXTENSIONS, $link, $DATA;
+       //* DEBUG: */ echo __LINE__."*".$wht."/".$GLOBALS['module']."/".$GLOBALS['action']."/".$GLOBALS['what']."*<br />\n";
+       if (EXT_IS_ACTIVE("cache"))
+       {
+               // Include cache instance
+               global $CACHE;
+       }
+
+       // Remove any spaces from variable
+       if (empty($wht))
+       {
+               // Default admin action is the overview page
+               $wht = "overview";
+       }
+        else
+       {
+               // Compile out some chars
+               $wht = COMPILE_CODE($wht, false, false, false);
+       }
+
+       // Get action value
+       $act = GET_ACTION($GLOBALS['module'], $wht);
+
+       // Define admin login name and ID number
+       define('__ADMIN_LOGIN', SQL_ESCAPE($_COOKIE['admin_login']));
+       define('__ADMIN_ID'   , GET_ADMIN_ID($_COOKIE['admin_login']));
+
+       // Preload templates
+       if (EXT_IS_ACTIVE("admins")) {
+               define('__ADMIN_WELCOME', LOAD_TEMPLATE("admin_welcome_admins", true));
+       } else {
+               define('__ADMIN_WELCOME', LOAD_TEMPLATE("admin_welcome", true));
+       }
+       define('__ADMIN_FOOTER' , LOAD_TEMPLATE("admin_footer" , true));
+       define('__ADMIN_MENU'   , ADD_ADMIN_MENU($act, $wht, true));
+
+       // Tableset header
+       LOAD_TEMPLATE("admin_main_header");
+
+       // Check if action/what pair is valid
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu
+WHERE action='%s' AND ((what='%s' AND what != 'overview') OR (what='' AND '%s'='overview'))
+LIMIT 1", array($act, $wht, $wht), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Is valid but does the inlcude file exists?
+               $INC = sprintf(PATH."inc/modules/admin/action-%s.php", $act);
+               if ((file_exists($INC)) && (is_readable($INC)) && (VALIDATE_MENU_ACTION("admin", $act, $wht)) && (__ACL_ALLOW == true))
+               {
+                       // Ok, we finally load the admin action module
+                       include($INC);
+               }
+                elseif (__ACL_ALLOW == false)
+               {
+                       // Access denied
+                       LOAD_TEMPLATE("admin_menu_failed", false, ADMINS_ACCESS_DENIED);
+                       ADD_FATAL(ADMINS_ACCESS_DENIED);
+               }
+                else
+               {
+                       // Include file not found! :-(
+                       LOAD_TEMPLATE("admin_menu_failed", false, ADMIN_404_ACTION);
+                       ADD_FATAL(ADMIN_404_ACTION_1.$act.ADMIN_404_ACTION_2);
+               }
+       } else {
+               // Invalid action/what pair found!
+               LOAD_TEMPLATE("admin_menu_failed", false, ADMIN_INVALID_ACTION);
+               ADD_FATAL(ADMIN_INVALID_ACTION_1.$act."/".$wht.ADMIN_INVALID_ACTION_2);
+       }
+
+       // Tableset footer
+       LOAD_TEMPLATE("admin_main_footer");
+}
+//
+function ADD_ADMIN_MENU($act, $wht,$return=false)
+{
+       global $_GET, $menuDesription, $MTITLE, $link;
+       $SUB = false;
+
+       // Menu descriptions
+       $menuDesription = array();
+       $MTITLE = array();
+
+       // Build main menu
+       $result_main = SQL_QUERY("SELECT action, title, descr FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' ORDER BY sort, id DESC", __FILE__, __LINE__);
+       $OUT = "";
+       if (SQL_NUMROWS($result_main) > 0)
+       {
+               $OUT = "<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"admin_menu_main\">
+<TR><TD colspan=\"2\" height=\"7\" class=\"seperator\">&nbsp;</TD></TR>\n";
+               while (list($menu, $title, $descr) = SQL_FETCHROW($result_main))
+               {
+                       if ((EXT_IS_ACTIVE("admins")) && (GET_EXT_VERSION("admins") > "0.2"))
+                       {
+                               $ACL = ADMINS_CHECK_ACL($menu, "");
+                       }
+                        else
+                       {
+                               // ACL is "allow"... hmmm
+                               $ACL = true;
+                       }
+                       if ($ACL)
+                       {
+                               if (!$SUB)
+                               {
+                                       // Insert compiled menu title and description
+                                       $MTITLE[$menu]        = $title;
+                                       $menuDesription[$menu] = $descr;
+                               }
+                               $OUT .= "<TR>
+  <TD class=\"admin_menu\" colspan=\"2\">
+    <NOBR>&nbsp;<STRONG>&middot;</STRONG>&nbsp;";
+                               if (($menu == $act) && (empty($wht)))
+                               {
+                                       $OUT .= "<STRONG>";
+                               }
+                                else
+                               {
+                                       $OUT .= "[&nbsp;<A href=\"".URL."/modules.php?module=admin&amp;action=".$menu."\">";
+                               }
+                               $OUT .= $title;
+                               if (($menu == $act) && (empty($wht)))
+                               {
+                                       $OUT .= "</STRONG>";
+                               }
+                                else
+                               {
+                                       $OUT .= "</A>&nbsp;]";
+                               }
+                               $OUT .= "</NOBR></TD>
+</TR>\n";
+                               $result_what = SQL_QUERY_ESC("SELECT what, title, descr FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND what != '' ORDER BY sort, id DESC",
+                                array($menu), __FILE__, __LINE__);
+                               if ((SQL_NUMROWS($result_what) > 0) && ($act == $menu))
+                               {
+                                       $menuDesription = array();
+                                       $MTITLE = array(); $SUB = true;
+                                       $OUT .= "<TR>
+  <TD width=\"10\" class=\"seperator\">&nbsp;</TD>
+  <TD class=\"admin_menu\">
+    <TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"admin_menu_sub\">\n";
+                                       while (list($wht_sub, $title_what, $desc_what) = SQL_FETCHROW($result_what))
+                                       {
+                                               // Filename
+                                               $INC = sprintf(PATH."inc/modules/admin/what-%s.php", $wht_sub);
+                                               if ((EXT_IS_ACTIVE("admins")) && (GET_EXT_VERSION("admins") > "0.2"))
+                                               {
+                                                       $ACL = ADMINS_CHECK_ACL("", $wht_sub);
+                                               }
+                                                else
+                                               {
+                                                       // ACL is "allow"... hmmm
+                                                       $ACL = true;
+                                               }
+                                               $readable = ((file_exists($INC)) && (is_readable($INC)));
+                                               if ($ACL)
+                                               {
+                                                       // Insert compiled title and description
+                                                       $MTITLE[$wht_sub]        = $title_what;
+                                                       $menuDesription[$wht_sub] = $desc_what;
+                                                       $OUT .= "<TR>
+  <TD class=\"admin_menu\" colspan=\"2\">
+    <NOBR>&nbsp;<STRONG>--&gt;</STRONG>&nbsp;";
+                                                       if ($readable)
+                                                       {
+                                                               if ($wht == $wht_sub)
+                                                               {
+                                                                       $OUT .= "<STRONG>";
+                                                               }
+                                                                else
+                                                               {
+                                                                       $OUT .= "[&nbsp;<A href=\"".URL."/modules.php?module=admin&amp;what=".$wht_sub."\">";
+                                                               }
+                                                       }
+                                                        else
+                                                       {
+                                                               $OUT .= "<I class=\"admin_note\">";
+                                                       }
+                                                       $OUT .= $title_what;
+                                                       if ($readable)
+                                                       {
+                                                               if ($wht == $wht_sub)
+                                                               {
+                                                                       $OUT .= "</STRONG>";
+                                                               }
+                                                                else
+                                                               {
+                                                                       $OUT .= "</A>&nbsp;]";
+                                                               }
+                                                       }
+                                                        else
+                                                       {
+                                                               $OUT .= "</I>";
+                                                       }
+                                                       $OUT .= "</NOBR></TD>
+</TR>\n";
+                                               }
+                                       }
+
+                                       // Free memory
+                                       SQL_FREERESULT($result_what);
+                                       $OUT .= "    </TABLE>
+  </TD>
+</TR>\n";
+                               }
+                               $OUT .= "<TR><TD height=\"7\" colspan=\"2\"></TD></TR>\n";
+                       }
+               }
+
+               // Free memory
+               SQL_FREERESULT($result_main);
+               $OUT .= "</TABLE>\n";
+       }
+
+       // Compile and run the code here. This inserts all constants into the
+       // HTML output. Costs me some time to figure this out... *sigh* Quix0r
+       $eval = "\$OUT = \"".COMPILE_CODE(addslashes($OUT))."\";";
+       eval($eval);
+
+       // Return or output content?
+       if ($return) {
+               return $OUT;
+       } else {
+               OUTPUT_HTML ($OUT);
+       }
+}
+//
+function ADD_MEMBER_SELECTION_BOX($add_all = false, $return = false, $none = false, $def = "0")
+{
+       global $_GET;
+       // Output selection form with all confirmed user accounts listed
+       $result = SQL_QUERY("SELECT userid, surname, family FROM "._MYSQL_PREFIX."_user_data ORDER BY userid", __FILE__, __LINE__);
+       $OUT = "";
+
+       // USe this only for adding points (e.g. adding refs really makes no sence ;-) )
+       if ($add_all) $OUT = "      <OPTION value=\"all\">".ALL_MEMBERS."</OPTION>\n";
+        elseif ($none) $OUT = "      <OPTION value=\"0\">".SELECT_NONE."</OPTION>\n";
+       while (list($id, $sname, $fname) = SQL_FETCHROW($result))
+       {
+               $OUT .= "      <OPTION value=\"".$id."\"";
+               if ($def == $id) $OUT .= " selected=\"selected\"";
+               $OUT .= ">".$sname." ".$fname." (".$id.")</OPTION>\n";
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Remeber options in constant
+       define('_MEMBER_SELECTION', $OUT);
+
+       if (!$return)
+       {
+               // Display selection box
+               define('__LANG_VALUE', GET_LANGUAGE());
+
+               // Load template
+               LOAD_TEMPLATE("admin_member_selection_box", false, $GLOBALS['what']);
+       }
+}
+//
+function ADMIN_MENU_SELECTION($MODE, $default="", $defid="")
+{
+       $wht = "what != ''";
+       if ($MODE == "action") $wht = "what='' AND action !='login'";
+       $result = SQL_QUERY_ESC("SELECT %s, title FROM "._MYSQL_PREFIX."_admin_menu WHERE ".$wht." ORDER BY sort",
+        array($MODE), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Load menu as selection
+               $OUT = "<SELECT name=\"".$MODE."_menu";
+               if ((!empty($defid)) || ($defid == "0")) $OUT .= "[".$defid."]";
+               $OUT .= "\" size=\"1\" class=\"admin_select\">
+  <OPTION value=\"\">".SELECT_NONE."</OPTION>\n";
+               while (list($menu, $title) = SQL_FETCHROW($result))
+               {
+                       $OUT .= "  <OPTION value=\"".$menu."\"";
+                       if ((!empty($default)) && ($default == $menu)) $OUT .= " selected=\"selected\"";
+                       $OUT .= ">".$title."</OPTION>\n";
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               $OUT .= "</SELECT>\n";
+       }
+        else
+       {
+               // No menus???
+               $OUT = ADMIN_PROBLEM_NO_MENU;
+       }
+
+       // Return output
+       return $OUT;
+}
+//
+function ADMIN_SAVE_SETTINGS (&$POST, $TABLE, $WHERE="config='1'", $translateComma = array(), $alwaysAdd=false)
+{
+       global $CONFIG, $CFG_CACHE, $CACHE;
+       $DATA = array();
+       $skip = false; $TEST2 = "";
+       foreach ($POST as $id=>$val) {
+               // Process only formular field but not submit buttons ;)
+               if ($id != "ok") {
+                       // Do not save the ok value
+                       $TEST = substr($id, -3);
+                       if ((($TEST == "_ye") || ($TEST == "_mo") || ($TEST == "_we") || ($TEST == "_da") || ($TEST == "_ho") || ($TEST == "_mi") || ($TEST == "_se")) && (isset($val))) {
+                               // Found a multi-selection for timings?
+                               $TEST = substr($id, 0, -3);
+                               if ((isset($POST[$TEST."_ye"])) && (isset($POST[$TEST."_mo"])) && (isset($POST[$TEST."_we"])) && (isset($POST[$TEST."_da"])) && (isset($POST[$TEST."_ho"])) && (isset($POST[$TEST."_mi"])) && (isset($POST[$TEST."_se"])) && ($TEST != $TEST2)) {
+                                       // Generate timestamp
+                                       $POST[$TEST] = CREATE_TIMESTAMP_FROM_SELECTIONS($TEST, $POST);
+                                       $DATA[] = "$TEST='".$POST[$TEST]."'";
+
+                                       // Remove data from array
+                                       unset($POST[$TEST."_ye"]);
+                                       unset($POST[$TEST."_mo"]);
+                                       unset($POST[$TEST."_we"]);
+                                       unset($POST[$TEST."_da"]);
+                                       unset($POST[$TEST."_ho"]);
+                                       unset($POST[$TEST."_mi"]);
+                                       unset($POST[$TEST."_se"]);
+
+                                       // Skip adding
+                                       unset($id); $skip = true; $TEST2 = $TEST;
+                               }
+                       } else {
+                               // Process this entry
+                               $skip = false; $TEST2 = "";
+                       }
+
+                       // Shall we process this ID? It muss not be empty, of course
+                       if ((!$skip) && (!empty($id))) {
+                               // Save this entry
+                               $val = COMPILE_CODE($val);
+
+                               // Translate the value? (comma to dot!)
+                               if ((is_array($translateComma)) && (in_array($id, $translateComma))) {
+                                       // Then do it here... :)
+                                       $val = str_replace(",", ".", $val);
+                               }
+
+                               // Shall we add numbers or strings?
+                               $test = (float)$val;
+                               if ("".$val."" == "".$test."") {
+                                       // Add numbers
+                                       $DATA[] = $id."=".$val."";
+                               } else {
+                                       // Add strings
+                                       $DATA[] = $id."='".trim($val)."'";
+                               }
+
+                               // Update current configuration
+                               $CONFIG[$id] = $val;
+                       }
+               }
+       }
+
+       // Check if entry does exist
+       $result = false;
+       if (!$alwaysAdd) {
+               if (!empty($WHERE)) {
+                       $result = SQL_QUERY("SELECT * FROM "._MYSQL_PREFIX.$TABLE." WHERE ".$WHERE." LIMIT 1", __FILE__, __LINE__);
+               } else {
+                       $result = SQL_QUERY("SELECT * FROM "._MYSQL_PREFIX.$TABLE." LIMIT 1", __FILE__, __LINE__);
+               }
+       }
+
+       if (SQL_NUMROWS($result) == 1) {
+               // "Implode" all data to single string
+               $DATA_UPDATE = implode(", ", $DATA);
+
+               // Generate SQL string
+               $SQL = "UPDATE "._MYSQL_PREFIX.$TABLE." SET ".$DATA_UPDATE." WHERE ".$WHERE." LIMIT 1";
+       } else {
+               // Add Line (does only work with auto_increment!
+               $KEYs = array(); $VALUEs = array();
+               foreach ($DATA as $entry) {
+                       // Split up
+                       $line = explode("=", $entry);
+                       $KEYs[] = $line[0]; $VALUEs[] = $line[1];
+               }
+
+               // Add both in one line
+               $KEYs = implode(", ", $KEYs);
+               $VALUEs = implode(", ", $VALUEs);
+
+               // Generate SQL string
+               $SQL = "INSERT INTO "._MYSQL_PREFIX.$TABLE." (".$KEYs.") VALUES(".$VALUEs.")";
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Simply run generated SQL string
+       $result = SQL_QUERY($SQL, __FILE__, __LINE__);
+
+       // Is the config table updated and the cache extension installed?
+       if ((GET_EXT_VERSION("cache") >= "0.1.2") && ($TABLE == "_config")) {
+               // Remove it here...
+               if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy();
+               unset($CFG_CACHE);
+       }
+
+       // Settings saved
+       LOAD_TEMPLATE("admin_settings_saved", false, "<STRONG class=\"admin_done\">".SETTINGS_SAVED."</STRONG>");
+}
+//
+function ADMIN_MAKE_MENU_SELECTION($menu, $type, $name, $default="") {
+       // Init the selection box
+       $OUT = "<SELECT name=\"".$name."\" class=\"admin_select\" size=\"1\">\n <OPTION value=\"\">".IS_TOP_MENU."</OPTION>\n";
+
+       // Open the requested menu directory
+       $handle = opendir(PATH."inc/modules/".$menu."/") or mxchange_die("Cannot load menu ".$menu."!");
+       while ($file = readdir($handle)) {
+               // Is this a PHP script?
+               if (($file != ".") && ($file != "..") && ($file != "lost+found") && (strpos($file, "".$type."-") > -1) && (strpos($file, ".php") > 0)) {
+                       // Then test if the file is readable
+                       $test = PATH."inc/modules/".$menu."/".$file;
+                       if (is_readable($test)) {
+                               // Extract the value for what=xxx
+                               $part = substr($file, (strlen($type) + 1)); $part = substr($part, 0, strpos($part, ".php"));
+
+                               // Is that part different from the overview?
+                               if ($part != "overview") {
+                                       $OUT .= "       <OPTION value=\"".$part."\"";
+                                       if ($part == $default) $OUT .= "selected";
+                                       $OUT .= ">".$part."</OPTION>\n";
+                               }
+                       }
+               }
+       }
+       closedir($handle);
+       $OUT .= "</SELECT>\n";
+       return $OUT;
+}
+//
+function ADMIN_USER_PROFILE_LINK($uid, $title="", $wht="list_user")
+{
+       if (($title == "") && ($title != "0")) { $title = $uid; }
+       if (($title == "0") && ($wht == "list_refs"))
+       {
+               // Return title again
+               return $title;
+       }
+
+       //* DEBUG: */ echo "A:".$title."<BR>";
+       // Return link
+       return "<A href=\"".URL."/modules.php?module=admin&amp;what=".$wht."&amp;u_id=".$uid."\" title=\"".ADMIN_USER_PROFILE_TITLE."\">".$title."</A>";
+}
+//
+function ADMIN_CHECK_MENU_MODE()
+{
+       global $CONFIG, $ADMINS, $_COOKIE;
+
+       // Set the global mode as the mode for all admins
+       $MODE = $CONFIG['admin_menu']; $ADMIN = $MODE;
+
+       // Check individual settings of current admin
+       if (isset($ADMINS['la_mode'][$_COOKIE['admin_login']]))
+       {
+               // Load from cache
+               $ADMIN = $ADMINS['la_mode'][$_COOKIE['admin_login']];
+               $CONFIG['cache_hits']++;
+       }
+        elseif (GET_EXT_VERSION("admins") >= "0.6.7")
+       {
+               // Load from database when version of "admins" is enough
+               $result = SQL_QUERY_ESC("SELECT la_mode FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+                array($_COOKIE['admin_login']), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Load data
+                       list($ADMIN) = SQL_FETCHROW($result);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+
+       // Check what the admin wants and set it when it's not the global mode
+       if ($ADMIN != "global") $MODE = $ADMIN;
+
+       // Return admin-menu's mode
+       return $MODE;
+}
+// Change activation status
+function ADMIN_CHANGE_ACTIVATION_STATUS ($IDs, $table, $row, $idRow = "id") {
+       global $CONFIG;
+       $cnt = 0; $newStatus = "Y";
+       if ((is_array($IDs)) && (count($IDs) > 0)) {
+               // "Walk" all through and count them
+               foreach ($IDs as $id=>$selected) {
+                       // Secure the ID number
+                       $id = bigintval($id);
+
+                       // Should always be 1 ;-)
+                       if ($selected == 1) {
+                               // Determine new status
+                               $result = SQL_QUERY_ESC("SELECT %s FROM "._MYSQL_PREFIX."_%s WHERE %s=%d LIMIT 1",
+                                       array($row, $table, $idRow, $id), __FILE__, __LINE__);
+
+                               // Row found?
+                               if (SQL_NUMROWS($result) == 1) {
+                                       // Load the status
+                                       list($currStatus) = SQL_FETCHROW($result);
+                                       if ($currStatus == "Y") $newStatus="N"; else $newStatus = "Y";
+
+                                       // Change this status
+                                       SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_%s SET %s='%s' WHERE %s=%d LIMIT 1",
+                                               array($table, $row, $newStatus, $idRow, $id), __FILE__, __LINE__);
+
+                                       // Count up affected rows
+                                       $cnt += SQL_AFFECTEDROWS();
+                               }
+
+                               // Free the result
+                               SQL_FREERESULT($result);
+                       }
+               }
+
+               // Output status
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_STATUS_CHANGED_1.$cnt.ADMIN_STATUS_CHANGED_2.count($IDs).ADMIN_STATUS_CHANGED_3);
+       } else {
+               // Nothing selected!
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NOTHING_SELECTED_CHANGE);
+       }
+}
+// Delete rows by given ID numbers
+function ADMIN_DELETE_ENTRIES_CONFIRM ($IDs, $table, $row, $columns = array(), $filterFunctions = array(), $deleteNow=false, $idRow="id") {
+       global $CONFIG;
+       $OUT = ""; $SW = 2;
+       if ((is_array($IDs)) && (count($IDs) > 0)) {
+               // "Walk" through all entries and count them
+               if ($deleteNow) {
+                       // Delete them
+               } else {
+                       // List for confirmation
+                       foreach ($IDs as $id=>$selected) {
+                               // Secure ID number
+                               $id = bigintval($id);
+
+                               // Will always be 1 ;-)
+                               if ($selected == 1) {
+                                       // Get result from a given column array and table name
+                                       $result = SQL_RESULT_FROM_ARRAY($table, $columns, $idRow, $id);
+
+                                       // Is there one entry?
+                                       if (SQL_NUMROWS($result) == 1) {
+                                               // Load all data
+                                               $content = SQL_FETCHARRAY($result);
+
+                                               // Filter all data
+                                               foreach ($content as $key=>$value) {
+                                                       // Is a filter function set?
+                                                       $idx = array_search($key, $columns, true);
+                                                       if (!empty($filterFunctions[$idx])) {
+                                                               // Then call it!
+                                                               $content[$key] = call_user_func($filterFunctions[$idx], $value);
+                                                       }
+                                               }
+
+                                               // Add color switching
+                                               $content['sw'] = $SW;
+
+                                               // Then list it again...
+                                               $OUT .= LOAD_TEMPLATE("admin_del_".$table."_row", true, $content);
+                                               $SW = 3 - $SW;
+                                       }
+
+                                       // Free the result
+                                       SQL_FREERESULT($result);
+                               }
+                       }
+
+                       // Load master template
+                       LOAD_TEMPLATE("admin_del_".$table."", false, $OUT);
+               }
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/overview-inc.php b/0.2.1/inc/modules/admin/overview-inc.php
new file mode 100644 (file)
index 0000000..da5df68
--- /dev/null
@@ -0,0 +1,538 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/13/2004 *
+ * ===============                              Last change: 08/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : overview-inc.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Output standard task management                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Standart-Aufgaben-Management ausgeben            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+function OUTPUT_STANDARD_OVERVIEW(&$result_tasks)
+{
+       global $EXTENSIONS, $KEEP_ACTIVE;
+
+       // First check for solved and not assigned tasks and assign them to current admin
+       $result_task = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='%s' WHERE assigned_admin < 1 AND status != 'NEW'",
+        array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+
+       // We currently don't want to install an extension so let's find out if we need...
+       $EXT_LOAD_MODE = "register"; $JOBS_DONE = true;
+
+       // Open the extension directory
+       $handle = opendir(PATH."inc/extensions/") or mxchange_die("Cannot read extension directory!");
+       while ($file = readdir($handle)) {
+               // Is this file an extension?
+               if ((substr($file, 0, 4) == "ext-") && (substr($file, -4) == ".php")) {
+                       //* DEBUG: */ echo $file."<br />\n";
+                       // Possible newly installed extension found so we extract extension's name
+                       $ext = strtolower(substr($file, 4, -4)); // Keep always extension names on lower case!!!
+
+                       // Check if extension is installed or not
+                       $ext_ver = "";
+                       if ((!is_array($EXTENSIONS['ext_version'])) || (empty($EXTENSIONS['ext_version'][$ext]))) {
+                               // Load data from database
+                               $result = SQL_QUERY_ESC("SELECT id, ext_version FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",
+                                array($ext), __FILE__, __LINE__);
+                       } else {
+                               // Load version from cache
+                               if (!empty($EXTENSIONS['ext_version'][$ext])) {
+                                       // Extension is installed so we can get it's version number
+                                       $ext_ver = $EXTENSIONS['ext_version'][$ext];
+                               } else {
+                                       // Extension is not installed so no version number was found
+                                       $ext_ver = "";
+                               }
+
+                               // Disable load from database
+                               $result = false;
+                       }
+
+                       // Is the extension not yet installed?
+                       if ((SQL_NUMROWS($result) == 0) && (empty($ext_ver))) {
+                               // Not installed and do we have created a task for the admin?
+                               $ext_subj = "[".$ext.":] ".ADMIN_NEW_EXT_SUBJ;
+                               //* DEBUG: */ echo $ext.":".$ext_ver."=";
+                               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE subject='%s' LIMIT 1",
+                                array($ext_subj), __FILE__, __LINE__);
+                               //* DEBUG: */ echo SQL_NUMROWS($result)."<br />\n";
+                               if ((SQL_NUMROWS($result) == 0) && (GET_EXT_VERSION($ext) == ""))
+                               {
+                                       // Template file
+                                       $tpl = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",
+                                               PATH,
+                                               GET_LANGUAGE(),
+                                               $ext
+                                       );
+
+                                       // Load text for task
+                                       if ((file_exists($tpl)) && (is_readable($tpl)))
+                                       {
+                                               // Load extension's own text template (HTML!)
+                                               $MSG = LOAD_TEMPLATE("ext_".$ext, true);
+                                       }
+                                        else
+                                       {
+                                               // Load default message
+                                               $MSG = LOAD_EMAIL_TEMPLATE("admin_new_ext","", 0);
+                                       }
+
+                                       // Task not created so it's a brand-new extension which we need to register and create a task for!
+                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, userid, status, task_type, subject, text, task_created)
+VALUES ('%s', '0', 'NEW', 'EXTENSION', '%s', '%s', UNIX_TIMESTAMP())",
+ array(
+       GET_ADMIN_ID($_COOKIE['admin_login']),
+       $ext_subj,
+       addslashes($MSG),
+),  __FILE__, __LINE__, true, false);
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // We maybe want to install an extension so let's test-drive it...
+                               include(PATH."inc/extensions/".$file);
+                       }
+                        else
+                       {
+                               // Maybe we want to update?
+                               if ((empty($EXTENSIONS['ext_version'][$ext])) && (SQL_NUMROWS($result) == 1))
+                               {
+                                       list($dummy, $ext_ver) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+                               }
+
+                               // Update extension
+                               if (!empty($ext_ver)) EXTENSION_UPDATE($file, $ext, $ext_ver);
+
+                               if (!empty($KEEP_ACTIVE[$ext]))
+                               {
+                                       // Maybe we want to keept the current extension active?
+                                       if (($KEEP_ACTIVE[$ext] == "Y") && (!EXT_IS_ACTIVE($ext, true, true)))
+                                       {
+                                               // Reactivate this extension!
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='Y' WHERE ext_name='%s' LIMIT 1",
+                                                array($ext), __FILE__, __LINE__);
+                                               EXTENSION_RUN_SQLS(GET_EXT_ID($ext), "activate");
+                                       }
+                               }
+                       }
+               }
+       }
+
+       // Close directory handle
+       closedir($handle);
+
+       // At last - but not least - check for own and new unassigned tasks...
+       $result_tasks = SQL_QUERY_ESC("SELECT id, assigned_admin, userid, task_type, subject, text, task_created
+FROM "._MYSQL_PREFIX."_task_system
+WHERE assigned_admin='%s' OR (assigned_admin='0' AND status='NEW')
+ORDER BY userid DESC, task_type DESC, subject, task_created DESC",
+        array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_tasks) > 0)
+       {
+               // New jobs found!
+               $JOBS_DONE = false;
+       }
+
+       return $JOBS_DONE;
+}
+//
+function OUTPUT_SELECTED_TASKS($_POST, $result_tasks)
+{
+       global $CONFIG, $NOTES;
+       if ((isset($_POST['assign'])) && (count($_POST['task']) > 0))
+       {
+               // Assign / do tasks
+               $OUT = ""; $SW = 2;
+               foreach ($_POST['task'] as $id=>$sel)
+               {
+                       $result_task = SQL_QUERY_ESC("SELECT id, userid, task_type, subject, text, task_created, status, assigned_admin FROM "._MYSQL_PREFIX."_task_system WHERE id=%d AND (assigned_admin='%s' OR (assigned_admin='0' AND status='NEW')) LIMIT 1",
+                        array(bigintval($id), GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result_task) == 1)
+                       {
+                               // Task is valid...
+                               list($tid, $uid, $type, $subj, $text, $created, $status, $aid) = SQL_FETCHROW($result_task);
+                               SQL_FREERESULT($result_task);
+                               if ($aid == "0")
+                               {
+                                       // Assgin current admin to unassgigned task
+                                       $result_assign = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='%s' WHERE id=%d LIMIT 1",
+                                        array(GET_ADMIN_ID($_COOKIE['admin_login']), bigintval($tid)), __FILE__, __LINE__);
+                               }
+                               $ADD = "";
+                               if ($type == "SUPPORT_MEMBER")
+                               {
+                                       $mode = substr($text, 0, strpos($text, ":"));
+                                       $text = substr($text, strpos($text, ":") + 1);
+                                       $ADD = "<LI>".ADMIN_TASK_SUPPORT_MODE.": <STRONG>".$mode."</STRONG></LI>";
+                               }
+                               if ($uid > 0)
+                               {
+                                       $result_user = SQL_QUERY_ESC("SELECT sex, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                        array(bigintval($uid)), __FILE__, __LINE__);
+                                       if (SQL_NUMROWS($result_user) == 1)
+                                       {
+                                               list($sex, $sname, $fname, $email) = SQL_FETCHROW($result_user);
+                                               SQL_FREERESULT($result_user);
+                                               $ADD = "<LI>".ADMIN_MEMBER_UID.": <STRONG>".ADMIN_USER_PROFILE_LINK($uid)." (<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".TRANSLATE_SEX($sex)." ".$sname." ".$fname."</A>)</STRONG></LI>";
+                                       }
+                               }
+
+                               // Compile and insert text from task into table template
+                               $text = LOAD_TEMPLATE("admin_extensions_text", true, COMPILE_CODE($text));
+
+                               // Initialize variables (no title for SQL commands by default)
+                               $ext_name = "";
+                               $title = TASK_NO_TITLE;
+
+                               // Shall I list SQL commands assigned to an extension installation or update task?
+                               if (((GET_EXT_VERSION("sql_patches") != "") && ($CONFIG['verbose_sql'] == "Y")) || (!EXT_IS_ACTIVE("sql_patches")))
+                               {
+                                       $ext_name = substr($subj, 1, strpos($subj, ":") - 1);
+                                       if ($type == "EXTENSION")
+                                       {
+                                               // Load SQL commands for registering
+                                               $SQLs = EXTENSION_REGISTER($ext_name, $id, true);
+
+                                               // Add notes to text
+                                               $text .= $NOTES;
+
+                                               // Set title
+                                               $title = ADMIN_SQLS_EXECUTED_ON_REGISTER;
+                                       }
+                                        elseif ($type == "EXTENSION_UPDATE")
+                                       {
+                                               // Load SQL commands for update (already done!)
+                                               $ext_name = substr($ext_name, 7);
+                                               $ext_name = substr($ext_name, 0, strpos($ext_name, "-"));
+                                               $test = "[UPDATE-".$ext_name."-";
+                                               $ext_ver = substr($subj, strlen($test));
+                                               $ext_ver = substr($ext_ver, 0, strpos($ext_ver, ":"));
+
+                                               // Load SQLs from file
+                                               $SQLs = EXTENSION_UPDATE("ext-".$ext_name.".php", $ext_name, $ext_ver, true);
+
+                                               // Add notes to text
+                                               $text .= $NOTES;
+
+                                               // Set title
+                                               $title = ADMIN_SQLS_EXECUTED_ON_UPDATE;
+                                       }
+                                        else
+                                       {
+                                               // Remove extension's name
+                                               $ext_name = "";
+                                       }
+
+                                       // Add SQLs to a table
+                                       if (empty($SQLs)) $SQLs = array();
+                                       if (empty($title)) $title = "";
+                                       if ((!empty($ext_name)) && (GET_EXT_VERSION("sql_patches")) && ($CONFIG['verbose_sql'] == "Y")) {
+                                               // Add verbose SQL table
+                                               $text .= EXTENSION_VERBOSE_TABLE($SQLs, $title, " class=\"admin_table top2 left2 right2\"", true, "100%")."<BR>\n";
+                                       }
+                               }
+                                else
+                               {
+                                       // Run SQL commands in dry mode but only return the notes
+                                       $SQLs = EXTENSION_UPDATE("ext-".$ext_name.".php", $ext_name, $ext_ver, true);
+                                       $text .= $NOTES;
+                               }
+
+                               // Prepare array for the template
+                               $content = array(
+                                       'sw'        => $SW,
+                                       'subj'      => $subj,
+                                       'add'       => $ADD,
+                                       'text'      => $text,
+                                       'created'   => MAKE_DATETIME($created, "1"),
+                                       'extension' => $ext_name
+                               );
+
+                               // Load template
+                               $OUT .= LOAD_TEMPLATE("admin_overview_row", true, $content);
+
+                               // Which task do we actually have here?
+                               switch ($type)
+                               {
+                               case "EXTENSION": // Install new extensions
+                                       $ext_name = substr($subj, 1, strpos($subj, ":") - 1);
+                                       $result_lines = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1",
+                                        array($ext_name), __FILE__, __LINE__);
+                                       $lines = SQL_NUMROWS($result_lines);
+                                       SQL_FREERESULT($result_lines);
+                                       if ($lines == "0")
+                                       {
+                                               // New extension found
+                                               $OUT .= LOAD_TEMPLATE("admin_ext_reg_form", true, array(
+                                                       'id'       => bigintval($id),
+                                                       'ext_name' => $ext_name
+                                               ));
+                                       }
+                                        else
+                                       {
+                                               // Task is closed so nothing is todo
+                                               $OUT .= "<FONT class=\"admin_failed\">".ADMIN_EXT_ALREADY_REGISTERED."</FONT>\n";
+
+                                               // Close task but not already closes or deleted or update tasks
+                                               if (($status != "CLOSED") && ($status != "DELETED") && ($type != "EXTENSION_UPDATE"))
+                                               {
+                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",
+                                                        array(bigintval($tid)), __FILE__, __LINE__);
+                                               }
+                                       }
+                                       break;
+
+                               case "EXTENSION_UPDATE":
+                                       // Extension updates are installed automatically
+                                       $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_EXTENSION_UPDATED."</FONT>\n";
+
+                                       // Close task
+                                       if (($status != "CLOSED") && ($status != "DELETED"))
+                                       {
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",
+                                                array(bigintval($tid)), __FILE__, __LINE__);
+                                       }
+                                       break;
+
+                               case "SUPPORT_MEMBER": // Assign on member's support request
+                                       switch ($mode)
+                                       {
+                                       default: // Unknown support mode
+                                               $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_UNKNOWN_SUPPORT_MODE_1.$mode.ADMIN_UNKNOWN_SUPPORT_MODE_2."</FONT>\n";
+                                               break;
+                                       }
+                                       break;
+
+                               case "PAYOUT_REQUEST": // Payout requests
+                                       if (EXT_IS_ACTIVE("payout"))
+                                       {
+                                               // Extension is installed so let him send a notification to the user
+                                               $result_pay = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_payouts WHERE userid=%d AND payout_timestamp=%d LIMIT 1",
+                                                array(bigintval($uid), bigintval($created)), __FILE__, __LINE__);
+                                               list($pid) = SQL_FETCHROW($result_pay);
+                                               SQL_FREERESULT($result_pay);
+
+                                               if ((!empty($pid)) && ($pid > 0))
+                                               {
+                                                       // Payout ID can be obtained
+                                                       $content = array(
+                                                               'pid' => $pid,
+                                                               'tid' => $tid,
+                                                       );
+                                                       $OUT .= LOAD_TEMPLATE("admin_payout_overview_form", true, $content);
+                                               }
+                                                else
+                                               {
+                                                       // Problem obtaining payout ID
+                                                       $OUT .= "<FONT class=\"admin_failed medium\">".PAYOUT_OBTAIN_ID_FAILED."</FONT>\n";
+                                               }
+                                       }
+                                        else
+                                       {
+                                               // Extension is not installed
+                                               $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_PAYOUT_NOT_INSTALLED."</FONT>\n";
+                                       }
+                                       break;
+
+                               case "WERNIS_REQUEST": // Wernis requests
+                                       if (EXT_IS_ACTIVE("wernis"))
+                                       {
+                                               // Extension is installed so let him send a notification to the user
+                                               $result_pay = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_wernis WHERE userid=%d AND wernis_timestamp=%d LIMIT 1",
+                                                array(bigintval($uid), bigintval($created)), __FILE__, __LINE__);
+                                               list($pid) = SQL_FETCHROW($result_pay);
+                                               SQL_FREERESULT($result_pay);
+
+                                               if ((!empty($pid)) && ($pid > 0))
+                                               {
+                                                       // Payout ID can be obtained
+                                                       $content = array(
+                                                               'pid' => $pid,
+                                                               'tid' => $tid,
+                                                       );
+                                                       $OUT .= LOAD_TEMPLATE("admin_wernis_overview_form", true, $content);
+                                               }
+                                                else
+                                               {
+                                                       // Problem obtaining wernis ID
+                                                       $OUT .= "<FONT class=\"admin_failed medium\">".WERNIS_OBTAIN_ID_FAILED."</FONT>\n";
+                                               }
+                                       }
+                                        else
+                                       {
+                                               // Extension is not installed
+                                               $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_WERNIS_NOT_INSTALLED."</FONT>\n";
+                                       }
+                                       break;
+
+                               case "HOLIDAY_REQUEST": // Holiday requests
+                                       $OUT .= LOAD_TEMPLATE("admin_task_holiday", true, $uid);
+                                       break;
+
+                               case "NL_UNSUBSCRIBE": // Newsletter unsubscriptions
+                                       $result = SQL_QUERY_ESC("SELECT nl_timespan FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                        array(bigintval($uid)), __FILE__, __LINE__);
+                                       list($span) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+
+                                       if ($span > 0)
+                                       {
+                                               // Undone unscubscribe request
+                                               $content = array(
+                                                       'uid' => $uid,
+                                                       'id'  => $tid
+                                               );
+                                               $OUT .= LOAD_TEMPLATE("admin_newsletter_tsk", true, $content);
+                                       }
+                                        else
+                                       {
+                                               // Already unsubscribed
+                                               $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_NL_UNSUBSCRIBE_ALREADY."</FONT>\n";
+                                       }
+                                       break;
+
+                               default: // Unknown task type
+                                       $OUT .= "<FONT class=\"admin_failed medium\">".ADMIN_UNKNOWN_TASK_TYPE_1.$type.ADMIN_UNKNOWN_TASK_TYPE_2.$id.ADMIN_UNKNOWN_TASK_TYPE_3."</FONT>\n";
+                                       break;
+                               }
+                               $OUT .= "  </TD>
+  <TD width=\"1%\" class=\"switch_sw".$SW." bottom2 right2\">&nbsp;</TD>
+</TR>\n";
+                       }
+                       $SW = 3 - $SW;
+               }
+               define('__TASK_ROWS', $OUT);
+
+               // Load final template
+               LOAD_TEMPLATE("admin_overview_list");
+       }
+        else
+       {
+               if ((isset($_POST['task'])) && ((sizeof($_POST['task']) > 0) || ($_POST['task'][0] == "1")))
+               {
+                       // Only unassign / delete tasks when there are selected tasks posted
+                       if (!empty($_POST['unassign']))
+                       {
+                               // Unassign from tasks
+                               foreach ($_POST['task'] as $id=>$sel)
+                               {
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='0' WHERE id=%d AND assigned_admin='%s' LIMIT 1",
+                                        array(bigintval($id), GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+                               }
+                       }
+                        elseif (isset($_POST['del']))
+                       {
+                               // Delete tasks
+                               foreach ($_POST['task'] as $id=>$sel)
+                               {
+                                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE id=%d AND (assigned_admin='%s' OR assigned_admin='0') LIMIT 1",
+                                        array(bigintval($id), GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+                               }
+                       }
+
+                       // Update query
+                       $result_tasks = SQL_QUERY_ESC("SELECT id, assigned_admin, userid, task_type, subject, text, task_created FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='%s' OR (assigned_admin='0' AND status='NEW') ORDER BY task_created DESC",
+                        array(GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+               }
+
+               // There are uncompleted jobs!
+               LOAD_TEMPLATE("admin_overview_header");
+               $SW = 2;
+               while (list($id, $admin, $uid, $type, $subj, $text, $created) = SQL_FETCHROW($result_tasks))
+               {
+                       $infos = "---";
+                       if ($admin == "0")
+                       {
+                               // No admin currently is assigned
+                               $admin = "<FONT class=\"admin_note\">".ADMIN_NO_ADMIN_ASSIGNED."</FONT>";
+                       }
+                        else
+                       {
+                               // Load admin's data
+                               $login = GET_ADMIN_LOGIN($admin);
+                               if ($login != "***")
+                               {
+                                       // Admin found
+                                       $admin = "<A href=\"".URL."/modules.php?module=admin&amp;what=admins_contct&amp;admin=".$admin."\">".$login."</A>";
+                               }
+                                else
+                               {
+                                       // Maybe deleted?
+                                       $admin = "<FONT class=\"admin_note\">".ADMIN_ID_404_1.$admin.ADMIN_ID_404_2."</FONT>";
+                               }
+                       }
+                       $evl = "\$type_out = ADMIN_TASK_IS_".strtoupper($type).";";
+                       eval($evl);
+                       $type2 = substr($text, 0, strpos($text, ":"));
+                       // Generate infos
+                       switch ($type)
+                       {
+                       case "EXTENSION":
+                       case "EXTENSION_UPDATE":
+                               $infos = substr($subj, 1, strpos($subj, ":") - 1);
+                               break;
+                       }
+                       if ($uid > 0)
+                       {
+                               // Member found otherwise it's a system task
+                               $uid = ADMIN_USER_PROFILE_LINK($uid);
+                       }
+                        else
+                       {
+                               $uid = "<I>".ADMIN_IS_SYSTEM_TASK."</I>";
+                       }
+
+                       $content = array(
+                               'sw'      => $SW,
+                               'id'      => $id,
+                               'admin'   => $admin,
+                               'infos'   => $infos,
+                               'uid'     => $uid,
+                               'type'    => $type_out,
+                               'created' => MAKE_DATETIME($created, "2")
+                       );
+
+                       LOAD_TEMPLATE("admin_overview_list_rows", false, $content);
+                       $SW = 3 - $SW;
+               }
+               // Free memory
+               SQL_FREERESULT($result_tasks);
+
+               // Load footer template
+               LOAD_TEMPLATE("admin_overview_footer");
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what- b/0.2.1/inc/modules/admin/what-
new file mode 100644 (file)
index 0000000..f5e1bd3
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 02/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-add_bank_package.php b/0.2.1/inc/modules/admin/what-add_bank_package.php
new file mode 100644 (file)
index 0000000..87815ff
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/31/2007 *
+ * ================                             Last change: 05/31/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-add_bank_package.php                        *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Is the formular sent?
+if (isset($_POST['ok'])) {
+       // Save the row to the database
+       ADMIN_SAVE_SETTINGS($_POST, "_bank_packages", "", array("account_fee", "interest_plus", "interest_minus", "first_payment"), true);
+} else {
+       // Display form
+       LOAD_TEMPLATE("admin_add_bank_package");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-add_guestnl_cat.php b/0.2.1/inc/modules/admin/what-add_guestnl_cat.php
new file mode 100644 (file)
index 0000000..2ae7ea3
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/05/2005 *
+ * ================                             Last change: 02/05/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-add_guestnl_cat.php                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Add newsletter category                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Newsletter-Kategorie hinzufuegen                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Check if category does already exist
+}
+ else
+{
+       // Display form
+       LOAD_TEMPLATE("admin_add_guestnl_cat");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-add_points.php b/0.2.1/inc/modules/admin/what-add_points.php
new file mode 100644 (file)
index 0000000..2a840db
--- /dev/null
@@ -0,0 +1,144 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/23/2003 *
+ * ===============                              Last change: 09/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-add_points.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Add manually points to a user                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Manuell einem Mitglied Punkte gutschreiben       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Fix a notice
+if (!isset($_GET['u_id'])) $_GET['u_id'] = "";
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if ($_GET['u_id'] == "all")
+{
+       // Add points to all accounts
+       if ((isset($_POST['ok'])) && ($_POST['points'] > 0))
+       {
+               define('__POINTS_VALUE', $_POST['points']);
+               $result_main = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' ORDER BY userid", __FILE__, __LINE__);
+               while (list($uid) = SQL_FETCHROW($result_main))
+               {
+                       // User ID found in URL so we use this give him some credits
+                       $result = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                        array(bigintval($uid)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Selected user does exist
+                               list($sname, $fname, $email) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               if ((isset($_POST['ok'])) && (!empty($_POST['points'])))
+                               {
+                                       // Ok, add points and send an email to him...
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+(%s) WHERE userid=%d AND ref_depth='0' LIMIT 1",
+                                        array($_POST['points'], bigintval($uid)), __FILE__, __LINE__);
+
+                                       // Update mediadata as well
+                                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                                       {
+                                               // Update database
+                                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $_POST['points']);
+                                       }
+
+                                       // Load email template and send email away
+                                       $msg = LOAD_EMAIL_TEMPLATE("add-points", $_POST['reason'], $uid);
+                                       SEND_EMAIL($email, ADMIN_ADD_SUBJ, $msg);
+                               }
+                       }
+               }
+
+               // Free memory
+               SQL_FREERESULT($result_main);
+
+               // Output message
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_ALL_POINTS_ADDED);
+       }
+        else
+       {
+               // Display form add points
+               LOAD_TEMPLATE("admin_add_points_all");
+       }
+}
+ elseif (!empty($_GET['u_id']))
+{
+       // User ID found in URL so we use this give him some credits
+       $result = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Selected user does exist
+               list($sname, $fname, $email) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               if ((isset($_POST['ok'])) && (!empty($_POST['points'])))
+               {
+                       // Ok, add points and send an email to him...
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+(%s) WHERE userid=%d AND ref_depth='0' LIMIT 1",
+                        array($_POST['points'], bigintval($_GET['u_id'])), __FILE__, __LINE__);
+
+                       // Remember points in constant
+                       define('__POINTS_VALUE', $_POST['points']);
+
+                       // Message laden
+                       $msg = LOAD_EMAIL_TEMPLATE("add-points", $_POST['reason'], $_GET['u_id']);
+
+                       SEND_EMAIL($email, ADMIN_ADD_SUBJ, $msg);
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_POINTS_ADDED);
+               }
+                else
+               {
+                       // Opps, missing form here
+                       define('__USER_VALUE', "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".$sname." ".$fname."</A>");
+                       define('__UID_VALUE', $_GET['u_id']);
+                       LOAD_TEMPLATE("admin_add_points");
+               }
+       }
+        else
+       {
+               // User not found!
+               OUTPUT_HTML ("<STRONG class=\"admin_failed\">".ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2."</STRONG>");
+       }
+}
+ else
+{
+       // Output selection form with all confirmed user accounts listed
+       ADD_MEMBER_SELECTION_BOX(true);
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-add_rallye.php b/0.2.1/inc/modules/admin/what-add_rallye.php
new file mode 100644 (file)
index 0000000..0aa241d
--- /dev/null
@@ -0,0 +1,130 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/29/2004 *
+ * ================                             Last change: 08/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-add_rallye.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Add new rallye                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Neue Ref-Rallye einfuegen                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Generate timestamps
+       $START = mktime($_POST['start_hour'], $_POST['start_min'], $_POST['start_sec'], $_POST['start_month'], $_POST['start_day'], $_POST['start_year']);
+       $END   = mktime($_POST['end_hour']  , $_POST['end_min']  , $_POST['end_sec']  , $_POST['end_month']  , $_POST['end_day']  , $_POST['end_year']  );
+
+       // Is there already a rallye running?
+       $result = SQL_QUERY_ESC("SELECT id, admin_id FROM "._MYSQL_PREFIX."_rallye_data WHERE (start_time <= %s AND end_time >= %s) OR (start_time >= %s AND start_time <= %s) LIMIT 1",
+        array($START, $START, $START, $END), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Ok, start and end time did not overlap
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_rallye_data (admin_id, title, descr, template, start_time, end_time, auto_add_new_user, is_active, send_notify)
+VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
+ array(
+       GET_ADMIN_ID($_COOKIE['admin_login']),
+       $_POST['title'],
+       $_POST['descr'],
+       $_POST['template'],
+       $START,
+       $END,
+       $_POST['auto_add'],
+       $_POST['active'],
+       $_POST['notify'],
+), __FILE__, __LINE__);
+
+               // Load ID
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_data WHERE start_time='%s' AND end_time='%s' AND title='%s' LIMIT 1",
+                array($START, $END, $_POST['title']), __FILE__, __LINE__);
+               list($id) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               if (!empty($id))
+               {
+                       // Reload to prices...
+                       LOAD_URL(URL."/modules.php?module=admin&amp;what=config_rallye_prices&rallye=".$id);
+               }
+                else
+               {
+                       // Problem detected...
+                       LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_PROBLEM_CREATE);
+               }
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Overlapping detected
+               LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_OVERLAP_TIMES);
+       }
+}
+
+// Prepare some constants for the template
+define('_AUTO_ADD_OPTIONS', ADD_OPTION_LINES("/ARRAY/", array('Y', 'N'), array(YES, NO )));
+define('_ACTIVE_OPTIONS'  , ADD_OPTION_LINES("/ARRAY/", array('N', 'Y'), array(NO , YES)));
+define('_NOTIFY_OPTIONS'  , ADD_OPTION_LINES("/ARRAY/", array('Y', 'N'), array(YES, NO )));
+
+// Starting day
+define('_START_SEC'  , ADD_SELECTION("sec"  , "0"              , "start"));
+define('_START_MIN'  , ADD_SELECTION("min"  , "0"              , "start"));
+define('_START_HOUR' , ADD_SELECTION("hour" , date("G", time()), "start"));
+define('_START_DAY'  , ADD_SELECTION("day"  , date("d", time()), "start"));
+define('_START_MONTH', ADD_SELECTION("month", date("m", time()), "start"));
+define('_START_YEAR' , ADD_SELECTION("year" , date("Y", time()), "start"));
+
+// Calcualte ending date
+$D = date("d", time() + (ONE_DAY * 7));
+$M = date("m", time() + (ONE_DAY * 7));
+$Y = date("Y", time() + (ONE_DAY * 7));
+
+// Ending day
+define('_END_SEC'  , ADD_SELECTION("sec"  , "0"              , "end"));
+define('_END_MIN'  , ADD_SELECTION("min"  , "0"              , "end"));
+define('_END_HOUR' , ADD_SELECTION("hour" , date("G", time()), "end"));
+define('_END_DAY'  , ADD_SELECTION("day"  , $D               , "end"));
+define('_END_MONTH', ADD_SELECTION("month", $M               , "end"));
+define('_END_YEAR' , ADD_SELECTION("year" , $Y               , "end"));
+
+// Transfer (maybe found) templates into constant for the template
+define ('_TEMPLATES', RALLYE_TEMPLATE_SELECTION());
+
+// Load template
+LOAD_TEMPLATE("admin_add_rallye");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-admin_add.php b/0.2.1/inc/modules/admin/what-admin_add.php
new file mode 100644 (file)
index 0000000..bd2d9f1
--- /dev/null
@@ -0,0 +1,208 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/27/2003 *
+ * ===============                              Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-admin_add.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Add more entries to the admin menu               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mehr Menueeintraege zum Admin-Bereich einfuegen  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+
+// Check if the admin has entered title and what-php file name...
+if (((empty($_POST['title'])) || (empty($_POST['menu'])) || (empty($_POST['descr']))) && (isset($_POST['ok'])))
+{
+       unset($_POST['ok']);
+}
+
+if (!isset($_POST['ok']))
+{
+       // Create arrays
+       $menus = array(); $titles = array(); $below = array();
+
+       // Get all available main menus
+       $result = SQL_QUERY("SELECT action, title, sort FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' ORDER BY sort", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Read menu structure
+               while (list($act, $title, $sort) = SQL_FETCHROW($result))
+               {
+                       // Menu actions
+                       $menus[] = $act;
+
+                       // Menu titles
+                       $titles[] = $title;
+
+                       // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
+                       $below[] = $sort + 1;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Remove double eintries
+               $prev = ""; $dmy = $menus; $dmy2 = $titles; $dmy3 = $below;
+               foreach ($menus as $key=>$value)
+               {
+                       if ($value == $prev)
+                       {
+                               unset($dmy[$key]);
+                               unset($dmy2[$key]);
+                               unset($dmy3[$key]);
+                       }
+                        else
+                       {
+                               $prev = $value;
+                       }
+               }
+               $menus = $dmy; $titles = $dmy2; $below = $dmy3;
+               // Load sub menus :)
+               foreach ($menus as $key_main=>$value_main)
+               {
+                       $result = SQL_QUERY_ESC("SELECT what, title, sort FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND what != '' ORDER BY sort",
+                        array($value_main), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) > 0)
+                       {
+                               $menus[$value_main] = array();
+                               $titles[$value_main] = array();
+                               $below[$value_main] = array();
+                               // Read menu structure
+                               while (list($act, $title, $sort) = SQL_FETCHROW($result))
+                               {
+                                       // Menu actions
+                                       $menus[$value_main][] = $act;
+
+                                       // Menu titles
+                                       $titles[$value_main][] = $title;
+
+                                       // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
+                                       $below[$value_main][] = $sort + 1;
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // Remove double eintries
+                               $prev = ""; $dmy = $menus[$value_main]; $dmy2 = $titles[$value_main]; $dmy3 = $below[$value_main];
+                               foreach ($menus[$value_main] as $key=>$value)
+                               {
+                                       if ($value == $prev)
+                                       {
+                                               unset($dmy[$key]);
+                                               unset($dmy2[$key]);
+                                               unset($dmy3[$key]);
+                                       }
+                                        else
+                                       {
+                                               $prev = $value;
+                                       }
+                               }
+                               $menus[$value_main] = $dmy; $titles[$value_main] = $dmy2; $below[$value_main] = $dmy3;
+                       }
+               }
+       }
+       $OUT = "    <SELECT class=\"admin_select\" name=\"sort\" size=\"1\">
+      <OPTION value=\"0\">".IS_FIRST_MENU."</OPTION>\n";
+       foreach ($below as $key=>$m)
+       {
+               if (is_array($m))
+               {
+                       foreach ($m as $key2=>$m2)
+                       {
+                               $OUT .= "      <OPTION value=\"".$m2."\">".$titles[$key][$key2];
+                               foreach ($menus as $k=>$v)
+                               {
+                                       if (($v == $key) && (!is_array($v)))
+                                       {
+                                               $OUT .= " (".$titles[$k].")";
+                                       }
+                               }
+                               $OUT .= "</OPTION>\n";
+                       }
+               }
+                else
+               {
+                       $OUT .= "      <OPTION value=\"".$m."\">".$titles[$key]."</OPTION>\n";
+               }
+       }
+       $OUT .= "</SELECT>";
+
+       define('__BELOW_SELECTION' , $OUT);
+       define('__WHAT_SELECTION'  , ADMIN_MAKE_MENU_SELECTION("admin", "what", "name"));
+       define('__ACTION_SELECTION', ADMIN_MAKE_MENU_SELECTION("admin", "action", "menu"));
+
+       // Display form
+       LOAD_TEMPLATE("admin_admin_add");
+}
+ elseif (!IS_DEMO())
+{
+       // Insert new menu entry
+       if (!empty($_POST['menu']))
+       {
+               // Add sub menu
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort)
+VALUES('%s', '%s', '%s', '%s', '%s')",
+ array(
+       $_POST['menu'],
+       $_POST['name'],
+       $_POST['title'],
+       addslashes($_POST['descr']),
+       bigintval($_POST['sort']),
+), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Add main menu
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, title, descr, sort)
+VALUES('%s', '%s', '%s', '%s')",
+ array(
+       $_POST['name'],
+       $_POST['title'],
+       addslashes($_POST['descr']),
+       bigintval($_POST['sort']),
+), __FILE__, __LINE__);
+       }
+       LOAD_TEMPLATE("admin_settings_saved", false, SAVING_DONE);
+}
+ else
+{
+       // Is demo login!
+       LOAD_TEMPLATE("admin_settings_saved", false, SETTINGS_NOT_SAVED);
+}
+CLOSE_TABLE();
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-adminedit.php b/0.2.1/inc/modules/admin/what-adminedit.php
new file mode 100644 (file)
index 0000000..803b98b
--- /dev/null
@@ -0,0 +1,308 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-adminedit.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Edit the admin menu                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Das Admin-Menue editieren                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Do we edit/delete/change main menus or sub menus?
+$AND = "what=''"; $SUB = "";
+if (!empty($_GET['sub']))
+{
+       $AND = sprintf("action='%s'", SQL_ESCAPE($_GET['sub']));
+       $SUB = SQL_ESCAPE($_GET['sub']);
+}
+
+// Get count of (maybe) selected menu points
+$chk = 0;
+if (!empty($_POST['sel'])) $chk = SELECTION_COUNT($_POST['sel']);
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+
+// List all menu points and make them editable
+OUTPUT_HTML ("<BR><BR></FONT>
+<DIV align=\"center\">");
+if ((isset($_POST['edit'])) && ($chk > 0) && (!IS_DEMO()))
+{
+       // Edit menu entries
+       define('__SUB_VALUE', $SUB);
+       define('__CHK_VALUE', $chk);
+       $cnt = 0; $SW = 2;
+       foreach ($_POST['sel'] as $sel=>$confirm)
+       {
+               if ($confirm == 1)
+               {
+                       $cnt++;
+                       $result = SQL_QUERY_ESC("SELECT title, action, what, descr FROM "._MYSQL_PREFIX."_admin_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Entry found so we load the stuff...
+                               list($menu, $act, $wht, $descr) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               // Prepare data for the row template
+                               $content = array(
+                                       'action' => ADMIN_MAKE_MENU_SELECTION("admin", "action", "sel_action[".$sel."]", $act),
+                                       'what'   => ADMIN_MAKE_MENU_SELECTION("admin", "what", "sel_what[".$sel."]", $wht),
+                                       'sw'     => $SW,
+                                       'sel'    => $sel,
+                                       'menu'   => $menu,
+                                       'descr'  => $descr,
+                                       'cnt'    => $cnt,
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_amenu_edit_row", true, $content);
+                       }
+                        else
+                       {
+                               // Entry not found?
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'sel' => $sel
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);
+                       }
+                       $SW = 3 - $SW;
+               }
+       }
+       define('__MENU_ROWS', $OUT);
+       define('__CNT_VALUE', $cnt);
+
+       // Load template
+       LOAD_TEMPLATE("admin_amenu_edit_form");
+}
+ elseif ((isset($_POST['del'])) && (!IS_DEMO()))
+{
+       define('__SUB_VALUE', $SUB);
+       define('__CHK_VALUE', $chk);
+       // Del menu entries with or without confirmation
+       $SW = 2; $cnt = 0; $OUT = "";
+       foreach ($_POST['sel'] as $sel=>$confirm)
+       {
+               if ($confirm == 1)
+               {
+                       $cnt++;
+                       $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_admin_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Entry found so we load the stuff...
+                               list($menu) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               // Prepare data for the row template
+                               $content = array(
+                                       'menu' => $menu,
+                                       'cnt'  => $cnt,
+                                       'sel'  => $sel,
+                                       'sw'   => $SW
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_amenu_delete_row", true, $content);
+                       }
+                        else
+                       {
+                               // Entry not found?
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'sel' => $sel
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);
+                       }
+                       $SW = 3 - $SW;
+               }
+       }
+       define('__MENU_ROWS', $OUT);
+       define('__CNT_VALUE', $cnt);
+
+       // Load template
+       LOAD_TEMPLATE("admin_amenu_delete");
+}
+ elseif ((isset($_POST['ok'])) && (!IS_DEMO()))
+{
+       // An action is done...
+       switch ($_POST['ok'])
+       {
+       case "edit": // Edit menu
+               foreach ($_POST['sel'] as $sel=>$menu)
+               {
+                       // Secure ID
+                       $sel = bigintval($sel);
+
+                       // Update entry
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET
+title='%s',
+action='%s',
+what='%s',
+descr='%s'
+WHERE ".$AND." AND id=%d LIMIT 1",
+ array(
+       $menu,
+       $_POST['sel_action'][$sel],
+       $_POST['sel_what'][$sel],
+       addslashes($_POST['sel_desc'][$sel]),
+       $sel,
+), __FILE__, __LINE__);
+               }
+               LOAD_TEMPLATE("admin_data_saved");
+               break;
+
+       case "del": // Delete menu
+               foreach ($_POST['sel'] as $sel=>$menu)
+               {
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+               }
+               LOAD_TEMPLATE("admin_data_saved");
+               break;
+
+       default: // Unexpected action
+               define('__OK_VALUE', $_POST['ok']);
+               LOAD_TEMPLATE("admin_menu_unknown_okay");
+               break;
+       }
+}
+ else
+{
+       if ((!empty($_GET['act'])) && (!empty($_GET['tid'])) && (!empty($_GET['fid'])))
+       {
+               // Get IDs
+               if (!empty($_GET['w']))
+               {
+                       // Sub menus selected
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND sort='%s' LIMIT 1",
+                        array($_GET['act'], bigintval($_GET['tid'])), __FILE__, __LINE__);
+                       list($tid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND sort='%s' LIMIT 1",
+                        array($_GET['act'], bigintval($_GET['fid'])), __FILE__, __LINE__);
+                       list($fid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // Main menu selected
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' AND sort='%s' LIMIT 1",
+                        array(bigintval($_GET['tid'])), __FILE__, __LINE__);
+                       list($tid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' AND sort='%s' LIMIT 1",
+                        array(bigintval($_GET['fid'])), __FILE__, __LINE__);
+                       list($fid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+
+               if ((!empty($tid)) && (!empty($fid)))
+               {
+                       // Sort menu
+                       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($_GET['tid']), bigintval($fid)), __FILE__, __LINE__);
+                       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($_GET['fid']), bigintval($tid)), __FILE__, __LINE__);
+               }
+       }
+
+       // By default list menus
+       if (!empty($SUB))
+       {
+               // Sub menus of a main menu
+               $result = SQL_QUERY_ESC("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND what != '' ORDER BY sort ASC",
+                array($SUB), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Main menus
+               $result = SQL_QUERY("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' ORDER BY sort ASC", __FILE__, __LINE__);
+       }
+       $max = SQL_NUMROWS($result);
+       if ($max > 0)
+       {
+               define('__SUB_VALUE', $SUB);
+               $SW = 2; $cnt = 0; $OUT = "";
+               while (list($id, $act, $wht, $title, $sort) = SQL_FETCHROW($result))
+               {
+                       $cnt++;
+                       if (($sort == 0) || (($sort == 1) && (!empty($SUB))))
+                       {
+                               // Is highest position
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=adminedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";
+                       }
+                        elseif ($cnt == $max)
+                       {
+                               // Is lowest position
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=adminedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>";
+                       }
+                        elseif ($sort > 0)
+                       {
+                               // Anything else between highest and lowest
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=adminedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>/<A href=\"".URL."/modules.php?module=admin&amp;what=adminedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";
+                       }
+
+                       if (empty($act)) $act = "&nbsp;";
+                       if (empty($wht))   $wht   = "&nbsp;";
+                       if (empty($title))  $title  = "&nbsp;";
+
+                       $content = array(
+                               'sw'     => $SW,
+                               'id'     => $id,
+                               'action' => $act,
+                               'what'   => $wht,
+                               'title'  => $title,
+                               'navi'   => $NAVI,
+                               'mode'   => "admin",
+                       );
+                       $OUT .= LOAD_TEMPLATE("admin_menu_overview_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__MENU_ROWS', $OUT);
+
+               // Load template
+               LOAD_TEMPLATE("admin_amenu_edit");
+       }
+        else
+       {
+               // Menu entries are missing... (???)
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_MENUS_FOUND);
+       }
+}
+OUTPUT_HTML ("</DIV>");
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-admins_add.php b/0.2.1/inc/modules/admin/what-admins_add.php
new file mode 100644 (file)
index 0000000..c307378
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/12/2004 *
+ * ================                             Last change: 04/18/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-admins_add.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Add new administrator account                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Neues Administrator-Account anlegen              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+global $CACHE;
+
+// Display form is default
+$FORM = true;
+
+if ((isset($_POST['add'])) && (!empty($_POST['login'])) && (!empty($_POST['email'])) && (!empty($_POST['pass1'])) && (!empty($_POST['pass2'])) && ($_POST['pass1'] == $_POST['pass2']))
+{
+       // Add admin when not added already
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+        array($_POST['login']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Login does not exist so we can create it.
+               $FORM = false;
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admins (login, password, email) VALUES ('%s', '%s', '%s')",
+                array($_POST['login'], generateHash($_POST['pass1']), $_POST['email']), __FILE__, __LINE__);
+
+               // Admin login saved
+               LOAD_TEMPLATE ("admin_settings_saved", false, "<FONT class=\"admin_done\">".ADMIN_ADMINS_ADD_DONE."</FONT>");
+
+               // Remove cache file
+               if (EXT_IS_ACTIVE("cache"))
+               {
+                       if ($CACHE->cache_file("admins", true)) $CACHE->cache_destroy();
+               }
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+}
+
+if ($FORM)
+{
+       // Clear unset variables
+       if (empty($_POST['login'])) $_POST['login'] = "";
+       if (empty($_POST['email'])) $_POST['email'] = "";
+
+       // Load form from template
+       LOAD_TEMPLATE("admin_admins_add");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-admins_contact.php b/0.2.1/inc/modules/admin/what-admins_contact.php
new file mode 100644 (file)
index 0000000..e7f29e1
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/19/2004 *
+ * ================                             Last change: 06/19/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-admins_contact.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Contact an admin through mail or message         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Admin per Mail oder Nachricht kontaktieren       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (($_POST['ok'] != "") && ($_GET['admin'] != ""))
+{
+       // Send mail or message
+       if ((EXT_IS_ACTIVE("msg")) && ($_POST['type'] == "msg"))
+       {
+               // Add message
+               $msg = LOAD_EMAIL_TEMPLATE("admins_msg_contact_admin", $_POST['text'], "0");
+               SEND_ADMIN_MESSAGE($_GET['admin'], ADMINS_MSG_FROM_ADMIN, $msg);
+       }
+        else
+       {
+               // Send mail
+               $result = SQL_QUERY("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE id='".$_GET['admin']."' LIMIT 1", __FILE__, __LINE__);
+               list($email) = SQL_FETCHROW($result);
+               $msg = LOAD_EMAIL_TEMPLATE("admins_mail_contact_admin", $_POST['text'], "0");
+               SEND_EMAIL($email, ADMINS_MSG_FROM_ADMIN, $msg);
+       }
+       // Mail / message dropped
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMINS_ADMIN_CONTACTED);
+}
+ elseif ($_GET['admin'] != "")
+{
+       // Load contact form template
+       define('__ADMIN', $_GET['admin']);
+       if (EXT_IS_ACTIVE("msg"))
+       {
+               // Add option to select between mail and message
+               define('ADMINS_MESSAGING_SELECTION', "<TR>
+  <TD colspan=\"3\" align=\"center\" class=\"admin_title bottom2\" height=\"28\">".ADMINS_SELECT_CONTACT_TYPE."</TD>
+</TR>
+<TR><TD colspan=\"3\" class=\"seperator\">&nbsp;</TD></TR>
+<TR>
+  <TD align=\"right\"><INPUT type=\"radio\" name=\"type\" class=\"admin_normal\" value=\"mail\" checked>&nbsp;".ADMINS_CONTACT_TYPE_MAIL."</TD>
+  <TD width=\"10\" class=\"seperator\">&nbsp;</TD>
+  <TD><INPUT type=\"radio\" name=\"type\" class=\"admin_normal\" value=\"msg\">&nbsp;".ADMINS_CONTACT_TYPE_MSG."</TD>
+</TR>");
+       }
+        else
+       {
+               // Outout hidden input
+               define('ADMINS_MESSAGING_SELECTION', "<TR>
+  <TD colspan=\"3\" align=\"center\" class=\"admin_title bottom2\" height=\"28\">
+    ".ADMINS_CONTACT_DEFAULT_MAIL."
+    <INPUT type=\"hidden\" name=\"type\" value=\"mail\">
+  </TD>
+</TR>");
+       }
+       LOAD_TEMPLATE("admin_admins_contact_form");
+}
+ else
+{
+       // Please select an admin!
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMINS_SELECT_ADMIN);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-admins_contct.php b/0.2.1/inc/modules/admin/what-admins_contct.php
new file mode 100644 (file)
index 0000000..16bdb4c
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/19/2004 *
+ * ================                             Last change: 06/19/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-admins_contct.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Contact an admin through mail or message         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Admin per Mail oder Nachricht kontaktieren       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if ((isset($_POST['ok'])) && (!empty($_GET['admin'])))
+{
+       // Send mail or message
+       if ((EXT_IS_ACTIVE("msg")) && ($_POST['type'] == "msg"))
+       {
+               // Add message
+               $msg = LOAD_EMAIL_TEMPLATE("admins_msg_contct_admin", $_POST['text'], "0");
+               SEND_ADMIN_MESSAGE($_GET['admin'], ADMINS_MSG_FROM_ADMIN, $msg);
+       }
+        else
+       {
+               // Load admin's email address
+               $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE id=%d LIMIT 1",
+                array(bigintval($_GET['admin'])), __FILE__, __LINE__);
+               list($email) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Load email template and send the mail to the admin
+               $msg = LOAD_EMAIL_TEMPLATE("admins_mail_contct_admin", $_POST['text'], "0");
+               SEND_EMAIL($email, ADMINS_MSG_FROM_ADMIN, $msg);
+       }
+       // Mail / message dropped
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMINS_ADMIN_CONTACTED);
+}
+ elseif (!empty($_GET['admin']))
+{
+       // Load contact form template
+       define('__ADMIN', $_GET['admin']);
+       if (EXT_IS_ACTIVE("msg"))
+       {
+               // Add option to select between mail and message
+               define('ADMINS_MESSAGING_SELECTION', LOAD_TEMPLATE("admin_admins_contct_select", true));
+       }
+        else
+       {
+               // Outout hidden input
+               define('ADMINS_MESSAGING_SELECTION', LOAD_TEMPLATE("admin_admins_contct_default", true));
+       }
+       LOAD_TEMPLATE("admin_admins_contct_form");
+}
+ else
+{
+       // Please select an admin!
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMINS_SELECT_ADMIN);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-admins_edit.php b/0.2.1/inc/modules/admin/what-admins_edit.php
new file mode 100644 (file)
index 0000000..49d9b21
--- /dev/null
@@ -0,0 +1,277 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/18/2004 *
+ * ================                             Last change: 04/18/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-admins_edit.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Edit admin accounts                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Admin-Account editieren                          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Instance for the cache extension
+global $CACHE;
+
+// Set selection data to empty array when it is empty
+if (empty($_POST['sel'])) $_POST['sel'] = array();
+
+// Check if direct admin account was selected
+if (!empty($_GET['admin']))
+{
+       // Secure ID number
+       $aid = bigintval($_GET['admin']);
+       $_POST['edit'] = "1";
+       $_POST['sel'][$aid] = array("1");
+}
+
+if ((isset($_POST['edit'])) && (SELECTION_COUNT($_POST['sel']) > 0))
+{
+       // Edit account(s)
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               $result = SQL_QUERY_ESC("SELECT login, email, default_acl AS mode, la_mode FROM "._MYSQL_PREFIX."_admins WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Entry found
+                       $content = SQL_FETCHARRAY($result);
+                       SQL_FREERESULT($result);
+                       $content['mode']    = ADD_OPTION_LINES("/ARRAY/", array("allow", "deny"), array(ADMINS_ALLOW_MODE, ADMINS_DENY_MODE), $content['mode']);
+                       $content['la_mode'] = ADD_OPTION_LINES("/ARRAY/", array("global", "OLD", "NEW"), array(ADMINS_GLOBAL_LA_SETTING, ADMINS_OLD_LA_SETTING, ADMINS_NEW_LA_SETTING), $content['la_mode']);
+
+                       // Prepare some more data for the template
+                       $content['sw'] = $SW;
+                       $content['id'] = $id;
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_edit_admins_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+       }
+       define('__ADMINS_ROWS', $OUT);
+
+       // Load template
+       LOAD_TEMPLATE("admin_edit_admins");
+}
+ elseif ((isset($_POST['change'])) && (sizeof($_POST['login']) > 0))
+{
+       // Change admin accounts
+       $CACHE_UPDATE = "0";
+       foreach ($_POST['login'] as $id=>$login)
+       {
+               // Secure ID number
+               $id = bigintval($id);
+
+               // When both passwords match update admin account
+               if ($_POST['pass1'][$id] == $_POST['pass2'][$id])
+               {
+                       // Save only when both passwords are the same (also when they are empty)
+                       $ADD = ""; $CACHE_UPDATE = "1";
+
+                       // Generate hash
+                       $hash = generateHash($_POST['pass1'][$id]);
+
+                       // Save password when set
+                       if (!empty($_POST['pass1'][$id])) $ADD = ", password='".$hash."'";
+
+                       // Get admin's ID
+                       $salt = substr(GET_ADMIN_HASH($_COOKIE['admin_login']), 0, -40);
+                       $aid = GET_ADMIN_ID($_COOKIE['admin_login']);
+
+                       // Rewrite cookie when it's own account
+                       if ($aid == $id)
+                       {
+                               // Timeout
+                               $TIMEOUT = time() + bigintval($_COOKIE['admin_to']);
+
+                               // Set timeout cookie
+                               @setcookie("admin_last", time(), $TIMEOUT, COOKIE_PATH);
+
+                               if ($login != $_COOKIE['admin_login'])
+                               {
+                                       // Update login cookie
+                                       @setcookie("admin_login", $login, $TIMEOUT, COOKIE_PATH);
+
+                                       // Update password cookie as well?
+                                       if (!empty($ADD)) @setcookie("admin_md5", $hash, $TIMEOUT, COOKIE_PATH);
+                               }
+                                elseif (generateHash($_POST['pass1'][$id], $salt) != $_COOKIE['admin_md5'])
+                               {
+                                       // Update password cookie
+                                       @setcookie("admin_md5", $hash, $TIMEOUT, COOKIE_PATH);
+                               }
+
+                       }
+
+                       // Update admin account
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admins SET
+login='%s'".$ADD.",
+email='%s',
+default_acl='%s',
+la_mode='%s'
+WHERE id=%d LIMIT 1",
+ array(
+       $login,
+       $_POST['email'][$id],
+       $_POST['mode'][$id],
+       $_POST['la_mode'][$id],
+       $id
+), __FILE__, __LINE__);
+
+                       // Admin account saved
+                       $MSG = ADMIN_ACCOUNT_SAVED;
+               }
+                else
+               {
+                       // Passwords did not match
+                       $MSG = ADMINS_ERROR_PASS_MISMATCH;
+               }
+       }
+
+       // Remove cache file
+       if ((EXT_IS_ACTIVE("cache")) && ($CACHE_UPDATE == "1"))
+       {
+               if ($CACHE->cache_file("admins", true)) $CACHE->cache_destroy();
+       }
+
+       // Display message
+       if (!empty($MSG))
+       {
+               LOAD_TEMPLATE("admin_settings_saved", false, "<SPAN class=\"admin_done\">".$MSG."</SPAN>");
+       }
+}
+ elseif ((isset($_POST['del'])) && (SELECTION_COUNT($_POST['sel']) > 0))
+{
+       // Check if this account is the last one which cannot be deleted...
+       $result_main = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_admins", __FILE__, __LINE__);
+       $accounts = SQL_NUMROWS($result_main);
+       SQL_FREERESULT($result_main);
+       if ($accounts > 1)
+       {
+               // Delete accounts
+               $SW = 2; $OUT = "";
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       $result = SQL_QUERY_ESC("SELECT login, email, default_acl AS mode, la_mode FROM "._MYSQL_PREFIX."_admins WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Entry found
+                               $content = SQL_FETCHARRAY($result);
+                               SQL_FREERESULT($result);
+                               $eval = "\$content['mode'] = ADMINS_".strtoupper($content['mode'])."_MODE;";
+                               eval($eval);
+                               $eval = "\$content['la_mode'] = ADMINS_".strtoupper($content['la_mode'])."_LA_SETTING;";
+                               eval($eval);
+
+                               // Prepare some more data
+                               $content['sw'] = $SW;
+                               $content['id'] = $id;
+
+                               // Load row template and switch color
+                               $OUT .= LOAD_TEMPLATE("admin_del_admins_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+               }
+               define('__ADMINS_ROWS', $OUT);
+
+               // Load template
+               LOAD_TEMPLATE("admin_del_admins");
+       }
+        else
+       {
+               // Cannot delete last account!
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_ADMINS_CANNOT_DELETE_LAST);
+       }
+}
+ else
+{
+       if ((isset($_POST['remove'])) && (SELECTION_COUNT($_POST['sel']) > 0))
+       {
+               // Remove accounts now
+               $CACHE_UPDATE = "0";
+               foreach ($_POST['sel'] as $id=>$del)
+               {
+                       // Delete only when it's not your own account!
+                       if (($del == 1) && (GET_ADMIN_ID($_COOKIE['admin_login']) != $id))
+                       {
+                               // Rewrite his tasks to all admins
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='0' WHERE assigned_admin='%s'",
+                                array(bigintval($id)), __FILE__, __LINE__);
+
+                               // Remove account
+                               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admins WHERE id=%d LIMIT 1",
+                                array(bigintval($id)), __FILE__, __LINE__);
+
+                               $CACHE_UPDATE = "1";
+                       }
+               }
+
+               // Remove cache if cache system is activated
+               if ((EXT_IS_ACTIVE("cache")) && ($CACHE_UPDATE == "1"))
+               {
+                       if ($CACHE->cache_file("admins", true)) $CACHE->cache_destroy();
+               }
+       }
+
+       // List all admin accounts
+       $result = SQL_QUERY("SELECT id, login, email, default_acl AS mode, la_mode FROM "._MYSQL_PREFIX."_admins ORDER BY login", __FILE__, __LINE__);
+       $SW = 2; $OUT = "";
+       while ($content = SQL_FETCHARRAY($result))
+       {
+               // Compile some variables
+               $eval = "\$content['mode'] = ADMINS_".strtoupper($content['mode'])."_MODE;";
+               eval($eval);
+               $eval = "\$content['la_mode'] = ADMINS_".strtoupper($content['la_mode'])."_LA_SETTING;";
+               eval($eval);
+
+               // Prepare some more data
+               $content['sw']         = $SW;
+               $content['email_link'] = CREATE_EMAIL_LINK($content['id']);
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_list_admins_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__ADMINS_ROWS', $OUT);
+
+       // Load template
+       LOAD_TEMPLATE("admin_list_admins");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-admins_mails.php b/0.2.1/inc/modules/admin/what-admins_mails.php
new file mode 100644 (file)
index 0000000..1ed0fe9
--- /dev/null
@@ -0,0 +1,197 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/14/2004 *
+ * ================                             Last change: 10/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-admins_mails.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Control which admin shall receive which mail     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Stellen Sie ein, welcher Admin welche Mail erh.  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['edit']))
+{
+       // Check if entires are checked
+       $SEL = SELECTION_COUNT($_POST['sel']);
+       if ($SEL > 0)
+       {
+               // Add option for userlog
+               $ADMINS = ADD_OPTION_LINES("admins", "id", "login", "", "email");
+               $SW = 2; $ROWS = "";
+               foreach ($_POST['sel'] as $template=>$sel)
+               {
+                       // First of all load data from DB
+                       $result = SQL_QUERY_ESC("SELECT admin_id, id FROM "._MYSQL_PREFIX."_admins_mails WHERE mail_template='%s' ORDER BY id",
+                        array($template), __FILE__, __LINE__);
+                       $OUT = ""; $aid = "0"; $aid2 = "0";
+                       while (list($aid, $id) = SQL_FETCHROW($result))
+                       {
+                               $OUT .= "<SELECT name=\"admin_id[".$id."]\" size=\"1\" class=\"admin_select\">
+<OPTION value=\"0\"";
+                               if ($aid == "0") $OUT .= " selected default";
+                               $OUT .=">".ADMINS_ALL_ADMINS."</OPTION>\n";
+                               if (EXT_IS_ACTIVE("userlog"))
+                               {
+                                       $OUT .= "<OPTION value=\"-1\"";
+                                       if ($aid == "-1") $OUT .= " selected default";
+                                       $OUT .= ">".ADMINS_TO_USERLOG."</OPTION>\n";
+                               }
+                               $OUT .= ADD_OPTION_LINES("admins", "id", "login", $aid, "email");
+                               $OUT .= "</SELECT><BR>\n";
+                               $aid2 = $aid; $id2 = $id;
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+
+                       $content = array(
+                               'sw'      => $SW,
+                               'id'      => $id,
+                               'id2'     => $id2,
+                               'tpl'     => $template,
+                               'admins'  => $ADMINS
+                       );
+
+                       if ($aid2 > 0)
+                       {
+                               // Add form for an additional admin
+                               $OUT .= LOAD_TEMPLATE("admin_admins_mails_edit_form", true, $content);
+                       }
+                       // Save full rendered content
+                       $content['content'] = $OUT;
+
+                       // Start outputing line
+                       $ROWS .= LOAD_TEMPLATE("admin_admins_mails_edit_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+               define('__ADMINS_ROWS', $ROWS);
+
+               // Edit checked entries
+               LOAD_TEMPLATE("admin_admins_mails_edit");
+       }
+        else
+       {
+               // Nothing selected
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMINS_NO_MAIL_CHECKED);
+       }
+}
+ else
+{
+       // Load all assigned mails
+       $result = SQL_QUERY("SELECT DISTINCT m.id, m.admin_id, a.login, m.mail_template
+FROM "._MYSQL_PREFIX."_admins_mails AS m
+LEFT JOIN "._MYSQL_PREFIX."_admins AS a
+ON m.admin_id=a.id
+WHERE (m.admin_id=a.id OR m.admin_id < 1) AND m.mail_template != ''
+ORDER BY m.admin_id, m.mail_template", __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Shall I change entries?
+               if (isset($_POST['change']))
+               {
+                       // Ok, update database
+                       foreach ($_POST['admin_id'] as $id=>$aid)
+                       {
+                               // Secure IDs
+                               $id  = bigintval($id);
+                               $aid = bigintval($aid);
+
+                               // Update entry
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admins_mails SET admin_id=%d WHERE id=%d ORDER BY id LIMIT 1",
+                                array($aid, $id), __FILE__, __LINE__);
+
+                               if (($aid < 1) && (!empty($_POST['template'][$id])))
+                               {
+                                       // Remove any other admin entries
+                                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admins_mails WHERE mail_template='%s' AND id != '%s'",
+                                        array($_POST['template'][$id], $id), __FILE__, __LINE__);
+                               }
+                               if ($_POST['admin_new'][$_POST['template'][$id]] > 0)
+                               {
+                                       // Add new admin
+                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admins_mails (admin_id, mail_template) VALUES ('%s', '%s')",
+                                        array($aid, $_POST['template'][$id]), __FILE__, __LINE__);
+                               }
+                       }
+
+                       // Query again...
+                       $result = SQL_QUERY("SELECT DISTINCT m.id, m.admin_id, a.login, m.mail_template FROM "._MYSQL_PREFIX."_admins_mails AS m, "._MYSQL_PREFIX."_admins AS a WHERE m.admin_id=a.id OR m.admin_id < 1 ORDER BY m.admin_id", __FILE__, __LINE__);
+               }
+
+               // List found entries
+               $SW = 2; $OUT = "";
+               while(list($id, $aid, $admin, $templ) = SQL_FETCHROW($result))
+               {
+                       if ($aid > 0)
+                       {
+                               // Admin assigned
+                               $admin_link = "<A href=\"".URL."/modules.php?module=admin&amp;what=admins_contct&amp;admin=".$aid."\">".$admin."</A>";
+                       }
+                        elseif ($aid == 0)
+                       {
+                               // All admins
+                               $admin_link = "<I>".ADMINS_ALL_ADMINS."</I>";
+                       }
+                        elseif (($aid == -1) && (EXT_IS_ACTIVE("usrlog")))
+                       {
+                               // To userlog
+                               $admin_link = "<I>".ADMINS_TO_USERLOG."</I>";
+                       }
+                       $content = array(
+                               'sw'   => $SW,
+                               'tpl'  => $templ,
+                               'alnk' => $admin_link
+                       );
+
+                       // Load row template
+                       $OUT .= LOAD_TEMPLATE("admin_admins_mails_list_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free result
+               SQL_FREERESULT($result);
+               define('__MAILS_ROWS', $OUT);
+
+               // Load template
+               LOAD_TEMPLATE("admin_admins_mails_list");
+       }
+        else
+       {
+               // No entries found
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMINS_MAILS_NO_ENTRIES);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-autopurge.php b/0.2.1/inc/modules/admin/what-autopurge.php
new file mode 100644 (file)
index 0000000..4d129d4
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/25/2004 *
+ * ================                             Last change: 06/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-autopurge.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : AutoPurge configuration                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : AutoPurge-Konfiguration                          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Data was submitted so we store it
+}
+ else
+{
+       // Setup constants for the template
+       switch ($CONFIG['ap_inactive'])
+       {
+               case "Y": define('__YES_IN', " checked"); define('__NO_IN', "");         break;
+               case "N": define('__YES_IN', "");         define('__NO_IN', " checked"); break;
+       }
+       switch ($CONFIG['ap_unconfirmed'])
+       {
+               case "Y": define('__YES_UN', " checked"); define('__NO_UN', "");         break;
+               case "N": define('__YES_UN', "");         define('__NO_UN', " checked"); break;
+       }
+       define('__AP_IN_SINCE', $CONFIG['ap_in_since']);
+       define('__AP_IN_TIME' , $CONFIG['ap_in_time']);
+       define('__AP_UN_TIME' , $CONFIG['ap_un_time']);
+
+       // Output template
+       LOAD_TEMPLATE("admin_config_autopurge");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-bonus.php b/0.2.1/inc/modules/admin/what-bonus.php
new file mode 100644 (file)
index 0000000..4c51760
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/04/2004 *
+ * ================                             Last change: 04/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-bonus.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Bonus pages                                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bonusseiten                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-cache_stats.php b/0.2.1/inc/modules/admin/what-cache_stats.php
new file mode 100644 (file)
index 0000000..69a6948
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/29/2005 *
+ * ================                             Last change: 04/29/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-cache_stats.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Stats for the caching extension                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Statistiken fuer die Cache-Erweiterung           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Prepare data for the template
+define('__DB_HITS'   , $CONFIG['db_hits']);
+$HITS = str_repeat("&nbsp;", abs(strlen($CONFIG['db_hits']) - strlen($CONFIG['cache_hits']))).$CONFIG['cache_hits'];
+define('__CACHE_HITS', $HITS);
+define('__TOTAL_HITS', ($CONFIG['db_hits'] + $CONFIG['cache_hits']));
+define('__CACHE_PERC', TRANSLATE_COMMA(($CONFIG['cache_hits'] / __TOTAL_HITS  * 100)));
+
+// Load template
+LOAD_TEMPLATE("admin_cache_stats");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-chk_regs.php b/0.2.1/inc/modules/admin/what-chk_regs.php
new file mode 100644 (file)
index 0000000..7f7df23
--- /dev/null
@@ -0,0 +1,87 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 03/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-chk_regs.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Check new registrations                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Neue Anmeldungen pruefen                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR ("admin", basename(__FILE__));
+
+// Check for accounts
+$query = SQL_QUERY("SELECT userid, sex, surname, family, email, REMOTE_ADDR, refid, user_hash FROM "._MYSQL_PREFIX."_user_data WHERE status='UNCONFIRMED' ORDER BY userid", __FILE__, __LINE__);
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (SQL_NUMROWS($query) > 0)
+{
+       // We have some (new?) registrations!
+       $SW = 2; $OUT = "";
+       while (list($uid, $sex, $sname, $fname, $email, $IP, $ref, $hash) = SQL_FETCHROW($query))
+       {
+               if ($ref > 0) $ref = ADMIN_USER_PROFILE_LINK($ref);
+               // Prepare array for the row template
+               $content = array(
+                       'sw'    => $SW,
+                       'sex'   => TRANSLATE_SEX($sex),
+                       'sname' => $sname,
+                       'fname' => $fname,
+                       'email' => "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".stripslashes($email)."</A>",
+                       'ip'    => $IP,
+                       'ref'   => $ref,
+                       'hash'  => $hash,
+                       'link'  => ADMIN_USER_PROFILE_LINK($uid),
+               );
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_reg_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($query);
+       define('__REG_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_reg");
+}
+ else
+{
+       // No registrations left - or all has confirmed their email address... :-)
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_ALL_CONFIRMED_EMAIL);
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_active.php b/0.2.1/inc/modules/admin/what-config_active.php
new file mode 100644 (file)
index 0000000..7f63f91
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/20/2005 *
+ * ================                             Last change: 03/20/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_active.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Configuration for active list                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Konfiguration der Aktiv-Liste                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save data
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Minimum mails / active
+       define('__LIMIT_VALUE', $CONFIG['active_limit']);
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_active");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_admin.php b/0.2.1/inc/modules/admin/what-config_admin.php
new file mode 100644 (file)
index 0000000..b0823e2
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/13/2006 *
+ * ================                             Last change: 01/13/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_admin.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Configure administrator's menu                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Administratormenue einstellen                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save configuration
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare data for the template
+       switch ($CONFIG['admin_menu'])
+       {
+       case "NEW":
+               define('__ADMIN_MENU_NEW', " checked");
+               define('__ADMIN_MENU_OLD'   , "");
+               break;
+
+       case "OLD":
+               define('__ADMIN_MENU_NEW', "");
+               define('__ADMIN_MENU_OLD'   , " checked");
+               break;
+       }
+
+       // Display form
+       LOAD_TEMPLATE("admin_config_admin");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_admins.php b/0.2.1/inc/modules/admin/what-config_admins.php
new file mode 100644 (file)
index 0000000..27cce72
--- /dev/null
@@ -0,0 +1,302 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/30/2004 *
+ * ================                             Last change: 07/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File: what-config_admins.php                                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Configure admin ACLs                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Admin-ACLs einstellen                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$SEL = 0;
+if (!empty($_POST['sel'])) $SEL = SELECTION_COUNT($_POST['sel']);
+
+if ((isset($_POST['edit'])) && ($SEL > 0))
+{
+       // Edit ACLs
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               // Load data for the ID
+               $result = SQL_QUERY_ESC("SELECT admin_id, action_menu, what_menu, access_mode FROM "._MYSQL_PREFIX."_admins_acls WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($aid, $act, $wht, $mode) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'               => $SW,
+                       'id'               => $id,
+                       'admins_selection' => ADD_OPTION_LINES("admins", "id", "login", $aid, "default_acl"),
+                       'action_selection' => ADMIN_MENU_SELECTION("action", $act, $id),
+                       'what_selection'   => ADMIN_MENU_SELECTION("what", $wht, $id),
+                       'mode_options'     => ADD_OPTION_LINES(
+                               "/ARRAY/",
+                               array("allow", "deny"),
+                               array(ADMINS_ALLOW_MODE, ADMINS_DENY_MODE),
+                               $mode
+                       ),
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("admin_config_admins_edit_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__ACL_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_config_admins_edit");
+}
+ elseif ((isset($_POST['change'])) && ($SEL > 0))
+{
+       // Change entries
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               // Secure ID
+               $id = bigintval($id);
+
+               // Update entries
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admins_acls SET admin_id=%d, action_menu='%s', what_menu='%s', access_mode='%s' WHERE id=%d LIMIT 1",
+                array($_POST['admin'][$id], $_POST['action_menu'][$id], $_POST['what_menu'][$id], $_POST['mode'][$id], $id),__FILE__, __LINE__);
+       }
+
+       // Update cache when installed
+       if (EXT_IS_ACTIVE("cache"))
+       {
+               if ($CACHE->cache_file("admins_acls", true) == true) $CACHE->cache_destroy();
+       }
+
+       // Entries changed
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_ADMINS_ENTRIES_CHANGED);
+}
+ elseif ((isset($_POST['del'])) && ($SEL > 0))
+{
+       // Delete ACLs
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               // Load data for the ID
+               $result = SQL_QUERY_ESC("SELECT admin_id, action_menu, what_menu, access_mode FROM "._MYSQL_PREFIX."_admins_acls WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($admin, $act, $wht, $mode) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare variables
+               if (empty($act)) $act = "---";
+               if (empty($wht))   $wht   = "---";
+               $eval = "\$mode = ADMINS_".strtoupper($mode)."_MODE;";
+               eval($eval);
+
+               // Load admin's data
+               $login = GET_ADMIN_LOGIN($admin);
+               if ($login != "***")
+               {
+                       // Admin found
+                       $admin = "<A href=\"".URL."/modules.php?module=admin&amp;what=admins_contct&amp;admin=".$admin."\">".$login."</A>";
+               }
+                else
+               {
+                       // Maybe deleted?
+                       $admin = "<FONT class=\"admin_note\">".ADMIN_ID_404_1.$admin.ADMIN_ID_404_2."</FONT>";
+               }
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'     => $SW,
+                       'id'     => $id,
+                       'admin'  => $admin,
+                       'action' => $act,
+                       'what'   => $wht,
+                       'mode'   => $mode,
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("admin_config_admins_del_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__ACL_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_config_admins_del");
+}
+ elseif ((isset($_POST['remove'])) && ($SEL > 0))
+{
+       // Remove entries
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admins_acls WHERE id=%d LIMIT 1",
+                array(bigintval($id)),__FILE__, __LINE__);
+       }
+
+       // Update cache when installed
+       if (EXT_IS_ACTIVE("cache"))
+       {
+               if ($CACHE->cache_file("admins_acls", true) == true) $CACHE->cache_destroy();
+       }
+
+       // Entries deleted
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_ADMINS_ENTRIES_DELETED);
+}
+ elseif (isset($_POST['add']))
+{
+       // Check if everything is fine...
+       $result = SQL_QUERY_ESC("SELECT default_acl FROM "._MYSQL_PREFIX."_admins WHERE id=%d LIMIT 1",
+        array(bigintval($_POST['admin_id'])), __FILE__, __LINE__);
+       list($mode) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Default ACL is false
+       $ACL = false;
+       if (!empty($_POST['what_menu']))
+       {
+               // Check parent ACL
+               $ACL = ADMINS_CHECK_ACL(GET_ACTION("admin", $_POST['what_menu']), "");
+       }
+
+       if ($mode != $_POST['mode'] || ($ACL))
+       {
+               // Mode is fine
+               $BOTH = ((!empty($_POST['action_menu'])) && (!empty($_POST['what_menu'])));
+               if (((!empty($_POST['action_menu'])) || (!empty($_POST['what_menu']))) && (!$BOTH))
+               {
+                       // Main or sub menu selected
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admins_acls WHERE admin_id=%d AND action_menu='%s' AND what_menu='%s' LIMIT 1",
+                        array(bigintval($_POST['admin_id']), $_POST['action_menu'], $_POST['what_menu']), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 0)
+                       {
+                               // Finally add the new ACL
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admins_acls (admin_id, action_menu, what_menu, access_mode)
+VALUES ('%s', '%s', '%s', '%s')",
+ array(
+       $_POST['admin_id'],
+       $_POST['action_menu'],
+       $_POST['what_menu'],
+       $_POST['mode']
+), __FILE__, __LINE__);
+                               $content = ADMIN_ADMINS_ACL_SAVED;
+
+                               // Update cache when installed
+                               if (EXT_IS_ACTIVE("cache"))
+                               {
+                                       if ($CACHE->cache_file("admins_acls", true) == true) $CACHE->cache_destroy();
+                               }
+                       }
+                        else
+                       {
+                               // ACL does already exist!
+                               $content = ADMIN_ADMINS_ACL_ALREADY_ADDED;
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // No menu selected makes also no sence...
+                       $content = ADMIN_ADMINS_SELECT_ACTION_WHAT;
+               }
+       }
+        else
+       {
+               // Same mode makes no sence...
+               $content = ADMIN_ADMINS_SAME_MODE_SELECTED;
+       }
+
+       // Display message
+       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+}
+ else
+{
+       // List all ACLs
+       $result_acls = SQL_QUERY("SELECT id, admin_id, action_menu, what_menu, access_mode FROM "._MYSQL_PREFIX."_admins_acls ORDER BY admin_id, id", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_acls) > 0)
+       {
+               // List ACLs
+               $SW = 2; $OUT = "";
+               while(list($id, $admin, $act, $wht, $mode) = SQL_FETCHROW($result_acls))
+               {
+                       // Prepare variables
+                       if (empty($act)) $act = "---";
+                       if (empty($wht))   $wht   = "---";
+                       $eval = "\$mode = ADMINS_".strtoupper($mode)."_MODE;";
+                       eval($eval);
+
+                       // Load admin's data
+                       $login = GET_ADMIN_LOGIN($admin);
+                       if ($login != "***")
+                       {
+                               // Admin found
+                               $admin = "<A href=\"".URL."/modules.php?module=admin&amp;what=admins_contct&amp;admin=".$admin."\">".$login."</A>";
+                       }
+                        else
+                       {
+                               // Maybe deleted?
+                               $admin = "<FONT class=\"admin_note\">".ADMIN_ID_404_1.$admin.ADMIN_ID_404_2."</FONT>";
+                       }
+
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'     => $SW,
+                               'id'     => $id,
+                               'admin'  => $admin,
+                               'action' => $act,
+                               'what'   => $wht,
+                               'mode'   => $mode,
+                       );
+
+                       // Load row template and switch colors
+                       $OUT .= LOAD_TEMPLATE("admin_config_admins_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__ACL_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_config_admins");
+       }
+
+       // Prepare some constants for the template
+       define('_ADMINS_SELECTION', ADD_OPTION_LINES("admins", "id", "login", "", "default_acl"));
+       define('_ACTION_SELECTION', ADMIN_MENU_SELECTION("action"));
+       define('_WHAT_SELECTION'  , ADMIN_MENU_SELECTION("what"));
+       define('_MODE_OPTIONS'    , ADD_OPTION_LINES("/ARRAY/", array("allow", "deny"), array(ADMINS_ALLOW_MODE, ADMINS_DENY_MODE)));
+
+       // Load template for adding new ACL
+       LOAD_TEMPLATE("admin_admins_add_acl");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_autopurge.php b/0.2.1/inc/modules/admin/what-config_autopurge.php
new file mode 100644 (file)
index 0000000..bc870ef
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/25/2004 *
+ * ================                             Last change: 05/05/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-autopurge.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : AutoPurge configuration                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : AutoPurge-Konfiguration                          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Data was submitted so we store it
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Output de-/activation selections
+       define('__AP_INACTIVE_SELECTION'   , ADD_SELECTION("yn", $CONFIG['ap_inactive']   , "autopurge_inactive"));
+       define('__AP_UNCONFIRMED_SELECTION', ADD_SELECTION("yn", $CONFIG['ap_unconfirmed'], "autopurge_unconfirmed"));
+       define('__AP_TASKS_SELECTION'      , ADD_SELECTION("yn", $CONFIG['ap_tasks']      , "autopurge_tasks"));
+       define('__AP_DEL_MAILS_SELECTION'  , ADD_SELECTION("yn", $CONFIG['ap_del_mails']  , "ap_del_mails"));
+
+       // Output notification selections
+       define('__AP_NOTIFY_INACTIVE'      , ADD_SELECTION("yn", $CONFIG['ap_in_mail']    , "ap_in_notify"));
+       define('__AP_NOTIFY_UNCONFIRMED'   , ADD_SELECTION("yn", $CONFIG['ap_un_mail']    , "ap_un_notify"));
+       define('__AP_NOTIFY_TASKS'         , ADD_SELECTION("yn", $CONFIG['ap_tasks_mail'] , "ap_tasks_notify"));
+       define('__AP_NOTIFY_DEL_MAILS'     , ADD_SELECTION("yn", $CONFIG['ap_dm_notify']  , "ap_dm_notify"));
+
+       // Output time selection boxes
+       define('__AP_IN_SINCE'      , CREATE_TIME_SELECTIONS($CONFIG['ap_in_since']  , "ap_inactive_since"  , "MWDh"));
+       define('__AP_IN_TIME'       , CREATE_TIME_SELECTIONS($CONFIG['ap_in_time']   , "ap_inactive_time"   , "MWDh"));
+       define('__AP_UN_TIME'       , CREATE_TIME_SELECTIONS($CONFIG['ap_un_time']   , "ap_unconfirmed_time", "MWDh"));
+       define('__AP_TASK_TIME'     , CREATE_TIME_SELECTIONS($CONFIG['ap_tasks_time'], "ap_tasks_time"      , "MWDh"));
+       define('__AP_DEL_MAILS_TIME', CREATE_TIME_SELECTIONS($CONFIG['ap_dm_timeout'], "ap_dm_timeout"      , "MWDh"));
+
+       // Mail confirmation links
+       define('_CFG_AUTO_PURGE', CREATE_TIME_SELECTIONS($CONFIG['auto_purge'], "auto_purge", "MWD"));
+       if ($CONFIG['auto_purge_active'] == "N")
+       {
+               define('_CFG_AP_ACTIVE_N', " checked");
+               define('_CFG_AP_ACTIVE_Y', "");
+       }
+        else
+       {
+               define('_CFG_AP_ACTIVE_N', "");
+               define('_CFG_AP_ACTIVE_Y', " checked");
+       }
+
+       // Output template
+       LOAD_TEMPLATE("admin_config_autopurge");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_beg.php b/0.2.1/inc/modules/admin/what-config_beg.php
new file mode 100644 (file)
index 0000000..20470c4
--- /dev/null
@@ -0,0 +1,170 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/09/2005 *
+ * ================                             Last change: 01/09/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_beg.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup beg link                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bettel-Link einstellen                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Translate german decimal commas to computer decimal dots
+       $_POST['beg_points']       = str_replace(",", ".", $_POST['beg_points']      );
+       $_POST['beg_points_max']   = str_replace(",", ".", $_POST['beg_points_max']  );
+       $_POST['beg_notify_bonus'] = str_replace(",", ".", $_POST['beg_notify_bonus']);
+
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+
+       // Remember new settings
+       $CONFIG['beg_rallye']        = $_POST['beg_rallye'];
+       $CONFIG['beg_ral_en_notify'] = $_POST['beg_ral_en_notify'];
+       $CONFIG['beg_ral_di_notify'] = $_POST['beg_ral_di_notify'];
+
+       // Include sending out mails
+       if ((($CONFIG['beg_rallye'] == "Y") && ($CONFIG['beg_ral_en_notify'] == "Y")) || (($CONFIG['beg_rallye'] == "N") && ($CONFIG['beg_ral_di_notify'] == "Y")))
+       {
+               include(PATH."inc/mails/beg_mails.php");
+       }
+}
+ else
+{
+       // Prepare constants for the template
+       define('__BEG_POINTS'           , TRANSLATE_COMMA($CONFIG['beg_points']      , false));
+       define('__BEG_POINTS_MAX'       , TRANSLATE_COMMA($CONFIG['beg_points_max']  , false));
+       define('__BEG_NOTIFY_BONUS'     , TRANSLATE_COMMA($CONFIG['beg_notify_bonus'], false));
+       define('__BEG_TIMEOUT'          , CREATE_TIME_SELECTIONS($CONFIG['beg_timeout']    , "beg_timeout"    , "Dhm"));
+       define('__BEG_UID_TIMEOUT'      , CREATE_TIME_SELECTIONS($CONFIG['beg_uid_timeout'], "beg_uid_timeout", "Dhm"));
+       define('__BEG_REMOTE_IP_TIMEOUT', CREATE_TIME_SELECTIONS($CONFIG['beg_ip_timeout'] , "beg_ip_timeout" , "Dhm"));
+       define('__WAIT_SELECTION'       , CREATE_TIME_SELECTIONS($CONFIG['beg_notify_wait'], "beg_notify_wait", "ms" ));
+       define('__BEG_RANKS', $CONFIG['beg_ranks']);
+
+       // Activate / Deactivate beg rallye (Y/N)
+       switch ($CONFIG['beg_rallye'])
+       {
+       case "Y":
+               define('__BEG_RALLYE_Y', " checked");
+               define('__BEG_RALLYE_N', "");
+               break;
+
+       case "N":
+               define('__BEG_RALLYE_Y', "");
+               define('__BEG_RALLYE_N', " checked");
+               break;
+       }
+       switch ($CONFIG['beg_active'])
+       {
+       case "Y":
+               define('__BEG_ACTIVE_Y', " checked");
+               define('__BEG_ACTIVE_N', "");
+               break;
+
+       case "N":
+               define('__BEG_ACTIVE_Y', "");
+               define('__BEG_ACTIVE_N', " checked");
+               break;
+       }
+       switch ($CONFIG['beg_mode'])
+       {
+       case "DIRECT":
+               define('__BEG_MODE_DIRECT', " checked");
+               define('__BEG_MODE_REF'   , "");
+               break;
+
+       case "REF":
+               define('__BEG_MODE_DIRECT', "");
+               define('__BEG_MODE_REF'   , " checked");
+               break;
+       }
+       switch ($CONFIG['beg_ral_en_notify'])
+       {
+       case "Y":
+               define('__BEG_RAL_EN_NOTIFY_Y', " checked");
+               define('__BEG_RAL_EN_NOTIFY_N', "");
+               break;
+
+       case "N":
+               define('__BEG_RAL_EN_NOTIFY_Y', "");
+               define('__BEG_RAL_EN_NOTIFY_N', " checked");
+               break;
+       }
+       switch ($CONFIG['beg_ral_di_notify'])
+       {
+       case "Y":
+               define('__BEG_RAL_DI_NOTIFY_Y', " checked");
+               define('__BEG_RAL_DI_NOTIFY_N', "");
+               break;
+
+       case "N":
+               define('__BEG_RAL_DI_NOTIFY_Y', "");
+               define('__BEG_RAL_DI_NOTIFY_N', " checked");
+               break;
+       }
+       switch ($CONFIG['beg_new_mem_notify'])
+       {
+       case "Y":
+               define('__BEG_NEW_MEMBER_NOTIFY_Y', " checked");
+               define('__BEG_NEW_MEMBER_NOTIFY_N', "");
+               break;
+
+       case "N":
+               define('__BEG_NEW_MEMBER_NOTIFY_Y', "");
+               define('__BEG_NEW_MEMBER_NOTIFY_N', " checked");
+               break;
+       }
+       switch ($CONFIG['beg_include_own'])
+       {
+       case "Y":
+               define('__BEG_INCLUDE_OWN_Y', " checked");
+               define('__BEG_INCLUDE_OWN_N', "");
+               break;
+
+       case "N":
+               define('__BEG_INCLUDE_OWN_Y', "");
+               define('__BEG_INCLUDE_OWN_N', " checked");
+               break;
+       }
+
+       // Add data to constant __MEMBER_SELECTION
+       ADD_MEMBER_SELECTION_BOX(false, true, true, $CONFIG['beg_uid']);
+
+       // Load form template
+       LOAD_TEMPLATE("admin_config_beg");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_birthday.php b/0.2.1/inc/modules/admin/what-config_birthday.php
new file mode 100644 (file)
index 0000000..0db02fd
--- /dev/null
@@ -0,0 +1,81 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 02/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_birthday.php                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Configure birthday mails                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Geburtstagsgruesse einstellen                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save configuration
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare data for the template
+       define('__POINTS_VALUE', $CONFIG['birthday_points']);
+       switch ($CONFIG['birthday_active'])
+       {
+       case "Y":
+               define('__BIRTHDAY_ACTIVE_Y', " checked");
+               define('__BIRTHDAY_ACTIVE_N', "");
+               break;
+
+       case "N":
+               define('__BIRTHDAY_ACTIVE_Y', "");
+               define('__BIRTHDAY_ACTIVE_N', " checked");
+               break;
+       }
+       switch ($CONFIG['birthday_mode'])
+       {
+       case "DIRECT":
+               define('__BIRTHDAY_MODE_DIRECT', " checked");
+               define('__BIRTHDAY_MODE_REF'   , "");
+               break;
+
+       case "REF":
+               define('__BIRTHDAY_MODE_DIRECT', "");
+               define('__BIRTHDAY_MODE_REF'   , " checked");
+               break;
+       }
+
+       // Display form
+       LOAD_TEMPLATE("admin_config_birthday");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_bonus.php b/0.2.1/inc/modules/admin/what-config_bonus.php
new file mode 100644 (file)
index 0000000..4fd9492
--- /dev/null
@@ -0,0 +1,248 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/31/2004 *
+ * ================                             Last change: 11/14/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_bonus.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Configure "turbo-click-bonus"                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einstellen der Turbo-Klick-Verguetungen          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Replace german decimal commas to computer decimal dots
+       $_POST['login_bonus']         = str_replace(",", ".", $_POST['login_bonus']        );
+       $_POST['turbo_bonus']         = str_replace(",", ".", $_POST['turbo_bonus']        );
+       $_POST['bonus_ref']           = str_replace(",", ".", $_POST['bonus_ref']          );
+       $_POST['bonus_order']         = str_replace(",", ".", $_POST['bonus_order']        );
+       $_POST['bonus_notify_points'] = str_replace(",", ".", $_POST['bonus_notify_points']);
+
+       // Generate string for saving ranks
+       $_POST['turbo_rates'] = ""; $RATES = array();
+       foreach ($_POST['rate'] as $rate)
+       {
+               $rate = trim(str_replace(",", ".", $rate));
+               if (isset($rate)) $RATES[] = $rate;
+       }
+       $_POST['turbo_rates'] = trim(implode(";", $RATES));
+       unset($_POST['rate']);
+
+       // Automatically calculate bonus points for ranks 2 and 3 when not set
+       if (empty($_POST['turbo_rates'])) $_POST['turbo_rates'] = "".round($CONFIG['turbo_bonus'] / 2).";".round($CONFIG['turbo_bonus'] / 4)."";
+
+       // Save data
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+
+       // Remember new settings
+       $CONFIG['bonus_active']    = $_POST['bonus_active'];
+       $CONFIG['bonus_en_notify'] = $_POST['bonus_en_notify'];
+       $CONFIG['bonus_di_notify'] = $_POST['bonus_di_notify'];
+
+       // Include sending out mails
+       if ((($CONFIG['bonus_active'] == "Y") && ($CONFIG['bonus_en_notify'] == "Y")) || (($CONFIG['bonus_active'] == "N") && ($CONFIG['bonus_di_notify'] == "Y")))
+       {
+               include(PATH."inc/mails/bonus_mails.php");
+       }
+}
+ else
+{
+       // Prepare contants for the template
+       define('__LOGIN_VALUE' , TRANSLATE_COMMA($CONFIG['login_bonus']        , false));
+       define('__TURBO_VALUE' , TRANSLATE_COMMA($CONFIG['turbo_bonus']        , false));
+       define('__ORDER_VALUE' , TRANSLATE_COMMA($CONFIG['bonus_order']        , false));
+       define('__REF_VALUE'   , TRANSLATE_COMMA($CONFIG['bonus_ref']          , false));
+       define('__STATS_VALUE' , TRANSLATE_COMMA($CONFIG['bonus_stats']        , false));
+       define('__NOTIFY_VALUE', TRANSLATE_COMMA($CONFIG['bonus_notify_points'], false));
+       define('__TRANKS_VALUE', $CONFIG['bonus_ranks']);
+       define('__TLINES_VALUE', $CONFIG['bonus_lines']);
+
+       // Transfer options to template __MEMBER_SELECTION
+       ADD_MEMBER_SELECTION_BOX(false, true, true, $CONFIG['bonus_uid']);
+
+       // Initialize array for the points list
+       $RANKS = explode(";", $CONFIG['bonus_rates']);
+
+       // Automatically calculate bonus points for ranks 2 and 3 when not set
+       if (empty($CONFIG['bonus_rates'])) $RANKS = array(round($CONFIG['turbo_bonus'] / 2), round($CONFIG['turbo_bonus'] / 4));
+
+       // Generate list
+       $OUT = "<OL start=\"2\">\n";
+       foreach ($RANKS as $k=>$rate)
+       {
+               if (!empty($rate))
+               {
+                       // Print only when something is in
+                       $OUT .= "  <LI><INPUT type=\"text\" name=\"rate[".($k + 2)."]\" class=\"admin_normal\" size=\"4\" maxlength=\"7\" value=\"".$rate."\">&nbsp;<FONT class=\"admin_notes\">(".POINTS.")</FONT?</LI>\n";
+               }
+       }
+       for ($i = 3; $i < 8; $i++)
+       {
+               $OUT .= "  <LI><INPUT type=\"text\" name=\"rate[".($k + $i)."]\" class=\"admin_normal\" size=\"4\" maxlength=\"7\">&nbsp;<FONT class=\"admin_notes\">(".POINTS.")</FONT?</LI>\n";
+       }
+       $OUT .= "</OL>\n";
+       define('__TRATES_LIST', $OUT);
+
+       define('__LOGIN_TIMEOUT_SELECTION', CREATE_TIME_SELECTIONS($CONFIG['login_timeout']    , "login_timeout"    , "WDh"));
+       define('__BONUS_TIMEOUT_SELECTION', CREATE_TIME_SELECTIONS($CONFIG['bonus_timeout']    , "bonus_timeout"    , "WDh"));
+       define('__WAIT_SELECTION'         , CREATE_TIME_SELECTIONS($CONFIG['bonus_notify_wait'], "bonus_notify_wait", "ms" ));
+
+       // Activate / Deactivate bonus active rallye (Y/N)
+       switch ($CONFIG['bonus_active'])
+       {
+       case "Y":
+               define('__BONUS_ACTIVE_Y', " checked");
+               define('__BONUS_ACTIVE_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_ACTIVE_Y', "");
+               define('__BONUS_ACTIVE_N', " checked");
+               break;
+       }
+       // Other bonus to de-/activate
+       switch ($CONFIG['bonus_login_yn'])
+       {
+       case "Y":
+               define('__BONUS_LOGIN_Y', " checked");
+               define('__BONUS_LOGIN_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_LOGIN_Y', "");
+               define('__BONUS_LOGIN_N', " checked");
+               break;
+       }
+       switch ($CONFIG['bonus_stats_yn'])
+       {
+       case "Y":
+               define('__BONUS_STATS_Y', " checked");
+               define('__BONUS_STATS_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_STATS_Y', "");
+               define('__BONUS_STATS_N', " checked");
+               break;
+       }
+       switch ($CONFIG['bonus_order_yn'])
+       {
+       case "Y":
+               define('__BONUS_ORDER_Y', " checked");
+               define('__BONUS_ORDER_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_ORDER_Y', "");
+               define('__BONUS_ORDER_N', " checked");
+               break;
+       }
+       switch ($CONFIG['bonus_ref_yn'])
+       {
+       case "Y":
+               define('__BONUS_REF_Y', " checked");
+               define('__BONUS_REF_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_REF_Y', "");
+               define('__BONUS_REF_N', " checked");
+               break;
+       }
+       switch ($CONFIG['bonus_click_yn'])
+       {
+       case "Y":
+               define('__BONUS_CLICK_Y', " checked");
+               define('__BONUS_CLICK_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_CLICK_Y', "");
+               define('__BONUS_CLICK_N', " checked");
+               break;
+       }
+       switch ($CONFIG['bonus_en_notify'])
+       {
+       case "Y":
+               define('__BONUS_EN_NOTIFY_Y', " checked");
+               define('__BONUS_EN_NOTIFY_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_EN_NOTIFY_Y', "");
+               define('__BONUS_EN_NOTIFY_N', " checked");
+               break;
+       }
+       switch ($CONFIG['bonus_di_notify'])
+       {
+       case "Y":
+               define('__BONUS_DI_NOTIFY_Y', " checked");
+               define('__BONUS_DI_NOTIFY_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_DI_NOTIFY_Y', "");
+               define('__BONUS_DI_NOTIFY_N', " checked");
+               break;
+       }
+       switch ($CONFIG['bonus_new_mem_notify'])
+       {
+       case "Y":
+               define('__BONUS_NEW_MEMBER_NOTIFY_Y', " checked");
+               define('__BONUS_NEW_MEMBER_NOTIFY_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_NEW_MEMBER_NOTIFY_Y', "");
+               define('__BONUS_NEW_MEMBER_NOTIFY_N', " checked");
+               break;
+       }
+       switch ($CONFIG['bonus_include_own'])
+       {
+       case "Y":
+               define('__BONUS_INCLUDE_OWN_Y', " checked");
+               define('__BONUS_INCLUDE_OWN_N', "");
+               break;
+
+       case "N":
+               define('__BONUS_INCLUDE_OWN_Y', "");
+               define('__BONUS_INCLUDE_OWN_N', " checked");
+               break;
+       }
+
+       // Load final template
+       LOAD_TEMPLATE("admin_config_bonus", false);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_cache.php b/0.2.1/inc/modules/admin/what-config_cache.php
new file mode 100644 (file)
index 0000000..afe2ebb
--- /dev/null
@@ -0,0 +1,132 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/29/2006 *
+ * ================                             Last change: 01/29/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_cache.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Configuration for the caching system             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Konfiguration des Caching-Systems                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Cache path has been not changed by default so don't test it again
+       $_POST['cache_tested'] = "N";
+
+       // Check if path has been changed
+       if ($_POST['cache_path'] != $CONFIG['cache_path'])
+       {
+               // Okay, cache path has been altered so we have to test it again!
+               $_POST['cache_tested'] = "Y";
+       }
+
+       // Delete deactivated cache files
+       if (($_POST['cache_admins'] == "N") && ($CACHE->cache_file("admins", true)))
+       {
+               $CACHE->cache_destroy();
+       }
+       if (($_POST['cache_acls'] == "N") && ($CACHE->cache_file("acls", true)))
+       {
+               $CACHE->cache_destroy();
+       }
+       if (($_POST['cache_exts'] == "N") && ($CACHE->cache_file("extensions", true)))
+       {
+               $CACHE->cache_destroy();
+       }
+       if (($_POST['cache_config'] == "N") && ($CACHE->cache_file("config", true)))
+       {
+               $CACHE->cache_destroy();
+       }
+       if (($_POST['cache_modreg'] == "N") && ($CACHE->cache_file("modreg", true)))
+       {
+               $CACHE->cache_destroy();
+       }
+       if (($_POST['cache_refdepth'] == "N") && ($CACHE->cache_file("refdepth", true)))
+       {
+               $CACHE->cache_destroy();
+       }
+       if (($_POST['cache_refsys'] == "N") && ($CACHE->cache_file("refsys", true)))
+       {
+               $CACHE->cache_destroy();
+       }
+
+       // Save configuration
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare data
+       switch ($CONFIG['cache_admins'])
+       {
+               case "Y": define('__ADMINS_Y', " checked"); define('__ADMINS_N', "");         break;
+               case "N": define('__ADMINS_Y', "");         define('__ADMINS_N', " checked"); break;
+       }
+       switch ($CONFIG['cache_acls'])
+       {
+               case "Y": define('__ACLS_Y', " checked"); define('__ACLS_N', "");         break;
+               case "N": define('__ACLS_Y', "");         define('__ACLS_N', " checked"); break;
+       }
+       switch ($CONFIG['cache_exts'])
+       {
+               case "Y": define('__EXTS_Y', " checked"); define('__EXTS_N', "");         break;
+               case "N": define('__EXTS_Y', "");         define('__EXTS_N', " checked"); break;
+       }
+       switch ($CONFIG['cache_config'])
+       {
+               case "Y": define('__CONFIG_Y', " checked"); define('__CONFIG_N', "");         break;
+               case "N": define('__CONFIG_Y', "");         define('__CONFIG_N', " checked"); break;
+       }
+       switch ($CONFIG['cache_modreg'])
+       {
+               case "Y": define('__MODREG_Y', " checked"); define('__MODREG_N', "");         break;
+               case "N": define('__MODREG_Y', "");         define('__MODREG_N', " checked"); break;
+       }
+       switch ($CONFIG['cache_refdepth'])
+       {
+               case "Y": define('__REFDEPTH_Y', " checked"); define('__REFDEPTH_N', "");         break;
+               case "N": define('__REFDEPTH_Y', "");         define('__REFDEPTH_N', " checked"); break;
+       }
+       switch ($CONFIG['cache_refsys'])
+       {
+               case "Y": define('__REFSYS_Y', " checked"); define('__REFSYS_N', "");         break;
+               case "N": define('__REFSYS_Y', "");         define('__REFSYS_N', " checked"); break;
+       }
+       define('__PATH', $CONFIG['cache_path']);
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_cache");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_cats.php b/0.2.1/inc/modules/admin/what-config_cats.php
new file mode 100644 (file)
index 0000000..df24b85
--- /dev/null
@@ -0,0 +1,202 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/10/2003 *
+ * ===============                              Last change: 07/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_cats.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Add new categories and edit / delete existing    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Neue Kategorien hinzufuegen und bestehende       *
+ *                     editieren / loeschen                             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Init variable to avoid a notice
+$CATS = "";
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (isset($_POST['add'])) {
+       // Add a new category
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_cats WHERE cat='%s' LIMIT 1",
+        array(addslashes($_POST['catname'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0) {
+               // Category does not exists, we simply add it...
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_cats (cat, visible, sort) VALUES ('%s', '%s', '%s')",
+                array(addslashes($_POST['catname']), $_POST['visible'], bigintval($_POST['parent'] + 1)), __FILE__, __LINE__);
+               $content = "<SPAN class=\"admin_done\">".CATEGORY_ADDED."</SPAN>";
+       } else {
+               // Category does already exists
+               $content = "<SPAN class=\"admin_failed\">".CATEGORY_ALREADY_EXISTS."</SPAN>";
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Display message
+       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+} elseif ((isset($_POST['ok'])) && (isset($_POST['id'])) && (is_array($_POST['id']))) {
+       // Change or delete categories...
+       $TEXT = "";
+       foreach ($_POST['id'] as $id=>$cat) {
+               // Secure ID
+               $id = bigintval($id);
+
+               // Is the entry set?
+               if (!empty($cat)) {
+                       switch ($_GET['do'])
+                       {
+                       case "edit": // Change categories
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_cats SET cat='%s', visible='%s', sort=%d WHERE id=%d LIMIT 1",
+                                array($cat, $_POST['vis'][$id], $_POST['sort'][$id], $id), __FILE__, __LINE__);
+                               $TEXT = CATEGORIES_SAVED;
+                               break;
+
+                       case "del": // Delete categories
+                               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_cats WHERE id=%d LIMIT 1",
+                                array($id), __FILE__, __LINE__);
+                               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_cats WHERE cat_id=%d",
+                                array($id), __FILE__, __LINE__);
+                               $TEXT = CATEGORIES_DELETED;
+                               break;
+                       }
+               } else {
+                       // Entry not saved
+                       $TEXT .= sprintf(CATEGORY_NOT_SAVED, $id);
+               }
+       }
+
+       if (isset($TEXT)) {
+               // Display message
+               LOAD_TEMPLATE("admin_settings_saved", false, $TEXT);
+       }
+}
+ elseif ((isset($_POST['del'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0]))))
+{
+       // Delete categories
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$value)
+       {
+               // Load data of category
+               $result = SQL_QUERY_ESC("SELECT cat FROM "._MYSQL_PREFIX."_cats WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($cat) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'  => $SW,
+                       'id'  => $id,
+                       'cat' => $cat,
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("admin_del_cats_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__CAT_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_del_cats");
+} elseif ((isset($_POST['edit'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0])))) {
+       // Edit categories
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$value)
+       {
+               // Load data from the category
+               $result = SQL_QUERY_ESC("SELECT cat, visible, sort FROM "._MYSQL_PREFIX."_cats WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($cat, $vis, $sort) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'   => $SW,
+                       'id'   => $id,
+                       'cat'  => $cat,
+                       'vis'  => ADD_SELECTION("yn", $vis, "vis", $id),
+                       'sort' => $sort,
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("admin_edit_cats_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__CAT_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_edit_cats");
+}
+ else
+{
+       // Load all categories
+       $result = SQL_QUERY("SELECT id, cat, visible, sort FROM "._MYSQL_PREFIX."_cats ORDER BY sort", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List already existing categories for editing
+               $SW = 2; $OUT = ""; $CATS = "";
+               while (list($id, $cat, $visible, $sort) = SQL_FETCHROW($result))
+               {
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'   => $SW,
+                               'id'   => $id,
+                               'cat'  => $cat,
+                               'vis'  => TRANSLATE_YESNO($visible),
+                               'sort' => $sort,
+                       );
+
+                       // Put cat descriptions into variable for the selection box
+                       if (strlen($cat) > 20) $cat = substr($cat, 0, 17)."...";
+                       $CATS .= "      <OPTION value=\"".$sort."\">".$cat."</OPTION>\n";
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_config_cats_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__CAT_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_config_cats");
+       }
+
+       define('CATS', $CATS);
+
+       // Form to add a new category
+       LOAD_TEMPLATE("admin_add_cat");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_doubler.php b/0.2.1/inc/modules/admin/what-config_doubler.php
new file mode 100644 (file)
index 0000000..727a5e7
--- /dev/null
@@ -0,0 +1,144 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2005 *
+ * ================                             Last change: 02/12/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_doubler.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Points doubler                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punkte verdoppeln                                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Replace commata with decimal dot
+       $_POST['doubler_charge'] = str_replace(",", ".", ($_POST['doubler_charge'] / 100));
+       $_POST['doubler_ref']    = str_replace(",", ".", ($_POST['doubler_ref'] / 100));
+       $_POST['doubler_min']    = str_replace(",", ".", $_POST['doubler_min']);
+       $_POST['doubler_max']    = str_replace(",", ".", $_POST['doubler_max']);
+       $_POST['doubler_left']   = str_replace(",", ".", $_POST['doubler_left']);
+
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare data for the template
+       // - Charge rate
+       define('__DOUBLER_CHARGE', TRANSLATE_COMMA(($CONFIG['doubler_charge'] * 100), false));
+       // - Referral rate
+       define('__DOUBLER_REFERRAL', TRANSLATE_COMMA(($CONFIG['doubler_ref'] * 100), false));
+       // - Minimum points to double
+       define('__DOUBLER_MINIMUM', TRANSLATE_COMMA($CONFIG['doubler_min'], false));
+       // - Maximum points to double
+       define('__DOUBLER_MAXIMUM', TRANSLATE_COMMA($CONFIG['doubler_max'], false));
+       // - Points left on users account after doubling
+       define('__DOUBLER_LEFT', TRANSLATE_COMMA($CONFIG['doubler_left'], false));
+       // - Max payouts to check per click/reset
+       define('__DOUBLER_MAX_SENT', $CONFIG['doubler_max_sent']);
+       // - Group sending
+       define('__DOUBLER_GROUP_SENT', $CONFIG['doubler_group_sent']);
+
+       // Take points from jackpot (Y/N)
+       switch ($CONFIG['doubler_jackpot'])
+       {
+       case "Y":
+               define('__DOUBLER_JACKPOT_Y', " checked");
+               define('__DOUBLER_JACKPOT_N', "");
+               break;
+
+       case "N":
+               define('__DOUBLER_JACKPOT_Y', "");
+               define('__DOUBLER_JACKPOT_N', " checked");
+               break;
+       }
+
+       // Take points from own account (Y/N)
+       switch ($CONFIG['doubler_own'])
+       {
+       case "Y":
+               define('__DOUBLER_OWN_Y', " checked");
+               define('__DOUBLER_OWN_N', "");
+               break;
+
+       case "N":
+               define('__DOUBLER_OWN_Y', "");
+               define('__DOUBLER_OWN_N', " checked");
+               break;
+       }
+
+       // Mail send mode
+       switch ($CONFIG['doubler_send_mode'])
+       {
+       case "DIRECT":
+               define('__DOUBLER_SEND_DIRECT', " checked");
+               define('__DOUBLER_SEND_RESET' , "");
+               break;
+
+       case "RESET":
+               define('__DOUBLER_SEND_DIRECT', "");
+               define('__DOUBLER_SEND_RESET' , " checked");
+               break;
+       }
+
+       // Take points from own account (Y/N)
+       switch ($CONFIG['doubler_sent_all'])
+       {
+       case "Y":
+               define('__DOUBLER_SENT_ALL_Y', " checked");
+               define('__DOUBLER_SENT_ALL_N', "");
+               break;
+
+       case "N":
+               define('__DOUBLER_SENT_ALL_Y', "");
+               define('__DOUBLER_SENT_ALL_N', " checked");
+               break;
+       }
+
+       // Transfer options (!!!) to __MEMBER_SELECTION
+       ADD_MEMBER_SELECTION_BOX(false, true, true, $CONFIG['doubler_uid']);
+
+       // Number of rows to display (option lines!!!)
+       define('__DOUBLER_DISPLAY_NEW', ADD_OPTION_LINES("/ARRAY/", array(5,10,20,30,40,50,100), array(5,10,20,30,40,50,100), $CONFIG['doubler_display_new']));
+       define('__DOUBLER_DISPLAY_PAY', ADD_OPTION_LINES("/ARRAY/", array(5,10,20,30,40,50,100), array(5,10,20,30,40,50,100), $CONFIG['doubler_display_pay']));
+       define('__DOUBLER_DISPLAY_OLD', ADD_OPTION_LINES("/ARRAY/", array(5,10,20,30,40,50,100), array(5,10,20,30,40,50,100), $CONFIG['doubler_display_old']));
+
+       // Timeout selection box or input box?
+       define('__DOUBLER_TIMEOUT', CREATE_TIME_SELECTIONS($CONFIG['doubler_timeout']  , "doubler_timeout"  , "WDh"));
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_doubler");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_email.php b/0.2.1/inc/modules/admin/what-config_email.php
new file mode 100644 (file)
index 0000000..e87d58d
--- /dev/null
@@ -0,0 +1,192 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/11/2003 *
+ * ===============                              Last change: 07/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_emails.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Edit all things around email and sending         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Aendern aller Email-Einstellungen                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (empty($_POST['max'])) unset($_POST['add_max']);
+if (isset($_POST['add_max']))
+{
+       // Save all settings
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_max_receive WHERE value='%s' LIMIT 1",
+        array(bigintval($_POST['max'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Add this value (including comment)
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_max_receive (value, comment) VALUES ('%s', '%s')",
+                array(bigintval($_POST['max']), stripslashes($_POST['comment'])),__FILE__, __LINE__);
+               $content = "<SPAN class=\"admin_done\">".MAX_VALUE_SAVED."</SPAN>";
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Value does alread exists!
+               $content = "<SPAN class=\"admin_failed\">".MAX_VALUE_ALREADY."</SPAN>";
+       }
+
+       // Display message
+       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+}
+ elseif ((isset($_POST['ok'])) && (isset($_GET['do'])))
+{
+       // Change or delete entries...
+       $TEXT = "";
+       foreach ($_POST['id'] as $id=>$value)
+       {
+               // Secure ID
+               $id = bigintval($id);
+
+               switch ($_GET['do'])
+               {
+               case "edit": // Change entries
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_max_receive SET value='%s', comment='%s' WHERE id=%d LIMIT 1",
+                        array(bigintval($_POST['val'][$id]), $_POST['comm'][$id], $id),__FILE__, __LINE__);
+                       $TEXT = MRECEIVE_SAVED;
+                       break;
+
+               case "del":
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_max_receive WHERE id=%d LIMIT 1",
+                        array($id), __FILE__, __LINE__);
+                       $TEXT = MRECEIVE_DELETED;
+                       break;
+               }
+       }
+       if (isset($TEXT))
+       {
+               // Display message
+               LOAD_TEMPLATE("admin_settings_saved", false, $TEXT);
+       }
+}
+ elseif ((isset($_POST['del'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0]))))
+{
+       // Delete entries
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$value)
+       {
+               // Load data
+               $result = SQL_QUERY_ESC("SELECT value, comment FROM "._MYSQL_PREFIX."_max_receive WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($value, $comment) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'      => $SW,
+                       'id'      => $id,
+                       'value'   => $value,
+                       'comment' => $comment,
+               );
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_config_email_del_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_config_email_del");
+}
+ elseif ((isset($_POST['edit'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0]))))
+{
+       // Edit entries
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$value)
+       {
+               // Load data
+               $result = SQL_QUERY_ESC("SELECT value, comment FROM "._MYSQL_PREFIX."_max_receive WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($value, $comment) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'      => $SW,
+                       'id'      => $id,
+                       'value'   => $value,
+                       'comment' => $comment,
+               );
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_config_email_edit_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_config_email_edit");
+}
+ else
+{
+       $result = SQL_QUERY("SELECT id, value, comment FROM "._MYSQL_PREFIX."_max_receive ORDER BY value", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List already existing entries for editing
+               $SW = 2; $OUT = "";
+               while (list($id, $value, $comment) = SQL_FETCHROW($result))
+               {
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'      => $SW,
+                               'id'      => $id,
+                               'value'   => $value,
+                               'comment' => $comment,
+                       );
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_config_email_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_config_email");
+       }
+
+       // Display form
+       LOAD_TEMPLATE("admin_add_max");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_extensions.php b/0.2.1/inc/modules/admin/what-config_extensions.php
new file mode 100644 (file)
index 0000000..2504ad8
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/12/2004 *
+ * ================                             Last change: 09/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_extensions.php                       *
+ * -------------------------------------------------------------------- *
+ * Short description : Configuration for the extension system           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Konfiguration des Erweiterungs-Management        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save configuration
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare data
+       switch ($CONFIG['verbose_sql'])
+       {
+               case "Y": define('__VERBOSE_Y', " checked"); define('__VERBOSE_N', "");         break;
+               case "N": define('__VERBOSE_Y', "");         define('__VERBOSE_N', " checked"); break;
+       }
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_extensions");
+
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_holiday.php b/0.2.1/inc/modules/admin/what-config_holiday.php
new file mode 100644 (file)
index 0000000..39b50aa
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/24/2004 *
+ * ================                             Last change: 11/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_holiday.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Configuration                                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einstellungen                                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare constants for the template
+       define('__MAX_VALUE', $CONFIG['holiday_max']);
+       define('__LOCKED'   , CREATE_TIME_SELECTIONS($CONFIG['holiday_lock']  , "holiday_lock"  , "WDh"));
+       switch ($CONFIG['holiday_mode'])
+       {
+       case "RESET":
+               define('__RESET_DEFAULT' , " checked");
+               define('__DIRECT_DEFAULT', "");
+               break;
+
+       case "DIRECT":
+               define('__RESET_DEFAULT' , "");
+               define('__DIRECT_DEFAULT', " checked");
+               break;
+       }
+
+       // Load form template
+       LOAD_TEMPLATE("admin_config_holiday");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_home.php b/0.2.1/inc/modules/admin/what-config_home.php
new file mode 100644 (file)
index 0000000..d580615
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/22/2004 *
+ * ================                             Last change: 09/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_home.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Set "home" page                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : "Home"-Seite festlegen                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$sub = "";
+if (!empty($_GET['sub'])) $sub = $_GET['sub'];
+
+switch ($sub)
+{
+case "": // Output selection table
+       LOAD_TEMPLATE("admin_config_home_main");
+       break;
+
+case "settings": // Settings related to the index page
+       if (isset($_POST['ok']))
+       {
+               // Save settings
+               ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+               OUTPUT_HTML ("<A href=\"".URL."/modules.php?module=admin&amp;what=config_home&amp;sub=settings\">".ADMIN_CONTINUE_TO_CONFIG."</A>");
+       }
+        else
+       {
+               // Prepare data for the template
+               $content = array_fill(-1, 60, "");
+               $content[$CONFIG['index_delay']] = " selected=\"selected\"";
+
+               define('__INDEX_COOKIE_SELECTION', CREATE_TIME_SELECTIONS($CONFIG['index_cookie'], "index_cookie", "YMWD"));
+               LOAD_TEMPLATE("admin_config_home_settings", false, $content);
+       }
+       break;
+
+case "target": // Set which what-file will be placed in home-page (only modules.php?module=index)
+       if (isset($_GET['home']))
+       {
+               // Set new home
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET index_home='%s' WHERE config='0' LIMIT 1", array($_GET['home']), __FILE__, __LINE__);
+               $CONFIG['index_home'] = $_GET['home'];
+       }
+
+       // Load all what menu points
+       $result = SQL_QUERY("SELECT id, what, title
+ FROM "._MYSQL_PREFIX."_guest_menu
+ WHERE action='main' AND what != '' AND locked='N'
+ ORDER BY sort", __FILE__, __LINE__);
+
+       $SW = 2; $OUT = ""; $atitle = "";
+       while (list($id, $wht, $wtitle) = SQL_FETCHROW($result))
+       {
+               $LINK = "<A href=\"".URL."/modules.php?module=admin&amp;what=config_home&amp;sub=target&amp;home=".$wht."\">"._IS_NEW_HOME."</A>";
+               if ($wht == $CONFIG['index_home'])
+               {
+                       // Is current home
+                       $LINK   = "<STRONG class=\"admin_note\">"._IS_CURRENT_HOME."</STRONG>";
+                       $atitle = "<STRONG class=\"admin_note\">".$atitle."</STRONG>";
+                       $wtitle = "<STRONG class=\"admin_note\">".$wtitle."</STRONG>";
+               }
+
+               // Add row...
+               $OUT .= "<TR>
+         <TD class=\"switch_sw".$SW." bottom right\">&nbsp;".$id."</TD>
+         <TD class=\"switch_sw".$SW." bottom right\">&nbsp;".$wtitle."</TD>
+         <TD class=\"switch_sw".$SW." bottom\" align=\"center\">
+           ".$LINK."
+         </TD>
+       </TR>\n";
+
+               // Switch color
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__HOME_ROWS', $OUT);
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_home");
+       break;
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_mediadata.php b/0.2.1/inc/modules/admin/what-config_mediadata.php
new file mode 100644 (file)
index 0000000..d089f14
--- /dev/null
@@ -0,0 +1,103 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ================                             Last change: 02/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Test timestamp
+       $STAMP = mktime(0, 0, 0, bigintval($_POST['month']), bigintval($_POST['day']), bigintval($_POST['year']));
+       if ($STAMP > time())
+       {
+               // Date is in the future!
+               unset($_POST['ok']);
+       }
+        else
+       {
+               // Remove entries
+               unset($_POST['day']);
+               unset($_POST['month']);
+               unset($_POST['year']);
+
+               // Remember timestamp
+               $_POST['mt_start'] = $STAMP;
+       }
+
+       // Convert some data
+       $_POST['mt_stage'] = bigintval($_POST['mt_stage']);
+       if ($_POST['mt_stage'] <= GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true))
+       {
+               // Not enougth!
+               unset($_POST['ok']);
+       }
+}
+
+if (isset($_POST['ok']))
+{
+       // Save data
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Start of this exchange
+       if ($CONFIG['mt_start'] > 0)
+       {
+               // Only show start
+               define('__MT_START', "<STRONG>".MAKE_DATETIME($CONFIG['mt_start'], "3")."</STRONG>");
+       }
+        else
+       {
+               // Make start editable
+               define('__MT_START',
+                       ADD_SELECTION("day"  , date("d", time())).
+                       ADD_SELECTION("month", date("m", time())).
+                       ADD_SELECTION("year",  -1)
+               );
+       }
+
+       // Next stage of this MT
+       define('__MT_STAGE', $CONFIG['mt_stage']);
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_mediadata");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_mods.php b/0.2.1/inc/modules/admin/what-config_mods.php
new file mode 100644 (file)
index 0000000..cfd12d9
--- /dev/null
@@ -0,0 +1,162 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/27/2004 *
+ * ================                             Last change: 08/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_mods.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Module configuration                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Modul-Konfiguration                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$SEL = 0;
+if (isset($_POST['edit']))
+{
+       // Check if at least one module is selected
+       $SEL = SELECTION_COUNT($_POST['sel']);
+       if ($SEL > 0)
+       {
+               // Output header
+               $OUT = ""; $SW = 2;
+
+               // Edit selected modules
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       // Load module data
+                       $result = SQL_QUERY_ESC("SELECT module, title, locked, hidden, admin_only, mem_only FROM "._MYSQL_PREFIX."_mod_reg WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       list($mod, $title, $locked, $hidden, $admin, $mem) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Prepare array for the template
+                       $content = array(
+                               'sw'     => $SW,
+                               'mod'    => $mod,
+                               'id'     => $id,
+                               'title'  => $title,
+                               'locked' => ADD_SELECTION("yn", $locked, "locked", $id),
+                               'hidden' => ADD_SELECTION("yn", $hidden, "hidden", $id),
+                               'admin'  => ADD_SELECTION("yn", $admin , "admin" , $id),
+                               'mem'    => ADD_SELECTION("yn", $mem   , "member", $id),
+                       );
+
+                       // Load row template
+                       $OUT .= LOAD_TEMPLATE("admin_mods_edit_row", true, $content);
+               }
+               define('__MODS_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_mods_edit");
+       }
+        else
+       {
+               // Nothing selected
+               LOAD_TEMPLATE("admin_settings_saved", false, MODS_NOTHING_SELECTED);
+               OUTPUT_HTML ("<BR>");
+
+               // Remove maybe confusing data
+               unset($_POST['edit']);
+               unset($_POST['change']);
+       }
+}
+ elseif (isset($_POST['change']))
+{
+       // Change modules
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               // Secure ID number
+               $id = bigintval($id);
+
+               // Update module
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_mod_reg SET title='%s', locked='%s', hidden='%s', admin_only='%s', mem_only='%s' WHERE id=%d LIMIT 1",
+                array($_POST['title'][$id], $_POST['locked'][$id], $_POST['hidden'][$id], $_POST['admin'][$id], $_POST['member'][$id], $id),  __FILE__, __LINE__);
+       }
+
+       // Remove cache file if version matches
+       if (GET_EXT_VERSION("cache") >= "0.1.2")
+       {
+               if ($CACHE->cache_file("mod_reg", true)) $CACHE->cache_destroy();
+       }
+
+       // Entries updated
+       LOAD_TEMPLATE("admin_settings_saved", false, MODS_CHANGED);
+       OUTPUT_HTML ("<BR>");
+}
+
+if ($SEL == 0)
+{
+       // Load module data (We do not need to check if there's at least one...)
+       $result = SQL_QUERY("SELECT id, module, locked, hidden, admin_only, title, mem_only, clicks
+FROM "._MYSQL_PREFIX."_mod_reg
+ORDER BY module", __FILE__, __LINE__);
+       $OUT = ""; $SW = 2;
+       while (list($id, $mod, $locked, $hidden, $admin, $title, $mem) = SQL_FETCHROW($result))
+       {
+               // Reset title to --- if it is NULL
+               if (empty($title)) $title = "---";
+               if (($mod == "index") || ($mod == "login"))
+               {
+                       // Add link to detail statistics
+                       $mod = "<STRONG><A href=\"".URL."/modules.php?module=admin&amp;what=stats_mods&amp;mod=".$mod."\">".$mod."</A></STRONG>";
+               }
+
+               // Prepare array for the template
+               $content = array(
+                       'sw'     => $SW,
+                       'id'     => $id,
+                       'mod'    => $mod,
+                       'title'  => $title,
+                       'locked' => TRANSLATE_YESNO($locked),
+                       'hidden' => TRANSLATE_YESNO($hidden),
+                       'admin'  => TRANSLATE_YESNO($admin),
+                       'mem'    => TRANSLATE_YESNO($mem),
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("admin_mods_list_row", true, $content);
+
+               // Switch colors
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__MODS_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_mods_list");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_newsletter.php b/0.2.1/inc/modules/admin/what-config_newsletter.php
new file mode 100644 (file)
index 0000000..61536e4
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/03/2005 *
+ * ================                             Last change: 03/03/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_newsletter.php                       *
+ * -------------------------------------------------------------------- *
+ * Short description : Configure the newsletter                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einstellen der Turbo-Klick-Verguetungen          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save data
+       $_POST['nl_charge'] = str_replace(",", ".", $_POST['nl_charge']);
+
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare contants for the template
+       define('__CHARGE_VALUE'  , TRANSLATE_COMMA($CONFIG['nl_charge'], false));
+
+       // Prepare constants and load template
+       LOAD_TEMPLATE("admin_config_newsletter", false);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_nickname.php b/0.2.1/inc/modules/admin/what-config_nickname.php
new file mode 100644 (file)
index 0000000..378a406
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/22/2004 *
+ * ================                             Last change: 12/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_nickname.php                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Nickname configuration                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Konfiguration des Nicknamens                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save data
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Load template
+       LOAD_TEMPLATE("admin_config_nickname");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_order.php b/0.2.1/inc/modules/admin/what-config_order.php
new file mode 100644 (file)
index 0000000..5714b3a
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/22/2004 *
+ * ================                             Last change: 09/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_order.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Configuration for order page                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Konfiguration der Mailbuchungsseite              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save data
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare constants for the template
+       switch ($CONFIG['order_max'])
+       {
+       case "ORDER":
+               define('__ORDER_DEFAULT', " checked");
+               define('__MAX_DEFAULT'  , "");
+               break;
+
+       case "MAX":
+               define('__ORDER_DEFAULT', "");
+               define('__MAX_DEFAULT'  , " checked");
+               break;
+       }
+
+       // Minimum mails / order
+       define('__MIN_VALUE', $CONFIG['order_min']);
+
+       // Sorting mode (ascending / descending)
+       switch ($CONFIG['order_mode'])
+       {
+       case "ASC":
+               define('__ASC_DEFAULT' , " selected=\"selected\"");
+               define('__DESC_DEFAULT', "");
+               break;
+
+       case "DESC":
+               define('__ASC_DEFAULT' , "");
+               define('__DESC_DEFAULT', " selected=\"selected\"");
+               break;
+       }
+
+       // Selection list
+       define('__ORDER_SELECT', ORDER_SELECT_OPTION_LIST($CONFIG['order_select']));
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_order");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_other.php b/0.2.1/inc/modules/admin/what-config_other.php
new file mode 100644 (file)
index 0000000..9f00f40
--- /dev/null
@@ -0,0 +1,238 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/11/2003 *
+ * ===============                              Last change: 09/21/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_other.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : basic settings                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Grund Einstellungen                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif ((!EXT_IS_ACTIVE("other")) || (GET_EXT_VERSION("other") == "")) {
+       // Missing extension!
+       ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "other"));
+       return;
+}
+global $link;
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Stop saving data if one input field is !isset
+if (isset($_POST['ok']))
+{
+       if (function_exists('CREATE_TIME_SELECTIONS'))
+       {
+               // Calculate stamps and set calculated stamps
+               $_POST['online_timeout']        = CREATE_TIMESTAMP_FROM_SELECTIONS("ip_timeout"           , $_POST);
+               $_POST['url_tlock']             = CREATE_TIMESTAMP_FROM_SELECTIONS("url_tlock"            , $_POST);
+               $_POST['profile_lock']          = CREATE_TIMESTAMP_FROM_SELECTIONS("profile_lock"         , $_POST);
+               $_POST['profile_update']        = CREATE_TIMESTAMP_FROM_SELECTIONS("profile_update"       , $_POST);
+               $_POST['resend_profile_update'] = CREATE_TIMESTAMP_FROM_SELECTIONS("resend_profile_update", $_POST);
+       }
+
+       // Online-Timeout shall be > 0 or your database will crow and crow and crow...
+       if (!isset($_POST['online_timeout']))         { unset($_POST['ok']); }
+
+       // Chedck other timestamps (which can be zero!)
+       if (!isset($_POST['profile_lock']))          { unset($_POST['ok']); }
+       if (!isset($_POST['url_tlock']))             { unset($_POST['ok']); }
+       if (!isset($_POST['profile_update']))        { unset($_POST['ok']); }
+       if (!isset($_POST['resend_profile_update'])) { unset($_POST['ok']); }
+
+       // Check other settings
+       if (!isset($_POST['max_send']))              { unset($_POST['ok']); }
+       if (!isset($_POST['max_tlength']))           { unset($_POST['ok']); }
+       if (!isset($_POST['unconfirmed']))           { unset($_POST['ok']); }
+       if (!isset($_POST['code_length']))           { unset($_POST['ok']); }
+       if (!isset($_POST['reject_url']))            { unset($_POST['ok']); }
+}
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (isset($_POST['ok']))
+{
+       // Update stamps directly
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Transfer config data into constants for the template (DO NOT set $CONFIG as global in LOAD_TEMPLATE!!!)
+       define('_CFG_UNCONFIRMED'   , $CONFIG['unconfirmed']);
+       define('_CFG_MAX_TLENGTH'   , $CONFIG['max_tlength']);
+       define('_CFG_CODE_LENGTH'   , $CONFIG['code_length']);
+       define('_CFG_ACT_SYSTEM'    , $CONFIG['activate_xchange']);
+       define('_CFG_MAX_SEND'      , $CONFIG['max_send']);
+       define('_CFG_REJECT_URL'    , $CONFIG['reject_url']);
+
+       // Is there the pro-version function avaiable to create selection boxes instead of input boxes?
+       if (function_exists('CREATE_TIME_SELECTIONS'))
+       {
+               // Only pro versions: time selection boxes
+               define('_CFG_ONLINE_TIMEOUT', CREATE_TIME_SELECTIONS($CONFIG['online_timeout'], "ip_timeout"           , "ms"));
+               define('_CFG_URL_TLOCK'     , CREATE_TIME_SELECTIONS($CONFIG['url_tlock']     , "url_tlock"            , "WDh"));
+               define('_CFG_PROFILE_LOCK'  , CREATE_TIME_SELECTIONS($CONFIG['profile_lock']  , "profile_lock"         , "WDh"));
+               define('_CFG_PROFILE_UPDATE', CREATE_TIME_SELECTIONS($CONFIG['profile_update'], "profile_update"       , "YM"));
+               define('_CFG_PROF_REUPDATE' , CREATE_TIME_SELECTIONS($CONFIG['resend_profile_update'] , "resend_profile_update", "MWD"));
+       }
+        else
+       {
+               // Normal input boxes
+               define('_CFG_ONLINE_TIMEOUT', "<INPUT type=\"text\" name=\"online_timeout\" class=\"admin_normal\" size=\"6\"  maxlength=\"255\" value=\"".$CONFIG['online_timeout']."\"> <FONT class=\"tiny\">(".SECS.")</FONT>");
+               define('_CFG_URL_TLOCK'     , "<INPUT type=\"text\" name=\"url_tlock\" class=\"admin_normal\" size=\"6\"  maxlength=\"255\" value=\"".$CONFIG['url_tlock']     ."\"> <FONT class=\"tiny\">(".SECS.")</FONT>");
+               define('_CFG_PROFILE_LOCK'  , "<INPUT type=\"text\" name=\"profile_lock\" class=\"admin_normal\" size=\"6\"  maxlength=\"255\" value=\"".$CONFIG['profile_lock']  ."\"> <FONT class=\"tiny\">(".SECS.")</FONT>");
+               define('_CFG_PROFILE_UPDATE', "<INPUT type=\"text\" name=\"profile_update\" class=\"admin_normal\" size=\"10\" maxlength=\"255\" value=\"".$CONFIG['profile_update']."\"> <FONT class=\"tiny\">(".SECS.")</FONT>");
+               define('_CFG_PROF_REUPDATE' , "<INPUT type=\"text\" name=\"resend_profile_update\" class=\"admin_normal\" size=\"6\"  maxlength=\"255\" value=\"".$CONFIG['resend_profile_update'] ."\"> <FONT class=\"tiny\">(".SECS.")</FONT>");
+       }
+
+       if ($CONFIG['test_text'] == "N")
+       {
+               define('_CFG_TEST_TEXT_N', " checked");
+               define('_CFG_TEST_TEXT_Y', "");
+       }
+        else
+       {
+               define('_CFG_TEST_TEXT_N', "");
+               define('_CFG_TEST_TEXT_Y', " checked");
+       }
+       if ($CONFIG['test_subj'] == "N")
+       {
+               define('_CFG_TEST_SUBJ_N', " checked");
+               define('_CFG_TEST_SUBJ_Y', "");
+       }
+        else
+       {
+               define('_CFG_TEST_SUBJ_N', "");
+               define('_CFG_TEST_SUBJ_Y', " checked");
+       }
+       if ($CONFIG['url_blacklist'] == "N")
+       {
+               define('_CFG_URL_BLIST_N', " checked");
+               define('_CFG_URL_BLIST_Y', "");
+       }
+        else
+       {
+               define('_CFG_URL_BLIST_N', "");
+               define('_CFG_URL_BLIST_Y', " checked");
+       }
+       if ($CONFIG['order_multi_page'] == "N")
+       {
+               define('_CFG_ORDER_MULTI_N', " checked");
+               define('_CFG_ORDER_MULTI_Y', "");
+       }
+        else
+       {
+               define('_CFG_ORDER_MULTI_N', "");
+               define('_CFG_ORDER_MULTI_Y', " checked");
+       }
+       if ($CONFIG['autosend_active'] == "N")
+       {
+               define('_CFG_AUTOSEND_ACTIVE_N', " checked");
+               define('_CFG_AUTOSEND_ACTIVE_Y', "");
+       }
+        else
+       {
+               define('_CFG_AUTOSEND_ACTIVE_N', "");
+               define('_CFG_AUTOSEND_ACTIVE_Y', " checked");
+       }
+       if ($CONFIG['send_prof_update'] == "N")
+       {
+               define('_CFG_SEND_UPDATE_N', " checked");
+               define('_CFG_SEND_UPDATE_Y', "");
+       }
+        else
+       {
+               define('_CFG_SEND_UPDATE_N', "");
+               define('_CFG_SEND_UPDATE_Y', " checked");
+       }
+       if ($CONFIG['admin_notify'] == "N")
+       {
+               define('_CFG_ADMIN_NOTIFY_N', " checked");
+               define('_CFG_ADMIN_NOTIFY_Y', "");
+       }
+        else
+       {
+               define('_CFG_ADMIN_NOTIFY_N', "");
+               define('_CFG_ADMIN_NOTIFY_Y', " checked");
+       }
+       if ($CONFIG['css_php'] == "DIRECT")
+       {
+               define('_CFG_CSS_PHP_DIRECT', " checked");
+               define('_CFG_CSS_PHP_FILE', "");
+       }
+        else
+       {
+               define('_CFG_CSS_PHP_DIRECT', "");
+               define('_CFG_CSS_PHP_FILE', " checked");
+       }
+       if ($CONFIG['guest_menu'] == "Y")
+       {
+               define('_CFG_GUEST_MENU_ACTIVE', " checked");
+               define('_CFG_GUEST_MENU_INACTIVE', "");
+       }
+        else
+       {
+               define('_CFG_GUEST_MENU_ACTIVE', "");
+               define('_CFG_GUEST_MENU_INACTIVE', " checked");
+       }
+       if ($CONFIG['member_menu'] == "Y")
+       {
+               define('_CFG_MEMBER_MENU_ACTIVE', " checked");
+               define('_CFG_MEMBER_MENU_INACTIVE', "");
+       }
+        else
+       {
+               define('_CFG_MEMBER_MENU_ACTIVE', "");
+               define('_CFG_MEMBER_MENU_INACTIVE', " checked");
+       }
+       if ($CONFIG['youre_here'] == "Y")
+       {
+               define('_CFG_YOURE_HERE_ACTIVE', " checked");
+               define('_CFG_YOURE_HERE_INACTIVE', "");
+       }
+        else
+       {
+               define('_CFG_YOURE_HERE_ACTIVE', "");
+               define('_CFG_YOURE_HERE_INACTIVE', " checked");
+       }
+
+       for ($i = 0; $i <= 5; $i++)
+       {
+               $eval = "define('_COMMA_DEF_".$i."', \"\");";
+               if ($CONFIG['max_comma'] == $i) $eval = "define('_COMMA_DEF_".$i."', \" selected\");";
+               eval($eval);
+       }
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_other");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_payouts.php b/0.2.1/inc/modules/admin/what-config_payouts.php
new file mode 100644 (file)
index 0000000..ef2ee32
--- /dev/null
@@ -0,0 +1,249 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/11/2004 *
+ * ================                             Last change: 08/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_payouts.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Configure payout types                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auszahlungensarten editieren                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (!empty($_POST['rate'])) $_POST['rate'] = str_replace(",", ".", $_POST['rate']);
+
+if ((isset($_POST['add'])) && (!empty($_POST['title'])) && ($_POST['rate'] > 0))
+{
+       // Add new payout type
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_payout_types WHERE type='%s' LIMIT 1",
+        array($_POST['title']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Add now
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_payout_types
+(type, rate, min_points, from_account, from_pass, engine_url, engine_ret_ok, engine_ret_failed, pass_enc, allow_url)
+VALUES ('%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
+ array(
+       $_POST['title'],
+       bigintval($_POST['rate']),
+       bigintval($_POST['mpoi']),
+       $_POST['yacc'],
+       $_POST['ypass'],
+       $_POST['yurl'],
+       $_POST['yrdone'],
+       $_POST['yrfailed'],
+       $_POST['ytrans'],
+       $_POST['allow_url'],
+), __FILE__, __LINE__);
+               $msg = "<FONT class=\"admin_done\">".ADMIN_PAYOUT_TYPE_ADDED."</FONT>";
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Does already exist
+               $msg = "<FONT class=\"admin_failed\">".ADMIN_PAYOUT_TYPE_ALREADY."</FONT>";
+       }
+}
+
+// Payout requests by your members
+$result_mem = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_user_payouts WHERE status='NEW' ORDER BY payout_timestamp DESC", __FILE__, __LINE__);
+
+$display = true;
+if ((isset($_POST['edit'])) && (SELECTION_COUNT($_POST['sel']) > 0))
+{
+       // Edit payout types
+       if ((isset($_GET['ok'])) && ($_GET['ok'] == "ok"))
+       {
+               // Edit entries
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       // Secure ID
+                       $id = bigintval($id);
+
+                       // Edit only if something is entered
+                       if ((!empty($_POST['title'][$id])) && ($_POST['rate'][$id] > 0))
+                       {
+                               // Update entry
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_payout_types SET
+type='%s',
+rate=%d,
+min_points=%d,
+allow_url='%s'
+WHERE id='".$id."' LIMIT 1",
+ array(
+       $_POST['title'][$id],
+       bigintval(str_replace(",", ".", $_POST['rate'][$id])),
+       bigintval(str_replace(",", ".", $_POST['mpoi'][$id])),
+       $_POST['allow'][$id],
+),__FILE__, __LINE__);
+                       }
+               }
+               $msg = ADMIN_PAYOUT_ENTRIES_CHANGED;
+       }
+        else
+       {
+               $display = false; //Suppress any other outputs
+               $SW = 2; $OUT = "";
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       // Load data
+                       $result = SQL_QUERY_ESC("SELECT type, rate, min_points, allow_url FROM "._MYSQL_PREFIX."_payout_types WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       list($title, $rate, $mpoi, $allow) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'    => $SW,
+                               'id'    => $id,
+                               'title' => COMPILE_CODE($title),
+                               'rate'  => TRANSLATE_COMMA($rate),
+                               'mpoi'  => TRANSLATE_COMMA($mpoi),
+                               'allow' => ADD_SELECTION("yn", $allow, "allow[".$id."]"),
+                       );
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_config_payouts_edit_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+               define('__PAYOUT_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_config_payouts_edit");
+       }
+}
+ elseif ((isset($_POST['del'])) && (SELECTION_COUNT($_POST['sel']) > 0))
+{
+       // Delete payout types
+       if ($_GET['ok'] == "ok")
+       {
+               // Delete entries
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_payout_types WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+               }
+               $msg = ADMIN_PAYOUT_ENTRIES_DELETED;
+       }
+        else
+       {
+               $display = false; //Suppress any other outputs
+               $SW = 2; $OUT = "";
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       // Secure ID number
+                       $id = bigintval($id);
+
+                       // Load data
+                       $result = SQL_QUERY_ESC("SELECT type, rate, min_points FROM "._MYSQL_PREFIX."_payout_types WHERE id=%d LIMIT 1",
+                        array($id), __FILE__, __LINE__);
+                       list($title, $rate, $mpoi) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'    => $SW,
+                               'id'    => $id,
+                               'title' => COMPILE_CODE($title),
+                               'rate'  => TRANSLATE_COMMA($rate),
+                               'mpoi'  => TRANSLATE_COMMA($mpoi),
+                       );
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_config_payouts_del_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+               define('__PAYOUT_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_config_payouts_del");
+       }
+}
+
+if (!empty($msg))
+{
+       // Output message
+       LOAD_TEMPLATE("admin_settings_saved", false, $msg);
+}
+
+// Payout types
+$result_type = SQL_QUERY("SELECT id, type, rate, min_points, from_account FROM "._MYSQL_PREFIX."_payout_types ORDER BY type", __FILE__, __LINE__);
+
+if ((SQL_NUMROWS($result_type) > 0) && ($display))
+{
+       // List all payout types
+       $SW = 2; $OUT = "";
+       while (list($id, $type, $rate, $mpoi, $from) = SQL_FETCHROW($result_type))
+       {
+               // Prepare data for the row template
+               $content = array(
+                       'sw'    => $SW,
+                       'id'    => $id,
+                       'from'  => COMPILE_CODE($from),
+                       'type'  => COMPILE_CODE($type),
+                       'rate'  => TRANSLATE_COMMA($rate),
+                       'mpoi'  => TRANSLATE_COMMA($mpoi),
+               );
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_config_payouts_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_type);
+       define('__PAYOUT_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_config_payouts");
+}
+
+// Does your members request payouts?
+if ((SQL_NUMROWS($result_mem) > 0) && ($display))
+{
+       // Members has requested payouts
+       SQL_FREERESULT($result_mem);
+       OUTPUT_HTML ("<P><A href=\"".URL."/modules.php?module=admin&amp;what=list_payouts\">".ADMIN_PAYOUT_LIST_REQUESTS."</A></P>");
+}
+ elseif ($display)
+{
+       // No member requests so far
+       OUTPUT_HTML ("<P><STRONG>".ADMIN_PAYOUT_NO_MEMBER_REQUESTS."</STRONG></P>");
+}
+// Add new paypout type
+if ($display) LOAD_TEMPLATE("admin_payout_add_new");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_points.php b/0.2.1/inc/modules/admin/what-config_points.php
new file mode 100644 (file)
index 0000000..a1e3599
--- /dev/null
@@ -0,0 +1,326 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/12/2003 *
+ * ===============                              Last change: 12/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_points.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup welcome-points for registration etc.       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einstellen der Willkommensgutschrift usw.        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+global $link;
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (!empty($_GET['sub']))
+{
+       switch ($_GET['sub'])
+       {
+       case "points":
+               if ((empty($_POST['points_register'])) || (empty($_POST['points_ref'])))
+               {
+                       unset($_POST['ok']);
+               }
+               break;
+
+       case "ref":
+               if (isset($_GET['do']))
+               {
+                       if (((empty($_POST['lvl'])) || (empty($_POST['perc']))) && ($_GET['do'] == "add"))
+                       {
+                               unset($_POST['ok']);
+                       }
+               }
+               break;
+       }
+}
+ else
+{
+       // Display overview
+       $_GET['sub'] = "overview";
+}
+
+if (isset($_POST['ok']))
+{
+       $SQL = array();
+       switch ($_GET['sub'])
+       {
+       case "points":
+               $SQL[] = "UPDATE "._MYSQL_PREFIX."_config SET points_register='".$_POST['points_register']."', points_ref='".$_POST['points_ref']."' WHERE config='0' LIMIT 1";
+               break;
+
+       case "ref":
+               switch ($_GET['do'])
+               {
+               case "add":
+                       $SQL[] = "INSERT INTO "._MYSQL_PREFIX."_refdepths (level, percents) VALUES ('".$_POST['lvl']."', '".$_POST['perc']."')";
+                       break;
+
+               case "edit": // Change entries
+                       foreach ($_POST['lvl'] as $id=>$value)
+                       {
+                               // Secure ID
+                               $id = bigintval($id);
+
+                               // Update entry
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_refdepths SET level='%s', percents='%s' WHERE id=%d LIMIT 1",
+                                array(bigintval($value), $_POST['perc'][$id], $id), __FILE__, __LINE__);
+                       }
+                       $TEXT = REF_DEPTHS_SAVED;
+                       break;
+
+               case "del":
+                       foreach ($_POST['id'] as $id=>$value)
+                       {
+                               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_refdepths WHERE id=%d LIMIT 1",
+                                array(bigintval($id)), __FILE__, __LINE__);
+                       }
+                       $TEXT = REF_DEPTHS_DELETED;
+                       break;
+               }
+
+               // Update cache file
+               if (GET_EXT_VERSION("cache") >= "0.1.2")
+               {
+                       if ($CACHE->cache_file("refdepths", true)) $CACHE->cache_destroy();
+               }
+               break;
+
+       case "settings":
+               $REF = bigintval($_POST['ref_payout']);
+               $SQL[] = sprintf("UPDATE "._MYSQL_PREFIX."_config SET
+allow_direct_pay='%s',
+reg_points_mode='%s',
+ref_payout='%d'
+WHERE config='0' LIMIT 1",
+ $_POST['allow_direct_pay'],
+ $_POST['refmode'],
+ $REF
+               );
+               if (($CONFIG['ref_payout'] == 0) && ($_POST['ref_payout'] > 0))
+               {
+                       // Update account's ref_payout for "must-confirm"
+                       $SQL[] = sprintf("UPDATE "._MYSQL_PREFIX."_user_data SET ref_payout=(%d - mails_confirmed)
+WHERE mails_confirmed < %d", $REF, $REF);
+               }
+                elseif (($CONFIG['ref_payout'] > 0) && ($_POST['ref_payout'] == 0))
+               {
+                       // Update account's ref_payout for "not-must-confirm"
+                       $SQL[] = "UPDATE "._MYSQL_PREFIX."_user_data SET ref_payout=0 WHERE ref_payout > 0";
+                       $SQL[] = "UPDATE "._MYSQL_PREFIX."_user_points SET points=points+locked_points WHERE locked_points>0";
+                       $SQL[] = "UPDATE "._MYSQL_PREFIX."_user_points SET locked_points=0 WHERE locked_points>0";
+               }
+               break;
+       }
+       if ((isset($SQL)) && (is_array($SQL)) && (!empty($SQL[0])))
+       {
+               if (strpos($SQL[0], "INSERT") > -1)
+               {
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_refdepths WHERE level='%s' LIMIT 1",
+                        array(bigintval($_POST['lvl'])), __FILE__, __LINE__);
+                       SQL_FREERESULT($result);
+               }
+               if (count($SQL) > 0)
+               {
+                       // Run all SQL commands
+                       foreach ($SQL as $s)
+                       {
+                               $result = SQL_QUERY($s, __FILE__, __LINE__);
+                       }
+
+                       $content = "<SPAN class=\"admin_done\">".SETTINGS_SAVED."</SPAN>";
+
+                       // Destroy config cache file here...
+                       if (GET_EXT_VERSION("cache") >= "0.1.2")
+                       {
+                               if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy();
+                               unset($CFG_CACHE);
+                       }
+               }
+                else
+               {
+                       $content = "<SPAN class=\"admin_failed\">".SETTINGS_NOT_SAVED."</SPAN>";
+               }
+               unset($SQL);
+               LOAD_TEMPLATE("admin_settings_saved", false, $content);
+       }
+        elseif (isset($TEXT))
+       {
+               LOAD_TEMPLATE("admin_settings_saved", false, $TEXT);
+       }
+}
+ elseif ($_GET['sub'] == "settings")
+{
+       // Setup some settings like direct pay and so on
+       // Including new add-mode for one-time referral bonus
+       switch ($CONFIG['allow_direct_pay'])
+       {
+       case "Y":
+               define('__DIRECT_Y', " checked");
+               define('__DIRECT_N', "");
+               break;
+
+       case "N":
+               define('__DIRECT_Y', "");
+               define('__DIRECT_N', " checked");
+               break;
+       }
+
+       // One-time referral bonus add-mode
+       switch ($CONFIG['reg_points_mode'])
+       {
+               case "ref"   : define('__MODE_REF', " checked"); define('__MODE_DIRECT', "");         break;
+               case "direct": define('__MODE_REF', "");         define('__MODE_DIRECT', " checked"); break;
+       }
+
+       // Referral payout value
+       define('__REF_PAYOUT', round($CONFIG['ref_payout']));
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_point_settings");
+}
+ elseif ($_GET['sub'] == "ref")
+{
+        if ((isset($_POST['del'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0]))))
+       {
+               // Delete entries
+               $SW = 2; $OUT = "";
+               foreach ($_POST['sel'] as $id=>$value)
+               {
+                       $result = SQL_QUERY_ESC("SELECT level, percents FROM "._MYSQL_PREFIX."_refdepths WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       list($lvl, $perc) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'  => $SW,
+                               'id'  => $id,
+                               'lvl' => $lvl,
+                               'per' => $perc,
+                       );
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_points_del_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+               define('__LEVEL_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_points_del");
+       }
+        elseif ((isset($_POST['edit'])) && ((SELECTION_COUNT($_POST['sel']) > 0) || (isset($_POST['sel'][0]))))
+       {
+               // Edit entries
+               $SW = 2; $OUT = "";
+               foreach ($_POST['sel'] as $id=>$value)
+               {
+                       $result = SQL_QUERY_ESC("SELECT level, percents FROM "._MYSQL_PREFIX."_refdepths WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       list($lvl, $perc) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'  => $SW,
+                               'id'  => $id,
+                               'lvl' => $lvl,
+                               'per' => $perc,
+                       );
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_points_edit_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+               define('__LEVEL_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_points_edit");
+       }
+        else
+       {
+               // Referral levels
+               $result = SQL_QUERY("SELECT id, level, percents FROM "._MYSQL_PREFIX."_refdepths ORDER BY level", __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) > 0)
+               {
+                       // Make referral levels editable and deletable
+                       $SW = 2; $OUT = "";
+
+                       // List already existing categories for editing
+                       while (list($id, $lvl, $perc) = SQL_FETCHROW($result))
+                       {
+                               // Prepare data for the row template
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'id'  => $id,
+                                       'lvl' => $lvl,
+                                       'per' => $perc,
+                               );
+
+                               // Load row template and switch color
+                               $OUT .= LOAD_TEMPLATE("admin_points_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+                       define('__LEVEL_ROWS', $OUT);
+
+                       // Load main template
+                       LOAD_TEMPLATE("admin_points");
+               }
+
+               // Form for adding new referral levels
+               LOAD_TEMPLATE("admin_add_reflvl");
+       }
+}
+ elseif ($_GET['sub'] == "points")
+{
+       // First points for registration and other fixed points including new add-mode for one-time referral bonus...
+       define('P_REG_VALUE', $CONFIG['points_register']);
+       define('P_REF_VALUE', $CONFIG['points_ref']);
+
+       // Load templates
+       LOAD_TEMPLATE("admin_config_sub_points");
+}
+ else
+{
+       // Display selection box
+       LOAD_TEMPLATE("admin_config_points");
+}
+
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_rallye_prices.php b/0.2.1/inc/modules/admin/what-config_rallye_prices.php
new file mode 100644 (file)
index 0000000..83e90ef
--- /dev/null
@@ -0,0 +1,299 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/03/2004 *
+ * ================                             Last change: 08/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_rallye_prices.php                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup rallye prices                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Rallye-Preise einrichten                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (!empty($_GET['rallye']))
+{
+       // Price submitted?
+       if (isset($_POST['add']))
+       {
+               if ((!empty($_POST['level'])) && ((!empty($_POST['points'])) || (!empty($_POST['info']))))
+               {
+                       // Submitted data is valid, but maybe we already have this price level?
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d AND price_level='%s' LIMIT 1",
+                        array(bigintval($_GET['rallye']), bigintval($_POST['level'])), __FILE__, __LINE__);
+
+                       if (SQL_NUMROWS($result) == 0)
+                       {
+                               // Ok, new price level entered!
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_rallye_prices (rallye_id, price_level, points, info)
+VALUES ('%s', '%s', '%s', '%s')",
+ array(
+       bigintval($_GET['rallye']),
+       bigintval($_POST['level']),
+       $_POST['points'],
+       $_POST['info']
+), __FILE__, __LINE__);
+                               LOAD_TEMPLATE ("admin_settings_saved", false, RALLYE_PRICE_LEVEL_SAVED);
+                       }
+                        else
+                       {
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // Price level found!
+                               LOAD_TEMPLATE ("admin_settings_saved", false, RALLYE_PRICE_ALREADY_FOUND);
+                       }
+               }
+       }
+        elseif (isset($_POST['remove']))
+       {
+               // Check if at last one line is selected
+               $SEL = SELECTION_COUNT($_POST['sel']);
+               if ($SEL > 0)
+               {
+                       // Delete selected entries
+                       foreach ($_POST['sel'] as $id=>$sel)
+                       {
+                               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_prices WHERE id=%d LIMIT 1",
+                                array(bigintval($id)), __FILE__, __LINE__);
+                       }
+
+                       // Output message
+                       LOAD_TEMPLATE ("admin_settings_saved", false, RALLYE_ENTRIES_DELETED);
+               }
+                else
+               {
+                       LOAD_TEMPLATE ("admin_settings_saved", false, RALLYE_ENTRIES_NOT_DELETED);
+               }
+       }
+        elseif (isset($_POST['change']))
+       {
+               // Change entries
+               foreach ($_POST['level'] as $id=>$level)
+               {
+                       // Secure ID
+                       $id = bigintval($id);
+
+                       // Update entry
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_prices SET rallye_id=%d, price_level='%s', points='%s', info='%s' WHERE id=%d LIMIT 1",
+                        array($_POST['rallye_id'][$id], bigintval($level), $_POST['points'][$id], $_POST['infos'][$id], $id), __FILE__, __LINE__);
+               }
+
+               // Output message
+               LOAD_TEMPLATE ("admin_settings_saved", false, RALLYE_ENTRIES_CHANGED);
+       }
+
+       if (isset($_POST['edit']))
+       {
+               // Check if at last one line is selected
+               $SEL = SELECTION_COUNT($_POST['sel']);
+               if ($SEL > 0)
+               {
+                       // Make selected editable
+                       $SW = 2; $OUT = "";
+                       foreach ($_POST['sel'] as $id=>$sel)
+                       {
+                               // Load data to selected rallye
+                               $result = SQL_QUERY_ESC("SELECT rallye_id, price_level, points, info FROM "._MYSQL_PREFIX."_rallye_prices WHERE id=%d LIMIT 1",
+                                array(bigintval($id)), __FILE__, __LINE__);
+                               list($rallye, $level, $points, $infos) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               // Prepare data for the row template
+                               $content = array(
+                                       'sw'      => $SW,
+                                       'id'      => $id,
+                                       'rallyes' => ADD_OPTION_LINES("rallye_data", "id", "title", $rallye),
+                                       'level'   => $level,
+                                       'points'  => $points,
+                                       'infos'   => $infos,
+                               );
+
+                               // Load row template and switch color
+                               $OUT .= LOAD_TEMPLATE("admin_config_rallye_edit_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+                       define('__PRICE_ROWS', $OUT);
+
+                       // Prepare data for the main template
+                       define('__RALLYE_ID', $_GET['rallye']);
+
+                       // Load main template
+                       LOAD_TEMPLATE("admin_config_rallye_edit");
+               }
+                else
+               {
+                       // Nothing selected
+                       $content = RALLYE_NO_PRICES_SELECTED_1."<A href=\"".URL."/modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=".$_GET['rallye']."\">".RALLYE_NO_PRICES_SELECTED_2."</A>".RALLYE_NO_PRICES_SELECTED_3;
+                       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+               }
+       }
+        elseif (isset($_POST['del']))
+       {
+               // Check if at last one line is selected
+               $SEL = SELECTION_COUNT($_POST['sel']);
+               if ($SEL > 0)
+               {
+                       // List all prices
+                       $SW = 2; $OUT = "";
+                       foreach ($_POST['sel'] as $id=>$sel)
+                       {
+                               // Load data to selected rallye
+                               $result = SQL_QUERY_ESC("SELECT rallye_id, price_level, points, info FROM "._MYSQL_PREFIX."_rallye_prices WHERE id=%d LIMIT 1",
+                                array(bigintval($id)), __FILE__, __LINE__);
+                               list($rallye, $level, $points, $infos) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               if (empty($infos)) $infos = "---";
+
+                               // Prepare data for the row template
+                               $content = array(
+                                       'sw'      => $SW,
+                                       'id'      => $id,
+                                       'level'   => $level,
+                                       'points'  => $points,
+                                       'infos'   => $infos,
+                               );
+
+                               // Load row template and switch color
+                               $OUT .= LOAD_TEMPLATE("admin_config_rallye_del_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+                       define('__PRICE_ROWS', $OUT);
+
+                       // Prepare data for the main template
+                       define('__RALLYE_ID', $_GET['rallye']);
+
+                       // Load main template
+                       LOAD_TEMPLATE("admin_config_rallye_del");
+               }
+                else
+               {
+                       // Nothing selected
+                       $content = RALLYE_NO_PRICES_SELECTED_1."<A href=\"".URL."/modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=".$_GET['rallye']."\">".RALLYE_NO_PRICES_SELECTED_2."</A>".RALLYE_NO_PRICES_SELECTED_3;
+                       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+               }
+       }
+        else
+       {
+               // A rallye was selected, so check if there are already prices assigned...
+               $result = SQL_QUERY_ESC("SELECT id, price_level, points, info FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d ORDER BY price_level",
+                array(bigintval($_GET['rallye'])), __FILE__, __LINE__);
+
+               if (SQL_NUMROWS($result) > 0)
+               {
+                       // Load all prices for the selected rallye
+                       $SW = 2; $OUT = "";
+                       while(list($id, $level, $points, $infos) = SQL_FETCHROW($result))
+                       {
+                               if (empty($infos)) $infos = "---";
+
+                               // Prepare data for the row template
+                               $content = array(
+                                       'sw'      => $SW,
+                                       'id'      => $id,
+                                       'level'   => $level,
+                                       'points'  => $points,
+                                       'infos'   => $infos,
+                               );
+
+                               // Load row template and switch color
+                               $OUT .= LOAD_TEMPLATE("admin_config_rallye_prices_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+                       define('__PRICE_ROWS', $OUT);
+
+                       // Prepare data for the main template
+                       define('__RALLYE_ID', $_GET['rallye']);
+
+                       // Load main template
+                       LOAD_TEMPLATE("admin_config_rallye_prices");
+               }
+       }
+
+       // Add form for adding new price level
+       if (empty($_POST['edit']))
+       {
+               LOAD_TEMPLATE("admin_add_rallye_prices", false, $_GET['rallye']);
+       }
+}
+ else
+{
+       // No rallye selected so display all available without prices
+       $result = SQL_QUERY("SELECT d.id, d.admin_id, d.start_time, d.end_time, d.title, a.login, d.is_active
+FROM "._MYSQL_PREFIX."_rallye_data AS d, "._MYSQL_PREFIX."_admins AS a
+WHERE d.admin_id=a.id ORDER BY start_time DESC", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List found rallyes
+               $SW = 2; $OUT = "";
+               while (list($id, $aid, $start, $end, $title, $alogin, $active) = SQL_FETCHROW($result))
+               {
+                       $select = "<INPUT type=\"checkbox\" name=\"sel[".$id."]\" class=\"admin_normal\" value=\"1\">";
+                       if ($active == "Y") $select = "<STRONG class=\"big\">".$id."</STRONG>";
+
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'         => $SW,
+                               'id'         => $id,
+                               'select'     => $select,
+                               'title'      => $title,
+                               'aid'        => $aid,
+                               'email_link' => CREATE_EMAIL_LINK($aid),
+                               'alogin'     => $alogin,
+                               'start'      => MAKE_DATETIME($start, "3"),
+                               'end'        => MAKE_DATETIME($end, "3"),
+                       );
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_list_rallye_prices_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__RALLYE_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_list_rallye_prices");
+       }
+        else
+       {
+               // No rallyes setup so far
+               LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_NO_RALLYES_SETUP);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_refid.php b/0.2.1/inc/modules/admin/what-config_refid.php
new file mode 100644 (file)
index 0000000..85dd02f
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/23/2004 *
+ * ================                             Last change: 11/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_refid.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup default referral ID                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Standart Referral-ID einstellen                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save data
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare contants for the template
+       ADD_MEMBER_SELECTION_BOX(false, true, true, $CONFIG['def_refid']);
+
+       switch ($CONFIG['refid_target'])
+       {
+               case "index":    define('__DEF_RT_INDEX', " selected=\"selected\""); define('__DEF_RT_REGISTER', "");          break;
+               case "register": define('__DEF_RT_INDEX', "");          define('__DEF_RT_REGISTER', " selected=\"selected\""); break;
+       }
+       // Load template
+       LOAD_TEMPLATE("admin_config_refid");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_reg.php b/0.2.1/inc/modules/admin/what-config_reg.php
new file mode 100644 (file)
index 0000000..aa03249
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/12/2003 *
+ * ===============                              Last change: 04/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_reg.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup for the registration form                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einstellungen fuer das Anmeldeformular           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+global $link;
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if ((isset($_POST['ok'])) && (function_exists('CREATE_TIME_SELECTIONS')))
+{
+       // Calculate timestamp from selections...
+       $_POST['ip_timeout'] = CREATE_TIMESTAMP_FROM_SELECTIONS("ip_timeout", $_POST);
+}
+
+if ((empty($_POST['least_cats'])) || (empty($_POST['ip_timeout'])))
+{
+       unset($_POST['ok']);
+}
+if (isset($_POST['ok']))
+{
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Remember stuff in constants
+       define('LEAST_CATS_VALUE'   , $CONFIG['least_cats']);
+       define('__CFG_SHOW_REFID'   , ADD_SELECTION("yn", $CONFIG['display_refid'], "display_refid"));
+       define('__TIMEOUT_SELECTION', CREATE_TIME_SELECTIONS($CONFIG['ip_timeout'], "ip_timeout", "Dhm"));
+       define('__CFG_DBL_EMAIL'    , ADD_SELECTION("yn", $CONFIG['check_double_email'], "check_double_email"));
+       define('__CFG_DBL_PASS'     , ADD_SELECTION("yn", $CONFIG['check_double_pass'] , "check_double_pass"));
+       define('__REF_PAYOUT'       , $CONFIG['ref_payout']);
+
+       // Load normal template
+       LOAD_TEMPLATE("admin_config_reg");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_register.php b/0.2.1/inc/modules/admin/what-config_register.php
new file mode 100644 (file)
index 0000000..3dca07b
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/10/2004 *
+ * ===============                              Last change: 07/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_register.php                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup for the registration form                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einstellungen fuer das Anmeldeformular           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Do we want to save changes?
+if (isset($_POST['ok']))
+{
+       foreach ($_POST['sel'] as $id=>$value)
+       {
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_must_register SET field_required='%s' WHERE id=%d AND field_required != '%s' LIMIT 1",
+                array($value, bigintval($id), $value),__FILE__, __LINE__);
+       }
+       LOAD_TEMPLATE ("admin_settings_saved", false, REGISTER_ADMIN_CHANGES_SAVED);
+}
+
+// List all register values
+$result = SQL_QUERY("SELECT id, field_name, field_required FROM "._MYSQL_PREFIX."_must_register ORDER BY id", __FILE__, __LINE__);
+$SW = 2; $OUT = "";
+while (list($id, $name, $required) = SQL_FETCHROW($result))
+{
+       $eval = "\$name = ".strtoupper($name).";";
+       eval($eval);
+       $OUT .= "<TR>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".$id."</TD>
+  <TD class=\"switch_sw".$SW." bottom2 right2\">&nbsp;&nbsp;".$name."</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">
+    ".ADD_SELECTION("yn", $required, "sel[".$id."]")."
+  </TD>
+</TR>\n";
+       $SW = 3 - $SW;
+}
+
+// Free memory
+SQL_FREERESULT($result);
+
+// Remember rows in constant
+define('__REGISTER_ROWS', $OUT);
+
+// Load template
+LOAD_TEMPLATE("admin_config_register");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_register2.php b/0.2.1/inc/modules/admin/what-config_register2.php
new file mode 100644 (file)
index 0000000..915b5c8
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/12/2003 *
+ * ===============                              Last change: 11/29/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_register2.php                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup for the registration form                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einstellungen fuer das Anmeldeformular           *
+ * -------------------------------------------------------------------- *
+ *          Adapted from what-config_reg.php                            *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+global $link;
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (isset($_POST['ok']))
+{
+       // Calculate timestamp from selections...
+       $_POST['ip_timeout'] = CREATE_TIMESTAMP_FROM_SELECTIONS("ip_timeout", $_POST);
+       $_POST['least_cats'] = round($_POST['least_cats']);
+
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Remember stuff in constants
+       define('LEAST_CATS_VALUE'   , round($CONFIG['least_cats']));
+       define('__CFG_SHOW_REFID'   , ADD_SELECTION("yn", $CONFIG['display_refid']   , "display_refid"));
+       define('__TIMEOUT_SELECTION', CREATE_TIME_SELECTIONS($CONFIG['ip_timeout']   , "ip_timeout", "Dhm"));
+       define('__CFG_DBL_EMAIL'    , ADD_SELECTION("yn", $CONFIG['check_double_email']       , "check_double_email"));
+       define('__CFG_DBL_PASS'     , ADD_SELECTION("yn", $CONFIG['check_double_pass']        , "check_double_pass"));
+       define('__CFG_CAT_DEFAULT'  , ADD_SELECTION("yn", $CONFIG['register_default'], "register_default"));
+
+       // Load normal template
+       LOAD_TEMPLATE("admin_config_register2");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_rewrite.php b/0.2.1/inc/modules/admin/what-config_rewrite.php
new file mode 100644 (file)
index 0000000..0fe433f
--- /dev/null
@@ -0,0 +1,110 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 02/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_rewrite.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Rewrite-Engine configuration                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Rewrite-Engine Konfiguration                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Generate string
+       $MODs = array();
+       foreach ($_POST['mod'] as $mod=>$sel)
+       {
+               // Now you can never deselect the admin module, bah!!! ;-)
+               if (($sel == "Y") || ($mod == "admin"))
+               {
+                       // Add module to queue
+                       $MODs[] = $mod;
+               }
+       }
+
+       // Implode array to string and remove posted mod array
+       $_POST['rewrite_skip'] = implode(":", $MODs);
+       unset($_POST['mod']);
+
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Load existing modules and generate TR rows for the template
+       $result = SQL_QUERY("SELECT module, title FROM "._MYSQL_PREFIX."_mod_reg ORDER BY module", __FILE__, __LINE__);
+       $SW = 2; $OUT = "";
+       while(list($mod, $title) = SQL_FETCHROW($result))
+       {
+               // Set title to three dashes when no title is supplied
+               if (empty($title)) $title = "---";
+
+               // Already registered module?
+               if (ereg($mod, $CONFIG['rewrite_skipped_mods']))
+               {
+                       // Found
+                       $y = " checked";
+                       $n = "";
+               }
+                else
+               {
+                       // Not found
+                       $y = "";
+                       $n = " checked";
+               }
+
+               // Remember data in array for the dynamic row template
+               $content = array(
+                       'module'    => $mod,
+                       'title'     => $title,
+                       'y_default' => $y,
+                       'n_default' => $n,
+                       'sw'        => $SW,
+               );
+
+               // Load template and switch colors
+               $OUT .= LOAD_TEMPLATE("admin_config_rewrite_rows", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__MODULE_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_config_rewrite");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_secure.php b/0.2.1/inc/modules/admin/what-config_secure.php
new file mode 100644 (file)
index 0000000..d065ee0
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/11/2003 *
+ * ===============                              Last change: 12/21/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_secure.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Security related settings                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sicherheitsrelevante Einstellungen               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+global $link;
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // If salt length is empty or null then we shall generate new passwords
+       if (empty($_POST['salt_length']) || ($_POST['salt_length'] == "0"))
+       {
+               // Generate new passwords for all!
+               require(PATH."/inc/gen_sql_patches.php");
+
+               // Forget the wrong number!
+               unset($_POST['salt_length']);
+
+               // Redirect to logout link
+               LOAD_URL(URL."/modules.php?module=admin&logout=1");
+       }
+
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Remember stuff in constants
+       define('__PASS_LEN'   , $CONFIG['pass_len']);
+
+       // Password-salt length
+       define('__SALT_LENGTH', $CONFIG['salt_length']);
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_secure");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_stats.php b/0.2.1/inc/modules/admin/what-config_stats.php
new file mode 100644 (file)
index 0000000..be02cfa
--- /dev/null
@@ -0,0 +1,79 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/09/2004 *
+ * ================                             Last change: 04/09/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-stats.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Setup default statistics mode                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Standart Modus der Statistiken einstellen        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Guest stats
+       switch (strtolower($CONFIG['guest_stats']))
+       {
+       case "members":
+               define('__MEMBERS_RADIO', " checked selected");
+               define('__MODULES_RADIO', "");
+               define('__INACTIVE_RADIO', "");
+               break;
+
+       case "modules":
+               define('__MEMBERS_RADIO', "");
+               define('__MODULES_RADIO', " checked selected");
+               define('__INACTIVE_RADIO', "");
+               break;
+
+       case "inactive":
+               define('__MEMBERS_RADIO', "");
+               define('__MODULES_RADIO', "");
+               define('__INACTIVE_RADIO', " checked selected");
+               break;
+       }
+
+       // Max stats entries per page
+       define('__STATS_LIMIT', $CONFIG['stats_limit']);
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_stats");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_title.php b/0.2.1/inc/modules/admin/what-config_title.php
new file mode 100644 (file)
index 0000000..87e8890
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/21/2004 *
+ * ================                             Last change: 12/21/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_title.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Remember config data in constants for the template
+       define('__CFG_TITLE_LEFT'     , $CONFIG['title_left']);
+       define('__CFG_TITLE_MIDDLE'   , $CONFIG['title_middle']);
+       define('__CFG_TITLE_RIGHT'    , $CONFIG['title_right']);
+       define('__CFG_TITLE_DECOS'    , ADD_SELECTION("yn", $CONFIG['title_decoration'], "enable_title_deco"));
+       define('__CFG_TITLE_MOD_SHOW' , ADD_SELECTION("yn", $CONFIG['title_mod_show']  , "enable_mod_title" ));
+       define('__CFG_TITLE_WHAT_SHOW', ADD_SELECTION("yn", $CONFIG['title_what_show']  , "enable_what_title"));
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_title");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_top10.php b/0.2.1/inc/modules/admin/what-config_top10.php
new file mode 100644 (file)
index 0000000..c8ccadd
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/24/2004 *
+ * ================                             Last change: 11/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_top10.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Configuration                                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einstellungen                                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare constants for the template
+       define('__MAX_VALUE', $CONFIG['top10_max']);
+
+       // Load form template
+       LOAD_TEMPLATE("admin_config_top10");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_transfer.php b/0.2.1/inc/modules/admin/what-config_transfer.php
new file mode 100644 (file)
index 0000000..d128bbd
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/06/2004 *
+ * ================                             Last change: 10/06/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_transfer.php                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Configuration of transfer system                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Konfiguration des Punktetransfersystems          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save settings...
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+
+// Prepare constants for template
+define('__TRANS_MAX_VALUE'    , $CONFIG['transfer_max']);
+define('__TRANS_BALANCE_VALUE', $CONFIG['transfer_balance']);
+define('__TRANS_CODE_VALUE'   , $CONFIG['transfer_code']);
+
+// Autppurge expired transfer entries?
+switch ($CONFIG['ap_inactive'])
+{
+       case "Y": define('__YES_AP', " selected=\"selected\""); define('__NO_AP', "");          break;
+       case "N": define('__YES_AP', "");          define('__NO_AP', " selected=\"selected\""); break;
+}
+
+// Time selection box
+define('__TRANS_AGE_SELECTION'    , CREATE_TIME_SELECTIONS($CONFIG['transfer_age'], "transfer_age", "MWDh"));
+define('__TRANS_TIMEOUT_SELECTION', CREATE_TIME_SELECTIONS($CONFIG['transfer_timeout'], "transfer_timeout", "MWDh"));
+
+// Load template
+LOAD_TEMPLATE("admin_config_transfer");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_user.php b/0.2.1/inc/modules/admin/what-config_user.php
new file mode 100644 (file)
index 0000000..986674d
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/11/2005 *
+ * ================                             Last change: 03/11/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_user.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Userlist configyuration                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mitgliederliste konvfigurieren                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}
+ else
+{
+       // Prepare constants for the template
+       define('__LIMIT_VALUE', $CONFIG['user_limit']);
+       define('__ALPHA_VALUE', $CONFIG['user_alpha']);
+
+       // Load form template
+       LOAD_TEMPLATE("admin_config_user");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-config_wernis.php b/0.2.1/inc/modules/admin/what-config_wernis.php
new file mode 100644 (file)
index 0000000..ea86768
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/26/2007 *
+ * ================                             Last change: 12/26/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-config_wernis.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Configure wernis sub-system                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auszahlungensarten editieren                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok'])) {
+       // Save settings
+       ADMIN_SAVE_SETTINGS($_POST, "_config", "config='0'");
+}  else {
+       // Prepare data for template output
+       $content = array(
+               'min_amount' => $CONFIG['wernis_min_amount'],
+               'api_id'     => $CONFIG['wernis_api_id'],
+               'api_md5'    => $CONFIG['wernis_api_md5']
+       );
+
+       // Load template
+       LOAD_TEMPLATE("admin_config_wernis", false, $content);
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-del_email.php b/0.2.1/inc/modules/admin/what-del_email.php
new file mode 100644 (file)
index 0000000..136b0f9
--- /dev/null
@@ -0,0 +1,150 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 02/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-del_email.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Delete a bonus or normal mail                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bonus- / Normal-Mail loeschen                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ *  Module by Robert Niedziela, Megacomputing                           *
+ *          web : http://mc-p.mcserver.de                               *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (!empty($_GET['mid']))
+{
+       // Load email data
+       $result = SQL_QUERY_ESC("SELECT id, sender, subject, url, timestamp FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+        array(bigintval($_GET['mid'])), __FILE__, __LINE__);
+       list ($id, $sender, $subject, $url, $timestamp,) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Delete mail only once
+       if ($sender > 0)
+       {
+               // Prepare data for the template
+               define('__ID'     , $id);
+               define('__SENDER' , ADMIN_USER_PROFILE_LINK($sender));
+               define('__SUBJECT', $subject);
+               define('__URL'    , DEREFERER($url));
+               define('__ORDERED', MAKE_DATETIME($timestamp, "0"));
+
+               // Load template
+               LOAD_TEMPLATE("admin_del_email_normal");
+
+               // Transfer data to data array
+               $DATA = array($url, $subject);
+
+               // Load email template and send the email away
+               $msg_user = LOAD_EMAIL_TEMPLATE("order-deleted", "", $sender);
+               SEND_EMAIL($sender, MEMBER_ORDER_DELETED, $msg_user);
+
+               // Delete mail from queue
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+                array(bigintval($_GET['mid'])), __FILE__, __LINE__);
+
+               // Fetch right stats_id from pool
+               $result = SQL_QUERY_ESC("SELECT s.id FROM "._MYSQL_PREFIX."_user_stats AS s
+LEFT JOIN "._MYSQL_PREFIX."_pool AS p
+ON s.pool_id=%d LIMIT 1",
+ array(bigintval($_GET['mid'])), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Fetch stats id
+                       list($stats_id) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Remove links from DB
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d",
+                        array(bigintval($stats_id)), __FILE__, __LINE__);
+
+                       // Output link for manually removing stats entry
+                       LOAD_TEMPLATE ("admin_settings_saved", false, "<A href=\"".URL."/modules.php?module=admin&amp;what=del_email&amp;pid=".$_GET['mid']."\">".ADMIN_REMOVE_STATS_ENTRY."</A>");
+               }
+       }
+        else
+       {
+               // Mail already deleted!
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NORMAL_MAIL_ALREADY_DELETED);
+       }
+}
+ elseif (!empty($_GET['pid']))
+{
+       // Remove stats entries
+       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1",
+        array(bigintval($_GET['pid'])), __FILE__, __LINE__);
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_USER_STATS_REMOVED);
+}
+ elseif ((!empty($_GET['bid'])) && (EXT_IS_ACTIVE("bonus")))
+{
+       // Load data from bonus mail
+       $result = SQL_QUERY_ESC("SELECT id, subject, url, timestamp FROM "._MYSQL_PREFIX."_bonus WHERE id=%d",
+        array(bigintval($_GET['bid'])), __FILE__, __LINE__);
+       list ($id, $subject, $url, $timestamp) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Delete mail only once
+       if ($id > 0)
+       {
+               // Delete bonus mail entirely from database
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+                array(bigintval($_GET['bid'])), __FILE__, __LINE__);
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%d",
+                array(bigintval($_GET['bid'])), __FILE__, __LINE__);
+
+               // Prepare data for the template
+               define('__ID'     , $id);
+               define('__SUBJECT', $subject);
+               define('__URL'    , DEREFERER($url));
+               define('__ORDERED', MAKE_DATETIME($timestamp, "0"));
+
+               // Load template
+               LOAD_TEMPLATE("admin_del_email_bonus");
+       }
+        else
+       {
+               // Mail already deleted!
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_MAIL_ALREADY_DELETED);
+       }
+}
+ else
+{
+       // No mail orders fond
+       LOAD_TEMPLATE ("admin_settings_saved", false, ADMIN_WRONG_CALL);
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-del_holiday.php b/0.2.1/inc/modules/admin/what-del_holiday.php
new file mode 100644 (file)
index 0000000..26a98a8
--- /dev/null
@@ -0,0 +1,129 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/24/2004 *
+ * ================                             Last change: 08/09/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-del_holiday.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Remove holiday requests                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Urlaubsschaltungen entfernen                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Check for selected holidays
+$SUM = 0;
+if (isset($_POST['sel'])) $SUM = SELECTION_COUNT($_POST['sel']);
+
+// Shall I delete selected holidays???
+if ($SUM > 0)
+{
+       // Delete multiple holiday requests (for list_holiday)
+       $cnt = 0;
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               // Get the userid
+               $result = SQL_QUERY_ESC("SELECT userid, holiday_start, holiday_end
+FROM "._MYSQL_PREFIX."_user_holidays
+WHERE id=%d LIMIT 1", array(bigintval($id)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Load data and free memory
+                       list($uid, $start, $end) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Update user's account
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data
+SET holiday_active='N', holiday_activated='0'
+WHERE userid=%d LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__);
+
+                       // Remove holiday
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_holidays
+WHERE id=%d LIMIT 1", array(bigintval($id)), __FILE__, __LINE__);
+
+                       // Prepare loaded data for the
+                       $content = array(
+                               'start' => MAKE_DATETIME($start, "3"),
+                               'end'   => MAKE_DATETIME($end  , "3")
+                       );
+
+                       // Send email to user
+                       $msg = LOAD_EMAIL_TEMPLATE("member_holiday_removed", $content, $uid);
+                       SEND_EMAIL($uid, HOLIDAY_ADMIN_REMOVED_SUBJ, $msg);
+                       $cnt++;
+               }
+       }
+       LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_ADMIN_MULTI_DEL_1.$cnt.HOLIDAY_ADMIN_MULTI_DEL_2);
+}
+ elseif (!empty($_GET['u_id']))
+{
+       // Set default message
+       $MSG = HOLIDAY_ADMIN_SINGLE_404;
+
+       // Fetch data
+       $result_load = SQL_QUERY_ESC("SELECT holiday_start AS start, holiday_end AS end
+FROM "._MYSQL_PREFIX."_user_holidays
+WHERE userid=%d LIMIT 1", array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_load) == 1)
+       {
+               // Load data
+               $content = SQL_FETCHARRAY($result_load);
+
+               // Free some memory
+               unset($content[0]);
+               unset($content[1]);
+
+               // Delete one holiday request (for task)
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_holidays
+WHERE userid=%d LIMIT 1", array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+
+               // Send email to user
+               $msg = LOAD_EMAIL_TEMPLATE("member_holiday_removed", $content, $_GET['u_id']);
+               SEND_EMAIL($_GET['u_id'], HOLIDAY_ADMIN_REMOVED_SUBJ, $msg);
+
+               // Set message
+               $MSG = HOLIDAY_ADMIN_SINGLE_DELETED;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_load);
+
+       // Output message
+       LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
+}
+ else
+{
+       // Please call me over other scripts... ;)
+       LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_NO_DIRECT_CALL);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-del_task.php b/0.2.1/inc/modules/admin/what-del_task.php
new file mode 100644 (file)
index 0000000..6527981
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/03/2004 *
+ * ================                             Last change: 08/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-del_task.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Delete a task from DB                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Aufgabe aus der Datenbank loeschen               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR><BR>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-del_transfer.php b/0.2.1/inc/modules/admin/what-del_transfer.php
new file mode 100644 (file)
index 0000000..27ace76
--- /dev/null
@@ -0,0 +1,117 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/07/2004 *
+ * ================                             Last change: 11/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-del_transfer.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Point transfers                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punktetransfers                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['del']))
+{
+       // Delete entries from tables
+       $SEL = SELECTION_COUNT($_POST['sel']);
+       if ($SEL > 0)
+       {
+               // Delete entries...
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_transfers_in WHERE trans_id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_transfers_out WHERE trans_id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+               }
+       }
+}
+
+// We only need outgoing transfers
+$result = SQL_QUERY("SELECT userid, to_uid, trans_id, points, reason, time_trans FROM "._MYSQL_PREFIX."_user_transfers_out ORDER BY trans_id", __FILE__, __LINE__);
+$total = "0";
+if (SQL_NUMROWS($result) > 0)
+{
+       // Output rows
+       $OUT = ""; $SW = 2;
+       while(list($uid1, $uid2, $idx, $points, $reason, $stamp) = SQL_FETCHROW($result))
+       {
+               // Prepare data for the row template
+               $content = array(
+                       'sw'       => $SW,
+                       'idx'      => $idx,
+                       'stamp'    => MAKE_DATETIME($stamp, "3"),
+                       'uid_from' => ADMIN_USER_PROFILE_LINK($uid1),
+                       'uid_to'   => ADMIN_USER_PROFILE_LINK($uid1),
+                       'reason'   => $reason,
+                       'points'   => TRANSLATE_COMMA($points),
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("admin_del_transfer_row", true, $content);
+
+               // Sum points and switch colors
+               $total += $points; $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+ else
+{
+       // Nothing for in and out
+       $OUT = "<TR>
+  <TD colspan=\"6\" align=\"center\" class=\"bottom2\" height=\"70\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, TRANSFER_NO_INOUT_TRANSFERS)."
+  </TD>
+</TR>";
+}
+
+// ... and add them to a constant for the template
+define('__TRANSFER_ROWS', $OUT);
+
+// Remeber total amount
+define('__TRANSFER_TOTAL_VALUE', $total);
+
+// Set title
+define('__TRANSFER_TITLE', TRANSFER_LIST_ALL);
+
+// Show delete button here
+define('__TRANSFER_DELETE', "<INPUT type=\"reset\" class=\"admin_reset\" value=\"".UNDO_SELECTIONS."\">&nbsp;*&nbsp;<INPUT type=\"submit\" name=\"del\" class=\"admin_delete\" value=\"".TRANSFER_DELETE."\">");
+
+// Load final template
+LOAD_TEMPLATE("admin_list_transfer");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-del_user.php b/0.2.1/inc/modules/admin/what-del_user.php
new file mode 100644 (file)
index 0000000..d3a3d24
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 06/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-del_user.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Delete members                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mitglieder loeschen                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Display only title when no form was submitted
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+
+// User exists..
+if ((isset($_POST['ok'])) || ((isset($_POST['del'])) && (!empty($_POST['reason']))))
+{
+       // Delete users account
+       $result_user = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_user) == 1)
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Delete user account
+               DELETE_USER_ACCOUNT(bigintval($_GET['u_id']), $_POST['reason']);
+               OUTPUT_HTML ("<STRONG class=\"admin_green\">".ADMIN_DEL_COMPLETED."</STRONG>");
+       }
+        else
+       {
+               // Account does not exists!
+               OUTPUT_HTML ("<STRONG class=\"admin_failed\">".ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2."</STRONG>");
+       }
+}
+ elseif (!empty($_POST['no']))
+{
+       // Do not delete him...
+       LOAD_URL(URL."/modules.php?module=admin&amp;what=list_user&amp;u_id=".$_GET['u_id']);
+}
+ elseif (empty($_GET['u_id']))
+{
+       // Output selection form with all confirmed user accounts listed
+       ADD_MEMBER_SELECTION_BOX();
+}
+ else
+{
+       // Realy want to delete?
+       $result = SQL_QUERY_ESC("SELECT email, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Load data
+               list ($email, $sname, $fname) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Transfer data to constants for the template
+               define('__EMAIL', CREATE_EMAIL_LINK($email, "user_data"));
+               define('__SNAME', $sname);
+               define('__FNAME', $fname);
+               define('__UID'  , $_GET['u_id']);
+
+               // Display form
+               LOAD_TEMPLATE("admin_del_user");
+       }
+        else
+       {
+               // Account does not exists!
+               OUTPUT_HTML ("<STRONG class=\"admin_failed\">".ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2."</STRONG>");
+       }
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-edit_emails.php b/0.2.1/inc/modules/admin/what-edit_emails.php
new file mode 100644 (file)
index 0000000..8c566cf
--- /dev/null
@@ -0,0 +1,138 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 04/09/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-edit_emails.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Edit ordered mails e.g. redirecting the URL      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Werbebuchungen aendern (z.B. umleiten der URL)   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+global $link;
+
+if ((isset($_POST['ok'])) && (empty($_POST['id'])))
+{
+       unset($_POST['ok']);
+}
+
+$result = SQL_QUERY("SELECT id, sender, subject, payment_id, cat_id FROM "._MYSQL_PREFIX."_pool ORDER BY timestamp", __FILE__, __LINE__);
+if (SQL_NUMROWS($result) > 0)
+{
+       if (isset($_POST['ok']))
+       {
+               // Make mail editable...
+               $result = SQL_QUERY_ESC("SELECT subject, text, url FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+                array(bigintval($_POST['id'])), __FILE__, __LINE__);
+               list($subj, $text, $url) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               define('__ID_VALUE'  , $_POST['id']);
+               define('__URL_VALUE' , stripslashes($url));
+               define('__SUBJ_VALUE', stripslashes($subj));
+               define('__TEXT_VALUE', stripslashes($text));
+
+               // Load template
+               LOAD_TEMPLATE("admin_edit_email");
+       }
+        elseif (!empty($_POST['save']))
+       {
+               // Save changes
+               if (!empty($SQL))
+               {
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET
+subject='%s',
+text='%s',
+url='%s'
+WHERE id=%d LIMIT 1",
+ array(
+       addslashes($_POST['subj']),
+       addslashes($_POST['text']),
+       addslashes($_POST['url']),
+       bigintval($_POST['id']),
+), __FILE__, __LINE__);
+                       if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1)
+                       {
+                               $content = "<SPAN class=\"admin_done\">".SETTINGS_SAVED."</SPAN>";
+                       }
+                        else
+                       {
+                               $content = "<SPAN class=\"admin_failed\">".SETTINGS_NOT_SAVED."</SPAN>";
+                       }
+               }
+                else
+               {
+                       $content = "<SPAN class=\"admin_failed\">".SETTINGS_NOT_SAVED."</SPAN>";
+               }
+
+               // Display message
+               LOAD_TEMPLATE("admin_settings_saved", false, $content);
+       }
+        else
+       {
+               // There are mail orders available
+               $SW = 2; $OUT = "";
+               while (list($id, $sender, $subj, $pay, $cat) = SQL_FETCHROW($result))
+               {
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'   => $SW,
+                               'id'   => $id,
+                               'subj' => $subj,
+                               'uid'  => ADMIN_USER_PROFILE_LINK($sender),
+                               'pay'  => GET_PAYMENT($pay),
+                               'cat'  => GET_CATEGORY($cat),
+                       );
+
+                       // Load row template and switch colors
+                       $OUT .= LOAD_TEMPLATE("admin_edit_email_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__EMAIL_SELECT_ROWS', $OUT);
+
+               // Load email template
+               LOAD_TEMPLATE("admin_edit_email_select");
+       }
+}
+ else
+{
+       // No mail orders left in pool
+       OUTPUT_HTML ("<SPAN class=\"admin_failed\">".ADMIN_NO_MAILS_IN_POOL."</SPAN>");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-edit_user.php b/0.2.1/inc/modules/admin/what-edit_user.php
new file mode 100644 (file)
index 0000000..657f127
--- /dev/null
@@ -0,0 +1,155 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 06/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-edit_user.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Edit member's profiles                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mitgliederprofile aendern                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+
+// Fix a notice
+$result_main = false;
+if (isset($_GET['u_id'])) {
+       //                                    0      1        2         3      4     5      6       7         8          9           10         11
+       $result_main = SQL_QUERY_ESC("SELECT sex, surname, family, street_nr, zip, city, country, email, birth_day, birth_month, birth_year, max_mails FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+}
+
+if ((SQL_NUMROWS($result_main) == 1) || (empty($_GET['u_id'])))
+{
+       // User found
+       if (empty($_GET['u_id']))
+       {
+               // Output selection form with all confirmed user accounts listed
+               ADD_MEMBER_SELECTION_BOX();
+       }
+        elseif (isset($_POST['edit']))
+       {
+               // Ok, change the account...
+               $PASS = false; $ADD = "";
+               if ((empty($_POST['pass1'])) && (empty($_POST['pass2'])))
+               {
+                       // Don't change the password
+                       $PASS = true;
+               }
+                elseif (($_POST['pass1'] == $_POST['pass2']))
+               {
+                       // Change the password
+                       $PASS = true;
+                       $ADD = ", password='".generateHash($_POST['pass1'])."'";
+               }
+               if ($PASS)
+               {
+                       // We have to add the following things: birthday and max receive mails
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET
+sex='%s',
+surname='%s',
+family='%s',
+street_nr='%s',
+country='%s',
+zip=%d,
+city='%s',
+email='%s'
+".$ADD."
+WHERE userid=%d LIMIT 1",
+ array(
+       substr($_POST['salut'], 0, 1),
+       $_POST['surname'],
+       $_POST['family_name'],
+       $_POST['street_nr'],
+       $_POST['country'],
+       bigintval($_POST['zip']),
+       $_POST['city'],
+       $_POST['email'],
+       bigintval($_GET['u_id']),
+), __FILE__, __LINE__);
+                       $content = USER_ACCOUNT_SAVED;
+               }
+                else
+               {
+                       // Problem while saving data
+                       $content = USER_ACCOUNT_NOT_SAVED;
+               }
+
+               // Load template
+               LOAD_TEMPLATE("admin_settings_saved", false, $content);
+       }
+        else
+       {
+               // Display form to edit
+               list($sex, $surname, $family, $street, $zip, $city, $country, $email, $bday, $bmonth, $byear, $max) = SQL_FETCHROW($result_main);
+               SQL_FREERESULT($result_main);
+
+               // Transfer data to constants for the template
+               switch ($sex)
+               {
+               case "M":
+                       define('_SEX_M', " selected=\"selected\"");
+                       define('_SEX_F', "");
+                       define('_SEX_C', "");
+                       break;
+
+               case "F":
+                       define('_SEX_M', "");
+                       define('_SEX_F', " selected=\"selected\"");
+                       define('_SEX_C', "");
+                       break;
+
+               case "C":
+                       define('_SEX_M', "");
+                       define('_SEX_F', "");
+                       define('_SEX_C', " selected=\"selected\"");
+                       break;
+               }
+
+               define('_SURNAME', $surname); define('_FAMILY', $family); define('_CITY'     , $city);
+               define('_STREET' , $street);  define('_ZIP'   , $zip);    define('_MAX_MAILS', $max);
+               define('_COUNTRY', $country); define('_EMAIL' , $email);
+
+               // Load template
+               LOAD_TEMPLATE("admin_edit_user", false, bigintval($_GET['u_id']));
+       }
+}
+ else
+{
+       // Account does not exists!
+       OUTPUT_HTML ("<STRONG class=\"admin_failed\">".ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2."</STRONG>");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-email_archiv.php b/0.2.1/inc/modules/admin/what-email_archiv.php
new file mode 100644 (file)
index 0000000..b267cc4
--- /dev/null
@@ -0,0 +1,138 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 04/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-email_archiv .php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : See send emails details of ordered mails         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle  Mails ansehen die versand wurden           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ * -------------------------------------------------------------------- *
+ * Mod-Copyright (c) 2004 by Robert Niedziela                           *
+ * www.megacomputing.de                                                 *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+//             0     1        2      3        4          5           6          7      8         9        10
+$SQL = "SELECT id, sender, subject, text, receivers, payment_id, data_type, timestamp, url, target_send, cat_id
+ FROM "._MYSQL_PREFIX."_pool
+ WHERE data_type='SEND' OR data_type='DELETED'
+ ORDER BY timestamp DESC";
+
+// Check for maximum pages
+$result_normal = SQL_QUERY($SQL, __FILE__, __LINE__);
+
+// Set offset an current page to default values
+if (empty($_GET['page']))   $_GET['page']   = "1";
+if (empty($_GET['offset'])) $_GET['offset'] = $CONFIG['mails_page'];
+
+// Add limitation to SQL string
+$SQL .= " LIMIT ".($_GET['offset'] * $_GET['page'] - $_GET['offset']).", ".$_GET['offset'];
+
+// Run SQL query for normal mails
+$result = SQL_QUERY($SQL, __FILE__, __LINE__);
+
+// Calculate pages
+$PAGES = round(SQL_NUMROWS($result_normal) / $CONFIG['mails_page'] + 0.5);
+SQL_FREERESULT($result_normal);
+
+if (SQL_NUMROWS($result) > 0)
+{
+       // Mail orders are in pool so we can display them
+
+       // Add navigation table rows
+       if ($PAGES > 1)
+       {
+               define('__TOP_EMAIL_NAV'   , ADD_EMAIL_NAV($PAGES, $CONFIG['mails_page'], true , "3", true));
+               define('__BOTTOM_EMAIL_NAV', ADD_EMAIL_NAV($PAGES, $CONFIG['mails_page'], false, "3", true));
+       }
+        else
+       {
+               define('__TOP_EMAIL_NAV'   , "");
+               define('__BOTTOM_EMAIL_NAV', "");
+       }
+
+       $SW = 2; $OUT = "";
+       while ($pool = SQL_FETCHROW($result))
+       {
+               // Check sent mails and clicks
+               $result_mails = SQL_QUERY_ESC("SELECT max_rec, clicks FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1",
+                array(bigintval($pool[0])), __FILE__, __LINE__);
+               list($sent, $clicks) = SQL_FETCHROW($result_mails);
+               SQL_FREERESULT($result_mails);
+
+               // Unconfirmed mails
+               $unconfirmed = $sent - $clicks;
+               if ($unconfirmed > 0)
+               {
+                       // Add link to list_unconfirmed what-file
+                       $unconfirmed = "<STRONG><A href=\"".URL."/modules.php?module=admin&amp;what=list_unconfirmed&amp;mid=".$pool[0]."\">".$unconfirmed."</A></STRONG>";
+               }
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'          => $SW,
+                       'u_link'      => ADMIN_USER_PROFILE_LINK($pool[1]),
+                       'subj'        => COMPILE_CODE($pool[2]),
+                       'text'        => COMPILE_CODE($pool[3]),
+                       'pay'         => GET_PAYMENT($pool[5]),
+                       'cat'         => GET_CATEGORY($pool[10]),
+                       'sent'        => $sent,
+                       'ruids'       => str_replace(";", ", ", $pool[4]),
+                       'unconfirmed' => $unconfirmed,
+                       'type'        => GET_POOL_TYPE($pool[6]),
+                       'tsend'       => $pool[9],
+                       'url'         => FRAMETESTER($pool[8]),
+                       'stamp'       => MAKE_DATETIME($pool[7], "0"),
+                       'mid'         => $pool[0],
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("admin_email_archiv_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__EMAIL_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_email_archiv");
+}
+ else
+{
+       // No mail orders fond
+       OUTPUT_HTML ("<SPAN class=\"admin_failed\">".ADMIN_NO_MAILS_IN_POOL."</SPAN>");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-email_details.php b/0.2.1/inc/modules/admin/what-email_details.php
new file mode 100644 (file)
index 0000000..fea0be8
--- /dev/null
@@ -0,0 +1,348 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 10/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-email_details.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : See all email details of ordered mails           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Details einer gebuchten Mail ansehen        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ * -------------------------------------------------------------------- *
+ *           Moded What-email_details.php   / also Editet !             *
+ * Auf langsammen Servern (wie mein z.B Dauert das Laden)               *
+ * enorm hoch zu lang. Jetzt werden nur auftraege aufgelistet die       *
+ * NEU sind ( DB NEW) oder ADMIN freischalten muss (DB ADMIN )          *
+ * oder noch als TEMP gespecihert sind                                  *
+ * der rest der schon als SEND sich melden darf wird per                *
+ * what-email_archiv .php aufgerufen                                    *
+ * beste gruesse Robert Niedziela / www.personal-webserver.de           *
+ * oder auch www.mc-p.org                                               *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Normal mails ordered by your members
+//              0     1       2       3       4           5          6          7       8        9          10
+$SQL = "SELECT id, sender, subject, text, receivers, payment_id, data_type, timestamp, url, target_send, cat_id
+ FROM "._MYSQL_PREFIX."_pool
+ WHERE data_type IN('ADMIN', 'TEMP', 'NEW', 'ACTIVE')
+ ORDER BY timestamp DESC";
+$WHO = _ALL;
+$SQL2 = "";
+
+if (!empty($_GET['mid']))
+{
+       // Only a specific mail shall be displayed
+       //              0     1       2       3       4           5          6          7       8        9          10
+       $SQL = "SELECT id, sender, subject, text, receivers, payment_id, data_type, timestamp, url, target_send, cat_id
+        FROM "._MYSQL_PREFIX."_pool
+        WHERE id='".bigintval($_GET['mid'])."'
+        LIMIT 1";
+       $WHO = MAIL_ID.": ".$_GET['mid'];
+}
+ elseif (!empty($_GET['u_id']))
+{
+       // All mails by a specific member shall be displayed
+       //              0     1       2       3       4           5          6          7       8        9          10
+       $SQL = "SELECT id, sender, subject, text, receivers, payment_id, data_type, timestamp, url, target_send, cat_id
+        FROM "._MYSQL_PREFIX."_pool
+        WHERE sender='".bigintval($_GET['u_id'])."'
+        ORDER by timestamp DESC";
+       $WHO = USER_ID.": ".$_GET['u_id'];
+}
+
+if ((EXT_IS_ACTIVE("bonus")) && ($WHO == _ALL))
+{
+       // Bonus mails sent by you
+       //               0     1       2        3        4      5       6          7       8      9         10          11        12
+       $SQL2 = "SELECT id, subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, mails_sent, clicks
+        FROM "._MYSQL_PREFIX."_bonus
+        ORDER BY timestamp DESC";
+
+       // Check for maximum pages
+       $result_bonus = SQL_QUERY($SQL2, __FILE__, __LINE__);
+}
+
+// Check for maximum pages
+$result_normal = SQL_QUERY($SQL, __FILE__, __LINE__);
+
+// Set offset an current page to default values
+if (empty($_GET['page']))   $_GET['page']   = "1";
+if (empty($_GET['offset'])) $_GET['offset'] = $CONFIG['mails_page'];
+
+// Add limitation to SQL string
+if (empty($_GET['mid']))
+{
+       // Create limitation line
+       $ADD = " LIMIT ".(bigintval($_GET['offset']) * bigintval($_GET['page']) - bigintval($_GET['offset'])).", ".bigintval($_GET['offset']);
+
+       // For normal mails
+       $SQL .= $ADD;
+
+       // For bonus mails
+       if (!empty($SQL2)) $SQL2 .= $ADD;
+}
+
+// Run SQL query for normal mails
+$result_list = SQL_QUERY($SQL, __FILE__, __LINE__);
+if ((!empty($SQL2)) && ($WHO == _ALL)) $result_bonus = SQL_QUERY($SQL2, __FILE__, __LINE__);
+
+// Calculate pages
+$PAGES = round(SQL_NUMROWS($result_normal) / $CONFIG['mails_page'] + 0.3);
+SQL_FREERESULT($result_normal);
+
+$MAIL = false;
+if (SQL_NUMROWS($result_list) > 0)
+{
+       // Mail orders are in pool so we can display them
+       OUTPUT_HTML ("<DIV align=\"center\">
+<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"admin_table dashed\" width=\"99%\">
+<TR>
+  <TD colspan=\"3\" align=\"center\" height=\"25\" class=\"admin_title\">
+    <STRONG class=\"admin_done\">".ADMIN_POOL_CONTENT." (".$WHO.")</STRONG>
+  </TD>
+</TR>");
+
+       // Add navigation (with change box and colspan=3)
+       if ($PAGES > 1) ADD_EMAIL_NAV($PAGES, $CONFIG['mails_page'], false, "3");
+
+       while ($pool = SQL_FETCHROW($result_list))
+       {
+               // Unconfirmed mails and sent mails
+               $result_uncon = SQL_QUERY_ESC("SELECT max_rec, clicks FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1",
+                array(bigintval($pool[0])), __FILE__, __LINE__);
+               list($sent, $clicks) = SQL_FETCHROW($result_uncon);
+               SQL_FREERESULT($result_uncon);
+
+               // Unconfirmed mails
+               $unconfirmed = $sent - $clicks;
+               if ($unconfirmed > 0)
+               {
+                       // Add link to list_unconfirmed what-file
+                       $unconfirmed = "<STRONG><A href=\"".URL."/modules.php?module=admin&amp;what=list_unconfirmed&amp;mid=".$pool[0]."\">".$unconfirmed."</A></STRONG>";
+               }
+                elseif ($unconfirmed < 0)
+               {
+                       // Sometimes rarely displayed minus values will be "fixed" to zero
+                       $unconfirmed = "0";
+               }
+
+               // List mail
+               OUTPUT_HTML ("<TR>
+  <TD class=\"bottom top2 right\" width=\"23%\" align=\"center\">
+    ".EMAIL_SENDER.":<BR>
+    <STRONG class=\"admin_misc\">".ADMIN_USER_PROFILE_LINK($pool[1])."</STRONG>
+  </TD>
+  <TD class=\"bottom top2 right\" width=\"23%\" align=\"center\">
+    ".EMAIL_SUBJECT.":<BR>
+    <STRONG class=\"admin_misc\">".COMPILE_CODE($pool[2])."</STRONG>
+  </TD>
+  <TD class=\"bottom top2\" width=\"54%\" align=\"center\">
+    ".EMAIL_TEXT.":<BR>
+    <STRONG class=\"admin_misc\">".COMPILE_CODE($pool[3])."</STRONG>
+  </TD>
+</TR>
+<TR><TD height=\"5\" colspan=\"3\"></TD></TR>
+<TR>
+  <TD colspan=\"2\" align=\"center\" class=\"top bottom right\">
+    ".EMAIL_PAYMENT.":<BR>
+    <STRONG class=\"admin_misc\">".GET_PAYMENT($pool[5])."
+  </TD>
+  <TD align=\"center\" class=\"top bottom\">
+    ".EMAIL_CATEGORY.":<BR>
+    <STRONG class=\"admin_misc\">".GET_CATEGORY($pool[10])."
+  </TD>
+</TR>
+<TR><TD height=\"5\" colspan=\"3\"></TD></TR>
+<TR>
+  <TD align=\"center\" class=\"top bottom right\">
+    ".EMAIL_RECEIVERS.":<BR>
+    <STRONG class=\"admin_misc\">".$sent."</STRONG> (".EMAIL_RUIDS.": <STRONG class=\"admin_misc\">".str_replace(";", ", ", $pool[4])."</STRONG>)
+  </TD>
+  <TD align=\"center\" class=\"top bottom right\">
+    ".USERS_LINKS.":<BR>
+    <STRONG class=\"admin_misc\">".$unconfirmed."</STRONG>
+  </TD>
+  <TD align=\"center\" class=\"top bottom\">
+    ".EMAIL_POOL_TYPE.":<BR>
+    <STRONG class=\"admin_misc\">".GET_POOL_TYPE($pool[6])."</STRONG>
+  </TD>
+</TR>
+<TR><TD height=\"5\" colspan=\"3\"></TD></TR>
+<TR>
+  <TD align=\"center\" class=\"top right\">
+    ".EMAIL_TSEND.":<BR>
+    <STRONG class=\"admin_misc\">".$pool[9]."</STRONG>
+  </TD>
+  <TD align=\"center\" class=\"top right\">
+    ".EMAIL_URL.":<BR>
+    <STRONG class=\"admin_misc\"><A href=\"".FRAMETESTER($pool[8])."\" target=\"_blank\">".EMAIL_URL_TEST."</A></STRONG>
+  </TD>
+  <TD align=\"center\" class=\"top\">
+    ".EMAIL_TIMESTAMP.":<BR>
+    <STRONG class=\"admin_misc\">".MAKE_DATETIME($pool[7], "0")."</STRONG>
+  </TD>
+</TR>
+<TR>
+  <TD align=\"center\" class=\"top2 admin_del_link\" colspan=\"3\">
+    <A href=\"".URL."/modules.php?module=admin&amp;what=del_email&amp;mid=".$pool[0]."\">".ADMIN_DELETE_NORMAL_MAIL."</A>
+  </TD>
+</TR>");
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_list);
+
+       // Add navigation (without change box but with colspan=3)
+       if ($PAGES > 1) ADD_EMAIL_NAV($PAGES, $CONFIG['mails_page'], false, "3");
+
+       // Output footer
+       OUTPUT_HTML ("</TABLE>
+</DIV>");
+       $MAIL = true;
+       if ((EXT_IS_ACTIVE("bonus")) && ($WHO == _ALL))
+       {
+               // Check only if bonus extension is active
+               if (SQL_NUMROWS($result_bonus) > 0) OUTPUT_HTML ("<BR><BR>");
+       }
+}
+
+if ((EXT_IS_ACTIVE("bonus")) && ($WHO == _ALL))
+{
+       // Load bonus mails only when extension is active
+       if (SQL_NUMROWS($result_bonus) > 0)
+       {
+               // Mail orders are in pool so we can display them
+               OUTPUT_HTML ("<DIV align=\"center\">
+<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"admin_table dashed\" width=\"99%\">
+<TR>
+  <TD colspan=\"3\" align=\"center\" height=\"25\" class=\"admin_title\">
+    <STRONG class=\"admin_done\">".ADMIN_BONUS_CONTENT."</STRONG>
+  </TD>
+</TR>");
+               // Calculate pages
+               $PAGES = round(SQL_NUMROWS($result_bonus) / $CONFIG['mails_page'] + 0.5);
+
+               // Add navigation (with change box and colspan=3)
+               if ($PAGES > 1) ADD_EMAIL_NAV($PAGES, $CONFIG['mails_page'], true, "3");
+
+               // List emails
+               while ($bonus = SQL_FETCHROW($result_bonus))
+               {
+                       // Unconfirmed mails
+                       $unconfirmed = $bonus[11] - $bonus[12];
+                       if ($unconfirmed > 0)
+                       {
+                               // Add link to list_unconfirmed what-file
+                               $unconfirmed = "<STRONG><A href=\"".URL."/modules.php?module=admin&amp;what=list_unconfirmed&amp;bid=".$bonus[0]."\">".$unconfirmed."</A></STRONG>";
+                       }
+
+                       OUTPUT_HTML ("<TR>
+  <TD class=\"bottom top2 right\" colspan=\"2\" width=\"46%\" align=\"center\">
+    ".EMAIL_SUBJECT.":<BR>
+    <STRONG class=\"admin_misc\">".$bonus[1]."</STRONG>
+  </TD>
+  <TD class=\"bottom top2\" width=\"54%\" align=\"center\">
+    ".EMAIL_TEXT.":<BR>
+    <STRONG class=\"admin_misc\">".$bonus[2]."</STRONG>
+  </TD>
+</TR>
+<TR><TD height=\"5\" colspan=\"3\"></TD></TR>
+<TR>
+  <TD align=\"center\" class=\"top bottom right\" width=\"23%\">
+    ".EMAIL_POINTS.":<BR>
+    <STRONG class=\"admin_misc\">".$bonus[4]." ".POINTS."
+  </TD>
+  <TD align=\"center\" class=\"top bottom right\" width=\"23%\">
+    ".EMAIL_SECONDS.":<BR>
+    <STRONG class=\"admin_misc\">".$bonus[5]." ".SECS."
+  </TD>
+  <TD align=\"center\" class=\"top bottom\">
+    ".EMAIL_CATEGORY.":<BR>
+    <STRONG class=\"admin_misc\">".GET_CATEGORY($bonus[9])."
+  </TD>
+</TR>
+<TR><TD height=\"5\" colspan=\"3\"></TD></TR>
+<TR>
+  <TD align=\"center\" class=\"top bottom right\">
+    ".EMAIL_RECEIVERS.":<BR>
+    <STRONG class=\"admin_misc\">".$bonus[11]."</STRONG> (".EMAIL_RUIDS.": <STRONG class=\"admin_misc\">".str_replace(";", ", ", $bonus[3])."</STRONG>)
+  </TD>
+  <TD align=\"center\" class=\"top bottom right\">
+    ".USERS_LINKS.":<BR>
+    <STRONG class=\"admin_misc\">".$unconfirmed."</STRONG>
+  </TD>
+  <TD align=\"center\" class=\"top bottom\">
+    ".EMAIL_POOL_TYPE.":<BR>
+    <STRONG class=\"admin_misc\">".GET_POOL_TYPE($bonus[6])."</STRONG>
+  </TD>
+</TR>
+<TR><TD height=\"5\" colspan=\"3\"></TD></TR>
+<TR>
+  <TD align=\"center\" class=\"top right\">
+    ".EMAIL_TSEND.":<BR>
+    <STRONG class=\"admin_misc\">".$bonus[10]."</STRONG>
+  </TD>
+  <TD align=\"center\" class=\"top right\">
+    ".EMAIL_URL.":<BR>
+    <STRONG class=\"admin_misc\"><A href=\"".FRAMETESTER($bonus[8])."\" target=\"_blank\">".EMAIL_URL_TEST."</A></STRONG>
+  </TD>
+  <TD align=\"center\" class=\"top\">
+    ".EMAIL_TIMESTAMP.":<BR>
+    <STRONG class=\"admin_misc\">".MAKE_DATETIME($bonus[7], "0")."</STRONG>
+  </TD>
+</TR>
+<TR>
+  <TD align=\"center\" class=\"top2 admin_del_link\" colspan=\"3\">
+    <A href=\"".URL."/modules.php?module=admin&amp;what=del_email&amp;bid=".$bonus[0]."\">".ADMIN_DELETE_BONUS_MAIL."</A>
+  </TD>
+</TR>");
+               }
+
+               // Add navigation (without change box but with colspan=3)
+               if ($PAGES > 1) ADD_EMAIL_NAV($PAGES, $CONFIG['mails_page'], false, "3");
+
+               // Output footer
+               OUTPUT_HTML ("</TABLE>
+</DIV>");
+               $MAIL = true;
+       }
+}
+
+if (!$MAIL)
+{
+       // No mail orders fond
+       OUTPUT_HTML ("<SPAN class=\"admin_failed\">".ADMIN_NO_MAILS_IN_POOL."</SPAN>");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-email_stats.php b/0.2.1/inc/modules/admin/what-email_stats.php
new file mode 100644 (file)
index 0000000..fc5a361
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 01/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-email_stats.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Check email statistics                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Pruefen der Email-Statistik                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR>");
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-extensions.php b/0.2.1/inc/modules/admin/what-extensions.php
new file mode 100644 (file)
index 0000000..d574a54
--- /dev/null
@@ -0,0 +1,458 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/22/2004 *
+ * ================                             Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-extentions.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Extension management                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Erweiterungen-Management                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+global $CACHE, $KEEP_ACTIVE, $CACHE_FILE;
+
+// Normally we want the overview of all registered extensions
+$do = "overview";
+$SEL = "0";
+if (!empty($_POST['sel'])) $SEL = SELECTION_COUNT($_POST['sel']);
+
+if (!empty($_GET['reg_ext'])) {
+       // We are about to register a new extension
+       $do = "register"; $id = $_GET['reg_ext'];
+       // The ID comes from task management and it is - of course - *not* the extension's name!
+} elseif ((isset($_POST['change'])) && ($SEL > 0) && (!IS_DEMO())) {
+       // De-/activate extensions
+       foreach ($_POST['sel'] as $id=>$active) {
+               // Shall we keep the extension always active?
+               if ((isset($KEEP_ACTIVE[GET_EXT_NAME($id)])) && ($KEEP_ACTIVE[GET_EXT_NAME($id)] == "Y") && ($active == "N")) {
+                       // Keep this extension active!
+               } else {
+                       // De/activate extension
+                       $ACT = "N"; $EXT_LOAD_MODE = "deactivate";
+                       if ($active == "N") { $ACT = "Y"; $EXT_LOAD_MODE = "activate"; }
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='".$ACT."' WHERE id=%d AND ext_active='%s' LIMIT 1",
+                        array(bigintval($id), $active), __FILE__, __LINE__);
+
+                       // Run embeded SQL commands
+                       EXTENSION_RUN_SQLS($id, $EXT_LOAD_MODE);
+               }
+       }
+} elseif (((isset($_POST['edit'])) || (isset($_POST['modify']))) && ($SEL > 0) && (!IS_DEMO())) {
+       // Change settings like CSS file load
+       if (isset($_POST['modify'])) {
+               // Change entries
+               $CACHE_UPDATE = "0";
+               foreach ($_POST['sel'] as $id=>$sel) {
+                       // Secure ID
+                       $id = bigintval($id);
+
+                       // Change this extension?
+                       if ($sel == 1) {
+                               // Update extension's record
+                               $active = $_POST['active'][$id];
+                               if (GET_EXT_VERSION("sql_patches") >= "0.0.6")  {
+                                       // Update also CSS column when extensions sql_patches is newer or exact v0.0.6
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='%s', ext_active='%s' WHERE id=%d LIMIT 1",
+                                        array($_POST['css'][$id], $active, $id), __FILE__, __LINE__);
+                               } else {
+                                       // When extension is older than v0.0.6 there is no column for the CSS information
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='%s' WHERE id=%d LIMIT 1",
+                                        array($active, $id), __FILE__, __LINE__);
+                               }
+
+                               // Run SQLs on activation / deactivation
+                               switch ($active) {
+                                       case "Y": $EXT_LOAD_MODE = "activate";   break;
+                                       case "N": $EXT_LOAD_MODE = "deactivate"; break;
+                               }
+
+                               // Run embeded SQL commands
+                               EXTENSION_RUN_SQLS($id, $EXT_LOAD_MODE);
+                       }
+               }
+
+               // Extensions changed
+               OUTPUT_HTML ("<P align=\"center\">");
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_EXT_CHANGED);
+               OUTPUT_HTML ("</P>");
+       } else {
+               // Edit selected entries
+               $SW = "2"; $OUT = "";
+               foreach ($_POST['sel'] as $id=>$sel) {
+                       // Edit this extension?
+                       if (($sel == "Y") || ($sel == "N")) {
+                               // Load required data
+                               if (GET_EXT_VERSION("sql_patches") >= "0.0.6") {
+                                       $result = SQL_QUERY_ESC("SELECT ext_name, ext_has_css, ext_active FROM "._MYSQL_PREFIX."_extensions WHERE id=%d LIMIT 1",
+                                        array(bigintval($id)), __FILE__, __LINE__);
+                                       list($name, $css, $active) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+                               } else {
+                                       $result = SQL_QUERY_ESC("SELECT ext_name, ext_active FROM "._MYSQL_PREFIX."_extensions WHERE id=%d LIMIT 1",
+                                        array(bigintval($id)), __FILE__, __LINE__);
+                                       list($name, $active) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+                                       $css = "X";
+                               }
+
+                               // Output row
+                               $CSS = "---";
+                               if (GET_EXT_VERSION("sql_patches") >= "0.0.6") $CSS = ADD_SELECTION("yn", $css, "css", $id);
+
+                               // Prepare data for the row template
+                               $content = array(
+                                       'sw'     => $SW,
+                                       'id'     => $id,
+                                       'name'   => $name,
+                                       'active' => ADD_SELECTION("yn", $active, "active", $id),
+                                       'css'    => $CSS,
+                               );
+
+                               // Load row template and switch color
+                               $OUT .= LOAD_TEMPLATE("admin_extensions_edit_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+               }
+               define('__EXTENSIONS_ROWS', $OUT);
+
+               // Load template
+               LOAD_TEMPLATE("admin_extensions_edit");
+               $do = "edit";
+       }
+} elseif ((isset($_POST['delete'])) && ($SEL > 0) && (!IS_DEMO())) {
+       // List extensions and when verbose is enabled SQL statements which will be executed
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$sel) {
+               $VERBOSE_OUT = ""; $SQLs = array();
+               // Load extension's data
+               $result = SQL_QUERY_ESC("SELECT ext_name, ext_version FROM "._MYSQL_PREFIX."_extensions WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($ext_name, $ext_ver) = SQL_FETCHROW($result);
+
+               // Free the result
+               SQL_FREERESULT($result);
+
+               if ($CONFIG['verbose_sql']) {
+                       // Load SQL commands in remove mode
+                       $EXT_LOAD_MODE = "remove";
+                       $file = sprintf(PATH."inc/extensions/ext-%s.php", $ext_name);
+                       include($file);
+
+                       // Generate extra table with loaded SQL commands
+                       $VERBOSE_OUT = EXTENSION_VERBOSE_TABLE($SQLs);
+               }
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'       => $SW,
+                       'id'       => $id,
+                       'ext_name' => $ext_name,
+                       'ext_ver'  => $ext_ver,
+                       'verbose'  => $VERBOSE_OUT
+               );
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_extensions_delete_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__EXTENSIONS_ROWS', $OUT);
+
+       // Load template
+       LOAD_TEMPLATE("admin_extensions_delete");
+       $do = "delete";
+} elseif ((isset($_POST['remove'])) && ($SEL > 0) && (!IS_DEMO())) {
+       // Remove extensions from DB (you have to delete all files manually!)
+       $CACHE_UPDATE = "0";
+       foreach ($_POST['sel'] as $id=>$active) {
+               // Secure ID number
+               $id = bigintval($id);
+
+               // Is this extension selected?
+               if ($active == 1) {
+                       // Run embeded SQL commands
+                       EXTENSION_RUN_SQLS($id, "remove");
+
+                       // Delete this extension (remember to remove it from your server *before* you click on welcome!
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_extensions WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+               }
+       }
+} elseif (!empty($_GET['do']) && (!IS_DEMO())) {
+       // Other things to do
+       $do = SQL_ESCAPE(strip_tags($_GET['do']));
+} elseif (!empty($_GET['do'])) {
+       // Demo mode active!
+       $do = "demo";
+}
+
+// Shall we display active/inactive extensions?
+$where = "";
+if (!empty($_GET['active'])) {
+       $where = sprintf("WHERE ext_active = '%s'", SQL_ESCAPE(strip_tags($_GET['active'])));
+}
+
+// Case selection
+switch ($do) {
+case "overview": // List all registered extensions
+       if (GET_EXT_VERSION("sql_patches") >= "0.0.6") {
+               // Load extension data with CSS informations
+               $result = SQL_QUERY("SELECT id, ext_name, ext_lang_file, ext_active, ext_has_css, ext_version
+               FROM "._MYSQL_PREFIX."_extensions
+               ".$where."
+               ORDER BY ext_name", __FILE__, __LINE__);
+       } else {
+               // Load extension data without CSS informations
+               $result = SQL_QUERY("SELECT id, ext_name, ext_lang_file, ext_active, id, ext_version
+               FROM "._MYSQL_PREFIX."_extensions
+               ".$where."
+               ORDER BY ext_name", __FILE__, __LINE__);
+       }
+
+       // Are there some entries?
+       if (SQL_NUMROWS($result) > 0) {
+               // Extensions are registered
+               $SW = 2; $OUT = "";
+               while (list($id, $name, $lang, $active, $css, $ver) = SQL_FETCHROW($result)) {
+                       $CSS = "---";
+                       if (GET_EXT_VERSION("sql_patches") >= "0.0.6") $CSS = TRANSLATE_YESNO($css);
+
+                       // Prepare data for the row template
+                       $content = array(
+                               'sw'      => $SW,
+                               'id'      => $id,
+                               'name'    => $name,
+                               'active'  => TRANSLATE_YESNO($active),
+                               'act_val' => $active,
+                               'lang'    => $lang,
+                               'css'     => $CSS,
+                               'ver'     => $ver,
+                       );
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_extensions_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Remember rows in constant for the template
+               define('__EXT_ROWS', $OUT);
+
+               // Load template
+               LOAD_TEMPLATE("admin_extensions");
+       } else {
+               // No extensions are registered
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_EXTENSION_REGISTERED."</FONT>");
+       }
+       // Link for checking for new or updated extensions
+       OUTPUT_HTML ("<BR><A href=\"".URL."/modules.php?module=admin&amp;what=extensions&amp;do=search\">".ADMIN_SEARCH_NEW_EXTENSIONS."</A>");
+       break;
+
+case "register": // Register new extension
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='%s' AND task_type='EXTENSION' LIMIT 1",
+        array(bigintval(GET_ADMIN_ID($_COOKIE['admin_login']))), __FILE__, __LINE__);
+       $task_found = SQL_NUMROWS($result);
+
+       // Free result
+       SQL_FREERESULT($result);
+
+       // Is the ID number valid and the task was found?
+       if (($id > 0) && ($task_found == 1)) {
+               // ID is valid so begin with registration, we first want to it's real name from task management (subject column)
+               $result = SQL_QUERY_ESC("SELECT subject FROM "._MYSQL_PREFIX."_task_system WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($subj) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Disable cache update by default
+               $CACHE_UPDATE = "0";
+               if (!empty($subj)) {
+                       // Extract extension's name from subject...
+                       $ext_name = trim(substr($subj, 1, strpos($subj, ":") - 1));
+
+                       // ... so we can finally register and load it in registration mode
+                       $status = EXTENSION_REGISTER($ext_name, $id);
+                       if ($status) {
+                               // Extension was found and successfully registered
+                               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_EXTENSION_REGISTERED);
+
+                               // Do we need to update cache file?
+                               if ((EXT_IS_ACTIVE("cache")) && ($CACHE_FILE != "no")) {
+                                       // Remove cache file (will be auto-created again!)
+                                       if ($CACHE->cache_file("extensions", true)) $CACHE->cache_destroy();
+                               }
+                       } else {
+                               // Motify the admin that we have a problem here...
+                               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_REG_FAILED_404);
+                       }
+               } else {
+                       // Extension was not found in task management
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_REG_FAILED_ID_404);
+               }
+       } elseif ($task_found == "0") {
+               // No longer assigned or old task
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_REG_FAILED_ASSIGED);
+       } else {
+               // ID is invalid
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_REG_FAILED_INVALID);
+       }
+       break;
+
+case "search": // Search for new extensions on our server
+       // Get response from our server
+       $response = MXCHANGE_OPEN("extensions.php");
+
+       // Are extensions found?
+       if (($response[sizeof($response) - 1] == "[EOF]") && ($response[0] != "[EOF]"))
+       {
+               // Ok, mark found and create the array
+               $EXT_SEARCH = array(
+                       'fname'  => array(), // File names
+                       'fsize'  => array(), // File size
+                       'fctime' => array(), // File creation timestamp
+                       'infos'  => array(), // File informations (maybe loaded!)
+                       'ver'    => array(), // Version number
+                       'cver'   => array(), // Current version number
+               );
+
+               // Get count of extensions for validation
+               $count = trim($response[sizeof($response) - 2]);
+               foreach ($response as $id=>$value)
+               {
+                       $value = str_replace("\n", "", $value); $ver = "";
+                       // Leave loop when data is invalid or EOF?
+                       if ((substr($value, 0, 4) == "ext-") && (substr($value, -4) == ".zip"))
+                       {
+                               $name = substr($value, 4, -4);
+                               $file = sprintf(PATH."inc/extensions/ext-%s.php", $name);
+                               $ver = trim(substr($response[$id + 3], 4));
+
+                               // Load current extension's version
+                               $cver = GET_EXT_VERSION($name);
+                               if (empty($cver)) $cver = "-.-";
+
+                               // Is the extension already installed or not?
+                               if (!file_exists($file) || ($ver != $cver))
+                               {
+                                       // No, it isn't. So let's add this one!
+                                       $EXT_SEARCH['fname'][]  = $name;
+                                       $EXT_SEARCH['fsize'][]  = $response[$id + 1];
+                                       $EXT_SEARCH['fctime'][] = $response[$id + 2];
+                                       $EXT_SEARCH['ver'][]    = $ver;
+                                       $EXT_SEARCH['cver'][]   = $cver;
+
+                                       $LANG_DUMMY = explode("[nl]", $response[$id + 4]);
+                                       $LANG = array();
+                                       $INFO = ADMIN_EXT_NO_INFO_FOUND;
+
+                                       // Trim every data line
+                                       foreach ($LANG_DUMMY as $k=>$v)
+                                       {
+                                               $v = trim($v);
+                                               if (substr($v, 3) == "") $v = "---";
+                                               $LANG_DUMMY[$k] = $v;
+                                               if ($v == "xx:xx") break;
+                                               $LANG[] = $v;
+                                       }
+
+                                       // If language is found stop searching on matching line
+                                       foreach($LANG as $search)
+                                       {
+                                               if (substr($search, 0, 3) == (GET_LANGUAGE().":")) { $INFO = substr($search, 3); break; }
+                                       }
+
+                                       // Add informations to array
+                                       $EXT_SEARCH['infos'][] = $INFO;
+                               }
+                       }
+               }
+
+               // Ok, extensions are on our server but maybe you have already installed them?
+               if (sizeof($EXT_SEARCH['fname']) > 0)
+               {
+                       // Sort array (I missed ver and cver here)
+                       array_pk_sort($EXT_SEARCH, array("cver", "fname"), 0, 1);
+
+                       // Extensions where found which are not downloaded and installed
+                       $SW = 2; $OUT = ""; $TSIZE = 0;
+                       foreach ($EXT_SEARCH['fname'] as $id=>$name)
+                       {
+                               // Generate download link
+                               $LINK = SERVER_URL."/extensions/ext-".$name.".zip";
+
+                               // Prepare data for the row template
+                               $content = array(
+                                       'sw'      => $SW,
+                                       'id'      => ($id + 1),
+                                       'name'    => $name,
+                                       'new_ver' => $EXT_SEARCH['ver'][$id],
+                                       'old_ver' => $EXT_SEARCH['cver'][$id],
+                                       'link'    => $LINK,
+                                       'last'    => MAKE_DATETIME($EXT_SEARCH['fctime'][$id], "2"),
+                                       'size'    => TRANSLATE_COMMA(round($EXT_SEARCH['fsize'][$id] / 1.024) / 1000),
+                                       'info'    => stripslashes($EXT_SEARCH['infos'][$id]),
+                               );
+
+                               // Load row template add current size to total size and switch color
+                               $OUT .= LOAD_TEMPLATE("admin_list_extensions_row", true, $content);
+                               $TSIZE += $EXT_SEARCH['fsize'][$id];
+                               $SW = 3 - $SW;
+                       }
+                       define('__EXTENSIONS_ROWS', $OUT);
+                       define('__TKBYTES_VALUE', TRANSLATE_COMMA(round($TSIZE / 1.024) / 1000));
+                       define('__TEXT_VALUE', sizeof($EXT_SEARCH['fname']));
+
+                       // Load template
+                       LOAD_TEMPLATE("admin_list_extensions");
+               }
+                else
+               {
+                       // All extensions are downloaded and installed
+                       LOAD_TEMPLATE("admin_extensions_installed", false, $count);
+               }
+       }
+        else
+       {
+               // No extensions where found
+               LOAD_TEMPLATE("admin_extensions_404");
+       }
+       break;
+
+case "demo":
+       LOAD_TEMPLATE("admin_settings_saved", false, SETTINGS_NOT_SAVED);
+       break;
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-guest_add.php b/0.2.1/inc/modules/admin/what-guest_add.php
new file mode 100644 (file)
index 0000000..7e392e0
--- /dev/null
@@ -0,0 +1,216 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-guest_add.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Add a new guest menu                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einen neuen Gastmenuepunkt einfuegen             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR>");
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+
+// Check if the admin has entered title and what-php file name...
+if (((empty($_POST['title'])) || (empty($_POST['menu']))) && (isset($_POST['ok'])))
+{
+       unset($_POST['ok']);
+}
+
+if (!isset($_POST['ok']))
+{
+       // Create arrays
+       $menus = array(); $titles = array(); $below = array();
+
+       // Get all available main menus
+       $result = SQL_QUERY("SELECT action, title, sort FROM "._MYSQL_PREFIX."_guest_menu WHERE what='' ORDER BY sort", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Read menu structure
+               while (list($act, $title, $sort) = SQL_FETCHROW($result))
+               {
+                       // Menu actions
+                       $menus[] = $act;
+
+                       // Menu titles
+                       $titles[] = $title;
+
+                       // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
+                       $below[] = $sort + 1;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Remove double eintries
+               $prev = ""; $dmy = $menus; $dmy2 = $titles; $dmy3 = $below;
+               foreach ($menus as $key=>$value)
+               {
+                       if ($value == $prev)
+                       {
+                               unset($dmy[$key]);
+                               unset($dmy2[$key]);
+                               unset($dmy3[$key]);
+                       }
+                        else
+                       {
+                               $prev = $value;
+                       }
+               }
+               $menus = $dmy; $titles = $dmy2; $below = $dmy3;
+               // Load sub menus :)
+               foreach ($menus as $key_main=>$value_main)
+               {
+                       $result = SQL_QUERY_ESC("SELECT what, title, sort
+FROM "._MYSQL_PREFIX."_guest_menu
+WHERE action='%s' AND what != '' ORDER BY sort",
+ array(bigintval($value_main)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) > 0)
+                       {
+                               // Initialize arrays
+                               $menus[$value_main] = array();
+                               $titles[$value_main] = array();
+                               $below[$value_main] = array();
+
+                               // Read menu structure
+                               while (list($act, $title, $sort) = SQL_FETCHROW($result))
+                               {
+                                       // Menu actions
+                                       $menus[$value_main][] = $act;
+
+                                       // Menu titles
+                                       $titles[$value_main][] = $title;
+
+                                       // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
+                                       $below[$value_main][] = $sort + 1;
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // Remove double eintries
+                               $prev = ""; $dmy = $menus[$value_main]; $dmy2 = $titles[$value_main]; $dmy3 = $below[$value_main];
+                               foreach ($menus[$value_main] as $key=>$value)
+                               {
+                                       if ($value == $prev)
+                                       {
+                                               unset($dmy[$key]);
+                                               unset($dmy2[$key]);
+                                               unset($dmy3[$key]);
+                                       }
+                                        else
+                                       {
+                                               $prev = $value;
+                                       }
+                               }
+                               $menus[$value_main] = $dmy; $titles[$value_main] = $dmy2; $below[$value_main] = $dmy3;
+                       }
+               }
+       }
+
+       $OUT = "    <SELECT class=\"admin_select\" name=\"sort\" size=\"1\">
+      <OPTION value=\"0\">".IS_FIRST_MENU."</OPTION>";
+       foreach ($below as $key=>$m)
+       {
+               if (is_array($m))
+               {
+                       foreach ($m as $key2=>$m2)
+                       {
+                               $OUT .= "      <OPTION value=\"".$m2."\">".$titles[$key][$key2];
+                               foreach ($menus as $k=>$v)
+                               {
+                                       if (($v == $key) && (!is_array($v)))
+                                       {
+                                               $OUT .= " (".$titles[$k].")";
+                                       }
+                               }
+                               $OUT .= "</OPTION>\n";
+                       }
+               }
+                else
+               {
+                       $OUT .= "      <OPTION value=\"".$m."\">".$titles[$key]."</OPTION>\n";
+               }
+       }
+       $OUT .= "</SELECT>";
+
+       define('__BELOW_SELECTION' , $OUT);
+       define('__WHAT_SELECTION'  , ADMIN_MAKE_MENU_SELECTION("guest", "what", "name"));
+       define('__ACTION_SELECTION', ADMIN_MAKE_MENU_SELECTION("guest", "action", "menu"));
+
+       // Display form
+       LOAD_TEMPLATE("admin_guest_add");
+}
+ elseif (!IS_DEMO())
+{
+       // Insert new menu entry
+       if (!empty($_POST['menu']))
+       {
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_guest_menu
+(action, what, title, sort, visible, locked)
+VALUES('%s', '%s', '%s', '%s', '%s', '%s')",
+ array(
+       $_POST['menu'],
+       $_POST['name'],
+       $_POST['title'],
+       bigintval($_POST['sort']),
+       $_POST['visible'],
+       $_POST['active'],
+), __FILE__, __LINE__);
+       }
+        else
+       {
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_guest_menu
+(action, title, sort, visible, locked)
+VALUES('%s', '%s', '%s', '%s', '%s')",
+ array(
+       $_POST['name'],
+       $_POST['title'],
+       bigintval($_POST['sort']),
+       $_POST['visible'],
+       $_POST['active'],
+), __FILE__, __LINE__);
+       }
+       LOAD_TEMPLATE("admin_settings_saved", false, SAVING_DONE);
+}
+ else
+{
+       // Demo mode!
+       LOAD_TEMPLATE("admin_settings_saved", false, SETTINGS_NOT_SAVED);
+}
+
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-guestedit.php b/0.2.1/inc/modules/admin/what-guestedit.php
new file mode 100644 (file)
index 0000000..1f301e8
--- /dev/null
@@ -0,0 +1,369 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-guestedit.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Edit guest's menu                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Menue fuer die Gaeste editieren                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Do we edit/delete/change main menus or sub menus?
+$AND = "what=''"; $SUB = "";
+
+if (!empty($_GET['sub']))
+{
+       $AND = sprintf("action='%s'", SQL_ESCAPE($_GET['sub']));
+       $SUB = SQL_ESCAPE($_GET['sub']);
+}
+
+// Get count of (maybe) selected menu points
+$chk = 0;
+if (!empty($_POST['sel'])) $chk = SELECTION_COUNT($_POST['sel']);
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+// List all menu points and make them editable
+OUTPUT_HTML ("<BR><BR></FONT>
+<DIV align=\"center\">");
+if ((isset($_POST['edit'])) && ($chk > 0) && (!IS_DEMO()))
+{
+       // Edit menu entries
+       define('__SUB_VALUE', $SUB);
+       define('__CHK_VALUE', $chk);
+
+       $cnt = 0; $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $sel=>$confirm)
+       {
+               if ($confirm == 1)
+               {
+                       $cnt++;
+                       $query = SQL_QUERY_ESC("SELECT title, action, what FROM "._MYSQL_PREFIX."_guest_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($query) == 1)
+                       {
+                               // Entry found so we load the stuff...
+                               list($menu, $act, $wht) = SQL_FETCHROW($query);
+                               SQL_FREERESULT($result);
+                               $DATA = array(
+                                       'cnt'    => $cnt,
+                                       'sel'    => $sel,
+                                       'action' => ADMIN_MAKE_MENU_SELECTION("guest", "action", "sel_action[".$sel."]", $act),
+                                       'what'   => ADMIN_MAKE_MENU_SELECTION("guest", "what", "sel_what[".$sel."]", $wht),
+                                       'menu'   => $menu,
+                                       'sw'     => $SW,
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_gmenu_edit_row", true, $DATA);
+                       }
+                        else
+                       {
+                               // Entry not found?
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'sel' => $sel
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);
+                       }
+                       $SW = 3 - $SW;
+               }
+       }
+       define('__MENU_ROWS', $OUT);
+       define('__CNT_VALUE', $cnt);
+
+       // Load template
+       LOAD_TEMPLATE("admin_gmenu_edit_form");
+}
+ elseif ((isset($_POST['del'])) && (!IS_DEMO()))
+{
+       // Del menu entries with or without confirmation
+       define('__SUB_VALUE', $SUB);
+       define('__CHK_VALUE', $chk);
+
+       $cnt = 0; $OUT = ""; $SW = 2;
+       foreach ($_POST['sel'] as $sel=>$confirm)
+       {
+               if ($confirm == 1)
+               {
+                       $cnt++;
+                       $query = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_guest_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($query) == 1)
+                       {
+                               // Entry found so we load the stuff...
+                               list($menu) = SQL_FETCHROW($query);
+                               SQL_FREERESULT($result);
+                               $DATA = array(
+                                       'cnt'  => $cnt,
+                                       'menu' => $menu,
+                                       'sel'  => $sel,
+                                       'sw'   => $SW,
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_gmenu_delete_row", true, $DATA);
+                       }
+                        else
+                       {
+                               // Entry not found?
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'sel' => $sel
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);
+                       }
+                       $SW = 3 - $SW;
+               }
+       }
+       define('__MENU_ROWS', $OUT);
+       define('__CNT_VALUE', $cnt);
+
+       // Load template
+       LOAD_TEMPLATE("admin_gmenu_delete");
+}
+ elseif ((isset($_POST['ok'])) && (!IS_DEMO()))
+{
+       // An action is done...
+       switch ($_POST['ok'])
+       {
+       case "edit": // Edit menu
+               foreach ($_POST['sel'] as $sel=>$menu)
+               {
+                       // Secure selector
+                       $sel = bigintval($sel);
+
+                       // Update entry
+                       $query = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_guest_menu SET title='%s', action='%s', what='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array($menu, $_POST['sel_action'][$sel], $_POST['sel_what'][$sel], $sel),__FILE__, __LINE__);
+               }
+               LOAD_TEMPLATE("admin_data_saved");
+               break;
+
+       case "del": // Delete menu
+               foreach ($_POST['sel'] as $sel=>$menu)
+               {
+                       // Delete enty
+                       $query = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+               }
+               LOAD_TEMPLATE("admin_data_saved");
+               break;
+
+       case "status": // Change access levels
+               foreach ($_POST['sel'] as $sel=>$menu)
+               {
+                       // Secure selector
+                       $sel = bigintval($sel);
+
+                       // Update entry
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='%s', locked='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array($_POST['visible'][$sel], $_POST['locked'][$sel], $sel), __FILE__, __LINE__);
+               }
+               LOAD_TEMPLATE("admin_data_saved");
+               break;
+
+       default: // Unexpected action
+               define('__OK_VALUE', $_POST['ok']);
+               LOAD_TEMPLATE("admin_menu_unknown_okay");
+               break;
+       }
+}
+ elseif ((isset($_POST['status'])) && ($chk > 0) && (!IS_DEMO()))
+{
+       // Change status (visible / locked)
+       define('__SUB_VALUE', $SUB);
+       define('__CHK_VALUE', $chk);
+
+       // Load template
+       $SW = 2; $cnt = 0; $OUT = "";
+       foreach ($_POST['sel'] as $sel=>$confirm)
+       {
+               if ($confirm == 1)
+               {
+                       $cnt++;
+                       $result = SQL_QUERY_ESC("SELECT title, visible, locked FROM "._MYSQL_PREFIX."_guest_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Entry found so we load the stuff...
+                               list($menu, $vis, $locked) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+                               $content = array(
+                                       'cnt'     => $cnt,
+                                       'menu'    => $menu,
+                                       'sel'     => $sel,
+                                       'sw'      => $SW,
+                                       'visible' => ADD_SELECTION("yn", $vis   , "visible", $sel),
+                                       'locked'  => ADD_SELECTION("yn", $locked, "locked" , $sel),
+                               );
+
+                               // Load template
+                               $OUT .= LOAD_TEMPLATE("admin_menu_status_row", true, $content);
+                       }
+                        else
+                       {
+                               // Entry not found?
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'sel' => $sel
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);
+                       }
+                       $SW = 3 - $SW;
+               }
+       }
+       define('__CNT_VALUE', $cnt);
+       define('__MENU_ROWS', $OUT);
+
+       // Load template
+       LOAD_TEMPLATE("admin_gmenu_status");
+}
+ else
+{
+       if ((!empty($_GET['act'])) && (!empty($_GET['tid'])) && (!empty($_GET['fid'])))
+       {
+               // Get IDs
+               if (!empty($_GET['w']))
+               {
+                       // Sub menus selected
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_guest_menu WHERE action='%s' AND sort='%s' LIMIT 1",
+                        array($_GET['act'], bigintval($_GET['tid'])), __FILE__, __LINE__);
+                       list($tid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_guest_menu WHERE action='%s' AND sort='%s' LIMIT 1",
+                        array($_GET['act'], bigintval($_GET['fid'])), __FILE__, __LINE__);
+                       list($fid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // Main menu selected
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_guest_menu WHERE what='' AND sort='%s' LIMIT 1",
+                        array(bigintval($_GET['tid'])), __FILE__, __LINE__);
+                       list($tid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_guest_menu WHERE what='' AND sort='%s' LIMIT 1",
+                        array(bigintval($_GET['fid'])), __FILE__, __LINE__);
+                       list($fid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+
+               if ((!empty($tid)) && (!empty($fid)))
+               {
+                       // Sort menu
+                       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_guest_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($_GET['tid']), bigintval($fid)), __FILE__, __LINE__);
+                       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_guest_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($_GET['fid']), bigintval($tid)), __FILE__, __LINE__);
+               }
+       }
+
+       // By default list menus
+       if (empty($SUB))
+       {
+               // List only main menus
+               $query = SQL_QUERY("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_guest_menu WHERE what='' ORDER BY sort ASC", __FILE__, __LINE__);
+       }
+        else
+       {
+               // List sub menus
+               $query = SQL_QUERY_ESC("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_guest_menu WHERE action='%s' AND what != '' ORDER BY sort ASC",
+                array($SUB), __FILE__, __LINE__);
+       }
+
+       // Get number of menu entries
+       $max = SQL_NUMROWS($query);
+       if ($max > 0)
+       {
+               // Some entties does exist!
+               if (!empty($SUB))
+               {
+                       // Set sub value
+                       define('__SUB_VALUE', $SUB);
+               }
+                else
+               {
+                       // No sub menu selected
+                       define('__SUB_VALUE', "");
+               }
+
+               $SW = 2; $cnt = 0; $OUT = "";
+               while (list($id, $act, $wht, $title, $sort) = SQL_FETCHROW($query))
+               {
+                       $cnt++;
+                       if (($sort == 0) || (($sort == 1) && (!empty($SUB))))
+                       {
+                               // Is highest position
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=guestedit&amp;sub=".__SUB_VALUE."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";
+                       }
+                        elseif ($cnt == $max)
+                       {
+                               // Is lowest position
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=guestedit&amp;sub=".__SUB_VALUE."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>";
+                       }
+                        elseif ($sort > 0)
+                       {
+                               // Anything else between highest and lowest
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=guestedit&amp;sub=".__SUB_VALUE."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>/<A href=\"".URL."/modules.php?module=admin&amp;what=guestedit&amp;sub=".__SUB_VALUE."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";
+                       }
+                       if (empty($act)) $act = "&nbsp;";
+                       if (empty($wht))   $wht   = "&nbsp;";
+                       if (empty($title))  $title  = "&nbsp;";
+                       $content = array(
+                               'sw'     => $SW,
+                               'id'     => $id,
+                               'action' => $act,
+                               'what'   => $wht,
+                               'title'  => $title,
+                               'navi'   => $NAVI,
+                               'mode'   => "guest"
+                       );
+                       $OUT .= LOAD_TEMPLATE("admin_menu_overview_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($query);
+               define('__MENU_ROWS', $OUT);
+
+               // Load template
+               LOAD_TEMPLATE("admin_gmenu_edit");
+       }
+        else
+       {
+               // Menu entries are missing... (???)
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_MENUS_FOUND);
+       }
+}
+OUTPUT_HTML ("</DIV>");
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-holiday_list.php b/0.2.1/inc/modules/admin/what-holiday_list.php
new file mode 100644 (file)
index 0000000..9e02cde
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/24/2004 *
+ * ================                             Last change: 07/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-holiday_list.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : List all holiday requests                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Urlaubsschaltungen auflisten                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR><BR>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-holiday_remove.php b/0.2.1/inc/modules/admin/what-holiday_remove.php
new file mode 100644 (file)
index 0000000..8d935e2
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/24/2004 *
+ * ================                             Last change: 07/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-holiday_remove.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Remove holiday requests                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Urlaubsschaltungen entfernen                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR><BR>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_autopurge.php b/0.2.1/inc/modules/admin/what-list_autopurge.php
new file mode 100644 (file)
index 0000000..dbd63e5
--- /dev/null
@@ -0,0 +1,96 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/26/2004 *
+ * ================                             Last change: 06/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_autopurge.php                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Find inactive accounts and just list them        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Inaktive Accounts finden und dann auflisten      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Ok, let's have a look...
+$since = bigintval(time() - $CONFIG['ap_in_since']);
+$EXCLUDE_LIST = " AND d.userid != c.def_refid";
+
+// Check for more extensions
+if (EXT_IS_ACTIVE("beg"))     $EXCLUDE_LIST .= " AND d.userid != c.beg_uid";
+if (EXT_IS_ACTIVE("bonus"))   $EXCLUDE_LIST .= " AND d.userid != c.bonus_uid";
+if (EXT_IS_ACTIVE("doubler")) $EXCLUDE_LIST .= " AND d.userid != c.doubler_uid";
+
+// Check for all accounts
+$result = SQL_QUERY_ESC("SELECT DISTINCT d.userid, d.sex, d.surname, d.family, d.email, d.joined, d.last_online, d.ap_notified
+FROM "._MYSQL_PREFIX."_user_data AS d, "._MYSQL_PREFIX."_config AS c
+WHERE d.status='CONFIRMED' AND d.joined < %s AND d.last_online < %s AND d.ap_notified < %s
+".$EXCLUDE_LIST."
+ORDER BY d.userid", array($since, $since, $since), __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result) > 0)
+{
+       // Ok, we have found some inactive accounts
+       $SW = 2; $OUT = "";
+       while(list($uid, $sex, $sname, $fname, $email, $joined, $last, $notified) = SQL_FETCHROW($result))
+       {
+               // Prepare data for the row template
+               $content = array(
+                       'sw'       => $SW,
+                       'uid'      => ADMIN_USER_PROFILE_LINK($uid),
+                       'sex'      => TRANSLATE_SEX($sex),
+                       'sname'    => $sname,
+                       'fname'    => $fname,
+                       'email'    => "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".$email."</A>",
+                       'joined'   => MAKE_DATETIME($joined, "2"),
+                       'last'     => MAKE_DATETIME($last, "2"),
+                       'notified' => MAKE_DATETIME($notified, "2"),
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("admin_list_autopurge_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__AUTOPURGE_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_list_autopurge");
+}
+ else
+{
+       // All members are active or you don't have any registered
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_AUTOPURGE_ALL_ACTIVE);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_bank_package.php b/0.2.1/inc/modules/admin/what-list_bank_package.php
new file mode 100644 (file)
index 0000000..c4105ef
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 02/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_bank_package.php                       *
+ * -------------------------------------------------------------------- *
+ * Short description : List packages                                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Listet Angebotspakete auf                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Check if there is enougth selected
+$show = true;
+if ((isset($_POST['id'])) && (is_array($_POST['id'])) && (count($_POST['id']) > 0)) {
+       // Okay, which button was pressed?
+       if (isset($_POST['change'])) {
+               // Change permissions
+               ADMIN_CHANGE_ACTIVATION_STATUS($_POST['id'], "bank_packages", "package_active");
+       } elseif (isset($_POST['delete'])) {
+               // Delete entries (with confirmation)
+               ADMIN_DELETE_ENTRIES_CONFIRM($_POST['id'], "bank_packages", "package_active", array("id", "title", "description", "account_fee"), array("bigintval", "", "", "TRANSLATE_COMMA"));
+               $show = false;
+       } elseif (isset($_POST['remove'])) {
+               // Delete entries (with confirmation)
+               ADMIN_DELETE_ENTRIES_CONFIRM($_POST['id'], "bank_packages", "package_active", array(), array(), true);
+       }
+}
+
+// Skip showing old entries?
+if (!$show) return;
+
+// Load all banking packages from DB
+$result = SQL_QUERY("SELECT id, title, description, account_fee AS 'fee', package_active AS 'active', interest_plus AS 'plus', interest_minus AS 'minus'
+FROM "._MYSQL_PREFIX."_bank_packages
+ORDER BY id", __FILE__, __LINE__);
+
+// Is there at lease one package?
+if (SQL_NUMROWS($result) > 0) {
+       // List all packages
+       $OUT = ""; $SW = 2;
+       while ($content = SQL_FETCHARRAY($result)) {
+               // "Translate" some data
+               $content['active'] = TRANSLATE_YESNO($content['active']);
+               $content['fee']    = TRANSLATE_COMMA($content['fee']);
+               $content['plus']   = TRANSLATE_COMMA($content['plus']);
+               $content['minus']  = TRANSLATE_COMMA($content['minus']);
+               $content['sw']     = $SW;
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("admin_list_bank_package_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Prepare row(s) for output to template
+       define('__BANK_PACKAGE_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_list_bank_package");
+} else {
+       // No packages found!
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BANK_NO_PACKAGES_FOUND);
+}
+
+// Free the result
+SQL_FREERESULT($result);
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_beg.php b/0.2.1/inc/modules/admin/what-list_beg.php
new file mode 100644 (file)
index 0000000..013330c
--- /dev/null
@@ -0,0 +1,139 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/22/2005 *
+ * ================                             Last change: 10/22/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_beg.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : List members in begging-rallye                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mitglieder in Bettel-Rallye auflisten            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if ($CONFIG['beg_rallye'] == "Y")
+{
+       // Shall I withdraw now?
+       if (isset($_POST['withdraw']))
+       {
+               // Okay, let's prepare...
+               $curr = date("m", time()) - 1;
+               if (strlen($curr) == 1) $curr = "0".$curr;
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET beg_month='%s' WHERE config='0' LIMIT 1",
+                array($curr), __FILE__, __LINE__);
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BEG_WITHDRAW_PREPARED);
+               OUTPUT_HTML("<BR>");
+       }
+
+       // Autopurge installed?
+       $LAST = "%s"; $ONLINE = "";
+       if (EXT_IS_ACTIVE("autopurge"))
+       {
+               // Use last online timestamp to keep inactive members away from here
+               $LAST   = " AND last_online >= %s";
+               $ONLINE = bigintval(time() - $CONFIG['ap_in_since']);
+       }
+
+       // Check if at least one is in the active rallye
+       $result = SQL_QUERY_ESC("SELECT userid, email, sex, surname, family, beg_points, last_online
+FROM "._MYSQL_PREFIX."_user_data
+WHERE status='CONFIRMED' AND beg_points > 0".$LAST."
+ORDER BY beg_points DESC, last_online DESC, userid",
+        array($ONLINE), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List users
+               $OUT = "";$SW = 2; $cnt = 1; $total = 0;
+               while(list($uid, $email, $sex, $sname, $fname, $turbo, $last) = SQL_FETCHROW($result))
+               {
+                       // Generate array fore the dynamic template
+                       $WIN1 = ""; $WIN2 = "";
+                       if ($cnt <= $CONFIG['beg_ranks'])
+                       {
+                               // Maybe he can win his active beg?
+                               $WIN1 = "<STRONG>";
+                               $WIN2 = "</STRONG>";
+                       }
+                       $content = array(
+                               'uid'   => $uid,
+                               'email' => CREATE_EMAIL_LINK($email, "user_data"),
+                               'salut' => TRANSLATE_SEX($sex),
+                               'sname' => $sname,
+                               'fname' => $fname,
+                               'turbo' => TRANSLATE_COMMA($turbo),
+                               'last'  => MAKE_DATETIME($last, "2"),
+                               'sw'    => $SW,
+                               'win1'  => $WIN1,
+                               'win2'  => $WIN2,
+                               'cnt'   => $cnt,
+                       );
+
+                       // Load template and add it
+                       $OUT .= LOAD_TEMPLATE("admin_list_beg_rows", true, $content);
+                       $SW = 3 - $SW; $cnt++; $total += $turbo;
+               }
+               define('__BEG_ROWS', $OUT);
+               define('__TOTAL', TRANSLATE_COMMA($total));
+
+               // Check if we need to display form or not with manuel withdraw
+               if ($CONFIG['beg_month'] == date("m", time()))
+               {
+                       // Load form
+                       define('__BEG_WITHDRAW_FORM', LOAD_TEMPLATE("admin_list_beg_form", true));
+               }
+                else
+               {
+                       // Display message "no manual withdraw possible"
+                       define('__BEG_WITHDRAW_FORM', "<FONT class=\"admin_failed\">".ADMIN_BEG_ALREADY_WITHDRAW."</FONT>");
+               }
+
+               // Prepare constant for timemark
+               define('__AUTOPURGE_TIMEOUT', MAKE_DATETIME(time() - $CONFIG['ap_in_since'], "2"));
+
+               // Load final template
+               LOAD_TEMPLATE("admin_list_beg");
+       }
+        else
+       {
+               // No one has joined the begging rallye...
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BEG_NO_RALLYE);
+       }
+}
+ else
+{
+       // Rallye deactivated
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BEG_RALLYE_DEACTIVATED);
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_bonus.php b/0.2.1/inc/modules/admin/what-list_bonus.php
new file mode 100644 (file)
index 0000000..0f597a7
--- /dev/null
@@ -0,0 +1,156 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/04/2005 *
+ * ================                             Last change: 11/19/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_bonus.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : List members in active-rallye                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mitglieder in Aktiv-Rallye auflisten             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if ($CONFIG['bonus_active'] == "Y")
+{
+       // Shall I withdraw now?
+       if (isset($_POST['withdraw']))
+       {
+               // Okay, let's prepare...
+               $curr = date("m", time()) - 1;
+               if (strlen($curr) == 1) $curr = "0".$curr;
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET last_bonus_month='%s' WHERE config='0' LIMIT 1",
+                array($curr), __FILE__, __LINE__);
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_WITHDRAW_PREPARED);
+               OUTPUT_HTML("<BR>");
+       }
+
+       if (GET_EXT_VERSION("bonus") >= "0.6.9")
+       {
+               // Add more bonus points here
+               $USE = "(0";
+               if ($CONFIG['bonus_click_yn'] == "Y") $USE .= " + turbo_bonus";
+               if ($CONFIG['bonus_login_yn'] == "Y") $USE .= " + login_bonus";
+               if ($CONFIG['bonus_order_yn'] == "Y") $USE .= " + bonus_order";
+               if ($CONFIG['bonus_stats_yn'] == "Y") $USE .= " + bonus_stats";
+               if ($CONFIG['bonus_ref_yn']   == "Y") $USE .= " + bonus_ref";
+               $USE .= ")";
+       }
+        else
+       {
+               // Old version ???
+               $USE = "turbo_bonus";
+       }
+
+       // Autopurge installed?
+       $LAST = "%s"; $ONLINE = "";
+       if (EXT_IS_ACTIVE("autopurge"))
+       {
+               // Use last online timestamp to keep inactive members away from here
+               $LAST   = " AND last_online >= %s";
+               $ONLINE = bigintval(time() - $CONFIG['ap_in_since']);
+       }
+
+       // Check if at least one is in the active rallye
+       $result = SQL_QUERY_ESC("SELECT userid, email, sex, surname, family, ".$USE." AS active_bonus, last_online
+FROM "._MYSQL_PREFIX."_user_data
+WHERE status='CONFIRMED' AND ".$USE." > 0".$LAST."
+ORDER BY active_bonus DESC, last_online DESC, userid",
+        array($ONLINE), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List users
+               $OUT = "";$SW = 2; $cnt = 1; $total = 0;
+               while(list($uid, $email, $sex, $sname, $fname, $turbo, $last) = SQL_FETCHROW($result))
+               {
+                       // Generate array fore the dynamic template
+                       $WIN1 = ""; $WIN2 = "";
+                       if ($cnt <= $CONFIG['bonus_ranks'])
+                       {
+                               // Maybe he can win his active bonus?
+                               $WIN1 = "<STRONG>";
+                               $WIN2 = "</STRONG>";
+                       }
+                       $content = array(
+                               'uid'   => $uid,
+                               'email' => CREATE_EMAIL_LINK($email, "user_data"),
+                               'salut' => TRANSLATE_SEX($sex),
+                               'sname' => $sname,
+                               'fname' => $fname,
+                               'turbo' => TRANSLATE_COMMA($turbo),
+                               'last'  => MAKE_DATETIME($last, "2"),
+                               'sw'    => $SW,
+                               'win1'  => $WIN1,
+                               'win2'  => $WIN2,
+                               'cnt'   => $cnt,
+                       );
+
+                       // Load template and add it
+                       $OUT .= LOAD_TEMPLATE("admin_list_bonus_rows", true, $content);
+                       $SW = 3 - $SW; $cnt++; $total += $turbo;
+               }
+               define('__BONUS_ROWS', $OUT);
+               define('__TOTAL', TRANSLATE_COMMA($total));
+
+               // Check if we need to display form or not with manuel withdraw
+               if ($CONFIG['bonus_month'] == date("m", time()))
+               {
+                       // Load form
+                       define('__BONUS_WITHDRAW_FORM', LOAD_TEMPLATE("admin_list_bonus_form", true));
+               }
+                else
+               {
+                       // Display message "no manual withdraw possible"
+                       define('__BONUS_WITHDRAW_FORM', "<FONT class=\"admin_failed\">".ADMIN_BONUS_ALREADY_WITHDRAW."</FONT>");
+               }
+
+               // Prepare constant for timemark
+               define('__AUTOPURGE_TIMEOUT', MAKE_DATETIME(time() - $CONFIG['ap_in_since'], "2"));
+
+               // Load final template
+               LOAD_TEMPLATE("admin_list_bonus");
+       }
+        else
+       {
+               // No one has become an "activity bonus"...
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_NO_ACTIVE_RALLYE);
+       }
+}
+ else
+{
+       // Aktive-Rallye not activated
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_BONUS_RALLYE_DEACTIVATED);
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_cats.php b/0.2.1/inc/modules/admin/what-list_cats.php
new file mode 100644 (file)
index 0000000..b0d0fc9
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/27/2004 *
+ * ================                             Last change: 07/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_cats.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : List selected categories from users              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausgewaehlte Kategorien eines Mitgliedes         *
+ *                     auflisten                                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (!empty($_GET['u_id']))
+{
+       // Check if the user already exists
+       $result = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Loads surname, family's name and the email address
+               list($sname, $fname, $email) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare constants
+               define('__CATS_BASE'   , "<A href=\"".URL."/modules.php?module=admin&amp;u_id=");
+               define('__UID'         , bigintval($_GET['u_id']));
+               define('__MEMBER_LINKS', MEMBER_ACTION_LINKS(__UID));
+               define('__EMAIL'       , "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".$sname." ".$fname."</A>");
+
+               // Ok, list categories of this user
+               $result_cats = SQL_QUERY("SELECT id, cat FROM "._MYSQL_PREFIX."_cats ORDER BY sort", __FILE__, __LINE__);
+
+               if (SQL_NUMROWS($result_cats) > 0)
+               {
+                       // List categories
+                       $cnt = "1"; $SW = 2; $OUT = "";
+                       while (list($cid, $cat) = SQL_FETCHROW($result_cats))
+                       {
+                               // Check user's selection
+                               $result_user = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_cats WHERE userid=%d AND cat_id=%d LIMIT 1",
+                                array(bigintval($_GET['u_id']), bigintval($cid)), __FILE__, __LINE__);
+
+                               // Set selection
+                               $SELECTED = "<FONT color=\"red\">".NO."</FONT>";
+                               if (SQL_NUMROWS($result_user) == 1) $SELECTED = "<FONT color=\"green\">".YES."</FONT>";
+
+                               // Prepare array for the row template
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'cnt' => $cnt,
+                                       'cat' => $cat,
+                                       'sel' => $SELECTED,
+                               );
+
+                               // Load row template and switch colors + count up
+                               $OUT .= LOAD_TEMPLATE("admin_list_cats_row", true, $content);
+                               $SW = 3 - $SW; $cnt++;
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+                       define('__CATS_ROWS', $OUT);
+
+                       // Load main template
+                       LOAD_TEMPLATE("admin_list_cats");
+               }
+                else
+               {
+                       // No categories selected! :-(
+                       LOAD_TEMPLATE("admin_list_cats_404");
+               }
+       }
+        else
+       {
+               // User not found
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_MEMBER_404_1.__UID.ADMIN_MEMBER_404_2);
+       }
+}
+ else
+{
+       // Output selection form with all confirmed user accounts listed
+       ADD_MEMBER_SELECTION_BOX();
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_country.php b/0.2.1/inc/modules/admin/what-list_country.php
new file mode 100644 (file)
index 0000000..4a54818
--- /dev/null
@@ -0,0 +1,231 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/30/2005 *
+ * ================                             Last change: 04/30/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_country.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Manage country codes                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Country codes verwalten                          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Add new code?
+if ((isset($_POST['add'])) && (!empty($_POST['code'])) && (!empty($_POST['descr'])))
+{
+       // Check if country code does already exist
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_countries WHERE code='%s' LIMIT 1",
+        array(strtoupper($_POST['code'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Save entry
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_countries (code, descr, is_active)
+ VALUES('%s', '%s', '%s')",
+ array(strtoupper(substr($_POST['code'], 0, 2)), $_POST['descr'], $_POST['is_active']), __FILE__, __LINE__);
+
+               // Country added
+               $MSG = ADMIN_COUNTRY_ADDED_1.strtoupper($_POST['descr']).ADMIN_COUNTRY_ADDED_2;
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Does already exist
+               $MSG = ADMIN_COUNTRY_ALREADY_1.strtoupper($_POST['code']).ADMIN_COUNTRY_ALREADY_2;
+       }
+
+       // Display message
+       LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
+       OUTPUT_HTML("<BR>");
+}
+// Change status?
+ elseif ((isset($_POST['change'])) && (!empty($_POST['id'])))
+{
+       // Change all status
+       ADMIN_CHANGE_ACTIVATION_STATUS($_POST['id'], "countries", "is_active");
+}
+// Edit / delete entries?
+ elseif (((isset($_POST['edit'])) || (isset($_POST['delete']))) && (!empty($_POST['id'])))
+{
+       if (count($_POST['id']) > 0)
+       {
+               if (isset($_POST['edit']))
+               {
+                       // Edit template
+                       $row    = "admin_list_country_edit_row";
+                       $post   = "modify";
+                       $class  = "admin_submit";
+                       $submit = ADMIN_COUNTRY_EDIT_NOW;
+                       $title  = ADMIN_COUNTRY_EDIT_TITLE;
+                       $reset  = "<INPUT type=\"reset\" class=\"admin_reset\" value=\"".UNDO_SELECTIONS."\">&nbsp;*\n";
+               }
+                else
+               {
+                       // Delete template
+                       $row    = "admin_list_country_del_row";
+                       $post   = "remove";
+                       $class  = "admin_delete";
+                       $submit = ADMIN_COUNTRY_DELETE_NOW;
+                       $title  = ADMIN_COUNTRY_DELETE_TITLE;
+                       $reset  = "";
+               }
+
+               // Edit all selected country codes
+               $OUT = ""; $SW = 2;
+               foreach ($_POST['id'] as $id=>$status)
+               {
+                       // Load data from DB
+                       $result = SQL_QUERY_ESC("SELECT code, descr FROM "._MYSQL_PREFIX."_countries WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Load data
+                               list($code, $descr) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               // Prepare data, load row template and switch colors
+                               $content = array(
+                                       'id'    => $id,
+                                       'code'  => $code,
+                                       'descr' => $descr,
+                                       'sw'    => $SW,
+                               );
+                               if ($post == "modify")
+                               {
+                                       // Generate default selection in edit-mode
+                                       $content['status'] = ADD_OPTION_LINES("/ARRAY/", array('Y', 'N'), array(YES, NO ), $status);
+                               }
+                                else
+                               {
+                                       // Only display status when in delete-mode
+                                       $content['status'] = TRANSLATE_YESNO($status);
+                               }
+                               $OUT .= LOAD_TEMPLATE($row, true, $content);
+                               $SW = 3 - $SW;
+                       }
+               }
+               define('__COUNTRY_ROWS'  , $OUT);
+               define('__COUNTRY_MODE'  , $post);
+               define('__COUNTRY_CLASS' , $class);
+               define('__COUNTRY_SUBMIT', $submit);
+               define('__COUNTRY_TITLE' , $title);
+               define('__COUNTRY_RESET' , $reset);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_list_country_form");
+       }
+}
+ else
+{
+       // Shall we modify / remove entries now?
+       $MSG = ""; $SQLs = array();
+       if ((isset($_POST['modify'])) && (!empty($_POST['id'])))
+       {
+               // Modify
+               foreach ($_POST['id'] as $id=>$sel)
+               {
+                       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_countries SET code='".$_POST['code'][$id]."', descr='".$_POST['descr'][$id]."', is_active='".$_POST['is_active'][$id]."' WHERE id='".$id."' LIMIT 1";
+               }
+
+               // Create message
+               $MSG = ADMIN_COUNTRIES_MODIFIED;
+       }
+        elseif ((isset($_POST['remove'])) && (!empty($_POST['id'])))
+       {
+               // Remove
+               $IDs = implode(", ", bigintval($_POST['id']));
+               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_countries WHERE id IN (".$IDs.") LIMIT ".count($_POST['id'])."";
+
+               // Create message
+               $MSG = ADMIN_COUNTRIES_REMOVED;
+       }
+
+       if ((!empty($MSG)) && (count($SQLs) > 0))
+       {
+               // Run SQL commands
+               foreach ($SQLs as $sql)
+               {
+                       $result = SQL_QUERY($sql, __FILE__, __LINE__);
+               }
+
+               // Display message
+               LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
+               OUTPUT_HTML("<BR>");
+       }
+
+       // Load currenty setup country codes to list
+       $result = SQL_QUERY("SELECT id, code, descr, is_active FROM "._MYSQL_PREFIX."_countries ORDER BY code", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List all countries
+               $OUT = ""; $SW = 2;
+               while(list($id, $code, $descr, $active) = SQL_FETCHROW($result))
+               {
+                       // Prepare array for the template
+                       $content = array(
+                               'id'     => $id,
+                               'code'   => $code,
+                               'name'   => $descr,
+                               'active' => TRANSLATE_YESNO($active),
+                               'sw'     => $SW,
+                               'status' => $active,
+                       );
+
+                       // Load row template and switch colors
+                       $OUT .= LOAD_TEMPLATE("admin_list_country_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        else
+       {
+               // No code setup so far (not possible by this software! 'DE' for 'Deutschland' is default
+               $OUT = LOAD_TEMPLATE("admin_list_country_no_row", true);
+       }
+
+       // Add list to constant for the template
+       define('__COUNTRY_ROWS', $OUT);
+
+       // Include add template
+       define('__ADD_COUNTRY_FORM', LOAD_TEMPLATE("admin_add_country", true));
+
+       // Load main template
+       LOAD_TEMPLATE("admin_list_country");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_doubler.php b/0.2.1/inc/modules/admin/what-list_doubler.php
new file mode 100644 (file)
index 0000000..fe7df7a
--- /dev/null
@@ -0,0 +1,139 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 02/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_doubler.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : List doubler entries                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verdoppler-Eintraege auflisten                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (empty($_GET['mode']))
+{
+       // Chosse the overview page as default
+       $_GET['mode'] = "overview";
+}
+ else
+{
+       // Set table title automatically
+       if (empty($_GET['select'])) $_GET['select'] = "all";
+       $eval = "define('__ADMIN_DOUBLER_LIST_".strtoupper($_GET['mode'])."', ADMIN_DOUBLER_LIST_".strtoupper($_GET['mode'])."_".strtoupper($_GET['select']).");";
+       eval($eval);
+}
+
+// Load data for the template
+switch ($_GET['mode'])
+{
+case "already":  // Already payed out points
+       break;
+
+case "overview": // General overview page
+       $SUM_ALREADY = 0; $SUM_WAITING = 0;
+       // Number of direct already payouts and referral
+       $result = SQL_QUERY("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_doubler WHERE completed='Y' AND is_ref='N'", __FILE__, __LINE__);
+       list($cnt) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       if ((empty($cnt)) || ($cnt == "0"))
+       {
+               // Nothing payed out so far
+               define('__DOUBLER_ALREADY_DIRECT_LINK', "0");
+       }
+        else
+       {
+               // Something was payed out
+               $SUM_ALREADY += $cnt;
+               define('__DOUBLER_ALREADY_DIRECT_LINK', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_doubler&amp;mode=already&amp;select=direct\">".$cnt."</A>");
+       }
+       $result = SQL_QUERY("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_doubler WHERE completed='Y' AND is_ref='Y'", __FILE__, __LINE__);
+       list($cnt) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       if ((empty($cnt)) || ($cnt == "0"))
+       {
+               // Nothing payed out so far
+               define('__DOUBLER_ALREADY_REF_LINK', "0");
+       }
+        else
+       {
+               // Something was payed out
+               $SUM_ALREADY += $cnt;
+               define('__DOUBLER_ALREADY_REF_LINK', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_doubler&amp;mode=already&amp;select=ref\">".$cnt."</A>");
+       }
+       define('__DOUBLER_ALREADY_ALL_LINK', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_doubler&amp;mode=already&amp;select=all\">".$SUM_ALREADY."</A>");
+
+       // And the same for waiting pouts (direct and referral)
+       $result = SQL_QUERY("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_doubler WHERE completed='N' AND is_ref='N'", __FILE__, __LINE__);
+       list($cnt) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       if ((empty($cnt)) || ($cnt == "0"))
+       {
+               // Nothing payed out so far
+               define('__DOUBLER_WAITING_DIRECT_LINK', "0");
+       }
+        else
+       {
+               // Something was payed out
+               $SUM_WAITING += $cnt;
+               define('__DOUBLER_WAITING_DIRECT_LINK', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_doubler&amp;mode=waiting&amp;select=direct\">".$cnt."</A>");
+       }
+       $result = SQL_QUERY("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_doubler WHERE completed='N' AND is_ref='Y'", __FILE__, __LINE__);
+       list($cnt) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       if ((empty($cnt)) || ($cnt == "0"))
+       {
+               // Nothing payed out so far
+               define('__DOUBLER_WAITING_REF_LINK', "0");
+       }
+        else
+       {
+               // Something was payed out
+               $SUM_WAITING += $cnt;
+               define('__DOUBLER_WAITING_REF_LINK', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_doubler&amp;mode=waiting&amp;select=ref\">".$cnt."</A>");
+       }
+       define('__DOUBLER_WAITING_ALL_LINK', "<A href=\"".URL."/modules.php?module=admin&amp;what=list_doubler&amp;mode=waiting&amp;select=all\">".$SUM_WAITING."</A>");
+
+       // All data is loaded here...
+       break;
+}
+
+// Load mode template
+LOAD_TEMPLATE("admin_list_doubler_".$_GET['mode']);
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_holiday.php b/0.2.1/inc/modules/admin/what-list_holiday.php
new file mode 100644 (file)
index 0000000..013e97c
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/24/2004 *
+ * ================                             Last change: 08/01/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_holiday.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : List all holiday requests                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Urlaubsschaltungen auflisten                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Start listing holiday requests
+$result = SQL_QUERY("SELECT h.id, h.userid, h.holiday_start, h.holiday_end, h.comments, d.status, d.last_online FROM "._MYSQL_PREFIX."_user_holidays AS h, "._MYSQL_PREFIX."_user_data AS d WHERE h.userid=d.userid ORDER BY h.userid", __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result) > 0)
+{
+       // List all holiday requests
+       $SW = 2; $OUT = "";
+       while (list($id, $uid, $start, $end, $comments, $status, $last) = SQL_FETCHROW($result))
+       {
+               // Add three dashes to comment when it is empty
+               if (empty($comments)) $comments = "---";
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'       => $SW,
+                       'id'       => $id,
+                       'uid'      => ADMIN_USER_PROFILE_LINK($uid),
+                       'start'    => MAKE_DATETIME($start, "3"),
+                       'end'      => MAKE_DATETIME($end, "3"),
+                       'comments' => wordwrap($comments, 15),
+                       'status'   => TRANSLATE_STATUS($status),
+                       'last'     => MAKE_DATETIME($last, "3"),
+               );
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_list_holiday_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__HOLIDAY_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_list_holiday");
+}
+ else
+{
+       // No holiday requests found
+       LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_ADMIN_NOTHING_FOUND);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_links.php b/0.2.1/inc/modules/admin/what-list_links.php
new file mode 100644 (file)
index 0000000..1cb8786
--- /dev/null
@@ -0,0 +1,167 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/28/2004 *
+ * ================                             Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_links.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : List unconfirmed mails of a member               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Unbestaetigte Mails eines Mitgliedes auflisten   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif (!EXT_IS_ACTIVE("mailid")) {
+       ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "mailid"));
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (empty($_GET['del'])) $_GET['del'] = "";
+
+if (!empty($_GET['u_id'])) {
+       // Check if the user already exists
+       $result = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+
+        // Is there an entry?
+       if (SQL_NUMROWS($result) == 1) {
+               // Loads surname, family's name and the email address
+               list($sname, $fname, $email) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Grab user's all unconfirmed mails
+               if (EXT_IS_ACTIVE("bonus")) {
+                       // Load bonus ID
+                       $result = SQL_QUERY_ESC("SELECT stats_id, bonus_id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE userid=%d ORDER BY id",
+                        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+               } else {
+                       // Load stats ID (2nd will be ignored later! But it is needed for the same fetchrow command)
+                       $result = SQL_QUERY_ESC("SELECT stats_id, stats_id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE userid=%d ORDER BY id",
+                        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+               }
+
+               // Get number of rows from the query
+               $nums = SQL_NUMROWS($result);
+
+               if ($nums > 0) {
+                       // Some unconfirmed mails left
+                       if ($_GET['del'] == "all") {
+                               // Delete all unconfirmed mails by this user
+                               $result_del = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE userid=%d LIMIT %s",
+                                array(bigintval($_GET['u_id']), $nums), __FILE__, __LINE__);
+
+                               // Prepare mail and send it away
+                               $msg = LOAD_EMAIL_TEMPLATE("admin-del_links", $nums, bigintval($_GET['u_id']));
+                               SEND_EMAIL($email, ADMIN_DEL_LINK_SUBJ, $msg);
+
+                               // Display message
+                               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_LINKS_DELETED);
+                       } else {
+                               // List all unconfirmed mails
+                               $SW = 2; $OUT = "";
+                               while (list($id, $id2, $type) = SQL_FETCHROW($result)) {
+                                       // Load data from stats table...
+                                       $cat = "";
+                                       switch ($type)
+                                       {
+                                       case "NORMAL":
+                                               $result_data = SQL_QUERY_ESC("SELECT subject, timestamp_ordered, cat_id FROM "._MYSQL_PREFIX."_user_stats WHERE id=%d LIMIT 1",
+                                                array(bigintval($id)), __FILE__, __LINE__);
+                                               $TYPE = "mailid"; $DATA = $id; $PROBLEM = NORMAL_MAIL_PROBLEM;
+                                               $LINK = "<A href=\"".URL."/mailid.php?uid=".$_GET['u_id']."&amp;mailid=".$id."\" target=\"_blank\">".$id."</A>";
+                                               break;
+
+                                       case "BONUS":
+                                               $result_data = SQL_QUERY_ESC("SELECT subject, timestamp, cat_id FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+                                                array(bigintval($id2)), __FILE__, __LINE__);
+                                               $TYPE = "bonusid"; $DATA = $id2; $PROBLEM = BONUS_MAIL_PROBLEM;
+                                               $LINK = "<A href=\"".URL."/mailid.php?uid=".$_GET['u_id']."&amp;bonusid=".$id2."\" target=\"_blank\">".$id2."</A>";
+                                               break;
+                                       }
+
+                                       if (SQL_NUMROWS($result_data) == 1) {
+                                               // Mail was found!
+                                               list($subject, $timestamp, $cat) = SQL_FETCHROW($result_data);
+                                               SQL_FREERESULT($result_data);
+                                               if (empty($subject)) $subject = DEFAULT_SUBJECT_LINE;
+
+                                               // Prepare data for the row template
+                                               $content = array(
+                                                       'sw'    => $SW,
+                                                       'link'  => $LINK,
+                                                       'subj'  => $subject,
+                                                       'stamp' => MAKE_DATETIME($timestamp, "0"),
+                                                       'cat'   => GET_CATEGORY($cat),
+                                               );
+
+                                               // Load row template
+                                               $OUT .= LOAD_TEMPLATE("admin_list_links_row", true, $content);
+                                       } else {
+                                               // Load template for error
+                                               $OUT .= LOAD_TEMPLATE("admin_list_links_problem",
+                                                       array(
+                                                               'sw'            => $SW,
+                                                               'problem'       => $PROBLEM,
+                                                               'data'          => $DATA
+                                                       )
+                                               );
+                                       }
+                                       $SW = 3 - $SW;
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // Remember list in constant for the template
+                               define('__SNAME_VALUE', $sname);
+                               define('__FNAME_VALUE', $fname);
+                               define('__EMAIL_VALUE', "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".$email."</A>");
+                               define('__EMAIL_LIST' , $OUT);
+                               define('__NUMS_VALUE' , $nums);
+                               define('__UID_VALUE'  , $_GET['u_id']);
+
+                               // Load final template
+                               LOAD_TEMPLATE("admin_list_links");
+                       }
+               } else {
+                       // No mails left to confirm
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_MEMBER_LINKS_1.$_GET['u_id'].ADMIN_MEMBER_LINKS_2);
+               }
+       } else {
+               // User not found
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2);
+       }
+} else {
+       // Output selection form with all confirmed user accounts listed
+       ADD_MEMBER_SELECTION_BOX();
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_newsletter.php b/0.2.1/inc/modules/admin/what-list_newsletter.php
new file mode 100644 (file)
index 0000000..58c998b
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/04/2005 *
+ * ===============                              Last change: 03/05/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_newsletter.php                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Handle HTML or text newsletter                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verwalten von HTML- oder Text-Newslettern        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if ((!empty($_POST['uid'])) && (!empty($_POST['id'])))
+{
+       // Update database...
+       // First user's account
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET nl_until='".time()."+nl_timespan', nl_receive='N', nl_timespan='0' WHERE userid=%d LIMIT 1",
+        array(bigintval($_POST['uid'])), __FILE__, __LINE__);
+
+       // Next the task system...
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",
+        array(bigintval($_POST['id'])), __FILE__, __LINE__);
+
+       // Send mail to user
+       $msg = LOAD_EMAIL_TEMPLATE("member_newsletter_done", true, bigintval($_POST['uid']));
+       SEND_EMAIL(bigintval($_POST['uid']), NL_MEMBER_DONE_SUBJECT, $msg);
+
+       // Output message to admin
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NL_MEMBER_DONE);
+}
+ else
+{
+       // Currently under construction!
+       LOAD_TEMPLATE("admin_settings_saved", false, UNDER_CONSTRUCTION);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_norefs.php b/0.2.1/inc/modules/admin/what-list_norefs.php
new file mode 100644 (file)
index 0000000..313ccfc
--- /dev/null
@@ -0,0 +1,165 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/19/2006 *
+ * ================                             Last change: 01/19/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_norefs.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Show all members w/o a referral                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Mitgliederaccounts ohne Werber auflisten    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif ((!EXT_IS_ACTIVE("user")) || (GET_EXT_VERSION("user") == "")) {
+       // Not active!
+       ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "user"));
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+
+$MORE = ", userid"; $colspan = "4"; //                 27
+if (EXT_IS_ACTIVE("nickname")) { $MORE = ", nickname"; }
+
+if (empty($_GET['letter'])) { $_GET['letter'] = _ALL2;    }
+if (empty($_GET['sortby'])) { $_GET['sortby'] = "userid"; }
+if (empty($_GET['page']))   { $_GET['page']   = "1";      }
+
+// Set base URL
+$BASE = "<A href=\"".URL."/modules.php?module=admin";
+
+$WHERE = " WHERE refid='0'";
+if (($_GET['letter'] != _ALL2) && ($_GET['letter'] != _OTHERS) && (!empty($_GET['letter'])))
+{
+       // List only persons w
+       $WHERE = " WHERE refid='0' AND family LIKE '".$_GET['letter']."%'";
+}
+if ($_GET['sortby'] == "family_name") $_GET['sortby'] = "family";
+$SQL = "SELECT userid, sex, surname, family, email, REMOTE_ADDR, refid, status".$MORE." FROM "._MYSQL_PREFIX."_user_data".$WHERE." ORDER BY ".$_GET['sortby'];
+$result_master = SQL_QUERY($SQL, __FILE__, __LINE__);
+
+// Calculate page count (0.5 fixes a bug with page count)
+$PAGES = round(SQL_NUMROWS($result_master) / $CONFIG['user_limit'] + 0.5);
+
+if (empty($_GET['page']))   $_GET['page']   = "1";
+if (empty($_GET['offset'])) $_GET['offset'] = $CONFIG['user_limit'];
+
+// Add limitation to SQL string and run him again
+$SQL .= " LIMIT ".($_GET['offset'] * $_GET['page'] - $_GET['offset']).", ".$_GET['offset'];
+$result = SQL_QUERY($SQL, __FILE__, __LINE__);
+
+$result_user = SQL_QUERY("SELECT emails_sent FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED'", __FILE__, __LINE__);
+$user_count = SQL_NUMROWS($result_user);
+SQL_FREERESULT($result_user);
+
+if (SQL_NUMROWS($result_master) > 0)
+{
+       // Free memory
+       SQL_FREERESULT($result_master);
+
+       // We have some (new?) registrations!
+       define('__COLSPAN1'  , $colspan);
+       define('__COLSPAN2'  , ($colspan + 2));
+       define('__USER_CNT'  , $user_count);
+       define('__ALPHA_SORT', alpha($_GET['sortby'], $colspan, true));
+       define('__SORT_LINKS', SortLinks($_GET['letter'], $_GET['sortby'], $colspan, true));
+       if ($PAGES > 1)
+       {
+               define('__PAGE_NAV', ADD_PAGENAV($PAGES, $CONFIG['user_limit'], true, $colspan, true));
+       }
+        else
+       {
+               // No page navigation is required
+               define('__PAGE_NAV', "");
+       }
+
+       // Column with nickname when nickname extension is present
+       if (EXT_IS_ACTIVE("nickname"))
+       {
+               // Nickname extension found
+               define('__NICKNAME_TH', "  <TD class=\"admin_title bottom2\" align=\"center\">".NICKNAME."</TD>");
+       }
+        else
+       {
+               // Not found
+               define('__NICKNAME_TH', "");
+       }
+
+       $SW = 2; $OUT = "";
+       while (list($uid, $sex, $sname, $fname, $email, $IP, $ref, $status, $nick) = SQL_FETCHROW($result))
+       {
+               if ($ref > 0) $ref = ADMIN_USER_PROFILE_LINK($ref);
+               $LINKS = TRANSLATE_COMMA(GET_TOTAL_DATA($uid, "user_links", "id", "userid", true));
+               if ($LINKS > 0) $LINKS = $BASE."&amp;what=list_links&amp;u_id=".$uid."\">".$LINKS."</A>";
+
+               // Add nickname
+               if ((empty($nick)) || ($uid == $nick)) $nick = "---";
+
+               // Transfer data to array
+               $content = array(
+                       'sw'     => $SW,
+                       'uid'    => ADMIN_USER_PROFILE_LINK($uid),
+                       'sex'    => TRANSLATE_SEX($sex),
+                       'sname'  => $sname,
+                       'fname'  => $fname,
+                       'email'  => "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".stripslashes($email)."</A>",
+                       'addr'   => $IP,
+                       'ref'    => $ref,
+                       'status' => TRANSLATE_STATUS($status),
+                       'links'  => $LINKS,
+                       'nick'   => $nick
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("admin_list_user_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       define('__USER_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_list_user");
+
+       // Free some memory
+       SQL_FREERESULT($result_master);
+}
+ else
+{
+       // No one as registered so far! :-(
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_ACCOUNT_NOREFS_404);
+}
+
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_payouts.php b/0.2.1/inc/modules/admin/what-list_payouts.php
new file mode 100644 (file)
index 0000000..3a646ac
--- /dev/null
@@ -0,0 +1,327 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/08/2004 *
+ * ================                             Last change: 08/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_payouts.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : List member's payout requests                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auflistung der Auszahlungsanfragen               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (!empty($_GET['pid']))
+{
+       // First let's get the member's ID
+       $result = SQL_QUERY_ESC("SELECT userid, target_account, payout_total, payout_timestamp, password FROM "._MYSQL_PREFIX."_user_payouts WHERE id=%d LIMIT 1",
+        array($_GET['pid']), __FILE__, __LINE__);
+       list($uid, $tuid, $points, $tstamp, $tpass) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Obtain some data
+       if (empty($_GET['task']) && (!empty($uid)) && ($uid > 0))
+       {
+               // Get task ID from database
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE userid=%d AND task_type='PAYOUT_REQUEST' AND task_created='".$tstamp."' LIMIT 1",
+                array(bigintval($uid)), __FILE__, __LINE__);
+               list($task) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               if (empty($task)) $task = "0";
+
+       }
+        elseif ((empty($uid)) || ($uid == "0"))
+       {
+               // Cannot obtain member ID!
+               LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_FAILED_OBTAIN_USERID);
+       }
+        else
+       {
+               // Get task ID from URL
+               $task = $_GET['task'];
+       }
+       if ((!empty($task)) && (!empty($uid)) && ($uid > 0))
+       {
+               // Load user's data
+               $result = SQL_QUERY_ESC("SELECT email, sex, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array(bigintval($uid)), __FILE__, __LINE__);
+               list($email, $sex, $surname, $family) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Konstante bauen
+               define('PAYOUT_USERDATA_VALUE', "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".TRANSLATE_SEX($sex)." ".$surname." ".$family."</A>");
+
+               if (($_GET['do'] == "accept") && (!empty($email)))
+               {
+                       // Ok, now we can output the form or execute accepting
+                       if (isset($_POST['ok']))
+                       {
+                               // Obtain payout type and other data
+                               $result = SQL_QUERY_ESC("SELECT payout_id FROM "._MYSQL_PREFIX."_user_payouts WHERE id=%d LIMIT 1",
+                                array(bigintval($_GET['pid'])), __FILE__, __LINE__);
+                               list($ptype) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               if (!empty($ptype))
+                               {
+                                       // Obtain data from payout type
+                                       $result = SQL_QUERY_ESC("SELECT from_account, from_pass, engine_url, engine_ret_ok, engine_ret_failed, pass_enc, allow_url FROM "._MYSQL_PREFIX."_payout_types WHERE id=%d LIMIT 1",
+                                        array(bigintval($ptype)), __FILE__, __LINE__);
+                                       list($fuid, $fpass, $eurl, $eok, $failed, $eenc, $allow) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+
+                                       if (!empty($eurl))
+                                       {
+                                               // Ok, run URL...
+                                               $eurl = COMPILE_CODE($eurl);
+                                               switch ($eenc)
+                                               {
+                                               case "md5":
+                                                       $fpass = md5($fpass);
+                                                       $tpass = md5($tpass);
+                                                       break;
+
+                                               case "base64":
+                                                       $fpass = base64_encode($fpass);
+                                                       $tpass = base64_encode($tpass);
+                                                       break;
+                                               }
+
+                                               // Transfer variables...
+                                               $eval = "\$URL = \"".$eurl."\";";
+                                               $reason = urlencode(base64_encode(PAYOUT_REASON_PAYOUT));
+
+                                               // Run code...
+                                               eval($eval);
+
+                                               // Execute transfer
+                                               $ret = @file($URL);
+                                       }
+                                        else
+                                       {
+                                               // No URL to run
+                                               $ret[0] = $eok;
+                                       }
+                                       if ($ret[0] == $eok)
+                                       {
+                                               // Clear task
+                                               if ($task > 0)
+                                               {
+                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",
+                                                        array(bigintval($task)),__FILE__, __LINE__);
+                                               }
+
+                                               // Clear payout request
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_payouts SET status='ACCEPTED' WHERE id=%d LIMIT 1",
+                                                array(bigintval($_GET['pid'])), __FILE__, __LINE__);
+
+                                               // Send out mail
+                                               $msg = LOAD_EMAIL_TEMPLATE("member_payout_accepted", $_POST['text'], $uid);
+
+                                               // Output message
+                                               if ($allow == "Y")
+                                               {
+                                                       // Banner / Textlink request
+                                                       LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_BANNER_ACCEPTED_NOTIFIED);
+                                               }
+                                                else
+                                               {
+                                                       // Normal request
+                                                       LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_ACCEPTED_NOTIFIED);
+                                               }
+
+                                               // Finally send mail
+                                               SEND_EMAIL($email, PAYOUT_ACCEPTED_SUBJECT, $msg);
+                                       }
+                                        else
+                                       {
+                                               // Something goes wrong... :-(
+                                               $content = implode("<BR>", $ret);
+                                               LOAD_TEMPLATE("admin_payout_failed_transfer", false, $content);
+                                       }
+                               }
+                                else
+                               {
+                                       // Cannot load payout id
+                                       OUTPUT_HTML ("<STRONG class=\"admin_failed\">".PAYOUT_FAILED_OBTAIN_PAYOUT_ID."</STRONG>");
+                               }
+                       }
+                        else
+                       {
+                               // Load template
+                               LOAD_TEMPLATE("admin_payout_accept_form", false, $task);
+                       }
+               }
+                elseif (($_GET['do'] == "reject") && (!empty($email)))
+               {
+                       // Ok, now we can output the form or execute rejecting
+                       if (isset($_POST['ok']))
+                       {
+                               if ($task > 0)
+                               {
+                                       // Clear task
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='SOLVED' WHERE id=%d LIMIT 1",
+                                        array(bigintval($task)), __FILE__, __LINE__);
+                               }
+
+                               // Clear payout request
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_payouts SET status='REJECTED' WHERE id=%d LIMIT 1",
+                                array(bigintval($_GET['pid'])), __FILE__, __LINE__);
+
+                               // Send out mail
+                               $msg = LOAD_EMAIL_TEMPLATE("member_payout_rejected", $_POST['text'], $uid);
+
+                               // Output message
+                               LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_REJECTED_NOTIFIED);
+
+                               // Finally send mail
+                               SEND_EMAIL($email, PAYOUT_REJECTED_SUBJECT, $msg);
+                       }
+                        else
+                       {
+                               // Load template
+                               LOAD_TEMPLATE("admin_payout_reject_form", false, $task);
+                       }
+               }
+                else
+               {
+                       // Cannot load user data
+                       LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_FAILED_OBTAIN_USERDATA);
+               }
+       }
+        elseif((empty($task)) || ($task == "0"))
+       {
+               // Failed loading task ID
+               LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_FAILED_OBTAIN_TASK_ID);
+       }
+}
+ else
+{
+       if (empty($_GET['do'])) $_GET['do'] = "";
+       if ($_GET['do'] == "delete")
+       {
+               // Delete all requests
+               $result = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_payouts", __FILE__, __LINE__);
+       }
+
+       // Search for payouts
+       $result = SQL_QUERY("SELECT p.id, p.userid AS uid, p.payout_total, p.target_account, p.target_bank, t.type, p.payout_timestamp, p.status, t.allow_url AS allow, p.target_url AS url, p.link_text AS alt, p.banner_url AS banner
+FROM "._MYSQL_PREFIX."_user_payouts AS p, "._MYSQL_PREFIX."_payout_types AS t
+WHERE p.payout_id=t.id
+ORDER BY p.payout_timestamp DESC", __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List found payouts
+               $OUT = ""; $SW = 2;
+               while (list($pid, $uid, $total, $account, $bank, $type, $tstamp, $status, $allow, $url, $alt, $banner) = SQL_FETCHROW($result))
+               {
+                       if ($status == "NEW")
+                       {
+                               // Generate links for direct accepting and rejecting
+                               $status = "<A href=\"".URL."/modules.php?module=admin&amp;what=list_payouts&amp;do=accept&amp;pid=".$pid."\">".PAYOUT_ACCEPT_PAYOUT."</A>&nbsp;|&nbsp;<A href=\"".URL."/modules.php?module=admin&amp;what=list_payouts&amp;do=reject&amp;pid=".$pid."\">".PAYOUT_REJECT_PAYOUT."</A>";
+                       }
+                        else
+                       {
+                               // Translate status
+                               $evl = "\$status = PAYOUT_STATUS_".strtoupper($status).";";
+                               eval($evl);
+                               $status = "<FONT class=\"admin_failed\">".$status."</FONT>";
+                       }
+
+                       // Nothing entered must be secured in member/what-payputs.php !
+                       if ($allow == "Y")
+                       {
+                               // Banner/Textlink views/clicks request
+                               if (!empty($banner))
+                               {
+                                       // Prepare array for the banner
+                                       $content = array(
+                                               'banner' => $banner,
+                                               'alt'    => $alt,
+                                               'url'    => $url,
+                                       );
+
+                                       // Load template for the banner
+                                       $account = LOAD_TEMPLATE("admin_list_payouts_banner", true, $content);
+                               }
+                                else
+                               {
+                                       // Textlink
+                                       $content = array(
+                                               'txt_link' => $alt,
+                                               'txt_url'  => $url,
+                                       );
+                                       $account = LOAD_TEMPLATE("admin_list_payouts_txt", true, $content);
+                               }
+
+                               // Admins can addionally test the URL for framekillers
+                               $bank = "<A href=\"".FRAMETESTER($url)."\" target=\"_blank\">".CLICK_HERE."</A>";
+                       }
+                        else
+                       {
+                               // e-currency payout request
+                               if (empty($account)) $account = "---";
+                               if (empty($bank))    $bank    = "---";
+                       }
+
+                       // Remember data in array for the template
+                       $content = array(
+                               'sw'      => $SW,
+                               'ulink'   => ADMIN_USER_PROFILE_LINK($uid),
+                               'ptype'   => TRANSLATE_COMMA($total)." ".COMPILE_CODE($type),
+                               'account' => $account,
+                               'bank'    => $bank,
+                               'tstamp'  => MAKE_DATETIME($tstamp, "2"),
+                               'status'  => $status,
+                       );
+
+                       // Add row and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_list_payouts_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__PAYOUT_ROWS', $OUT);
+
+               // Load final template
+               LOAD_TEMPLATE("admin_list_payouts");
+       }
+        else
+       {
+               // No payout requests are sent so far
+               LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_ADMIN_NO_REQUESTS_FOUND);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_rallyes.php b/0.2.1/inc/modules/admin/what-list_rallyes.php
new file mode 100644 (file)
index 0000000..ffe00d0
--- /dev/null
@@ -0,0 +1,400 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/29/2004 *
+ * ================                             Last change: 02/11/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_rallyes.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : List existing rallyes                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bestehende Rallyes auflisten                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (empty($_GET['sub'])) $_GET['sub'] = "";
+$MSG = "";
+
+// Quick actions on a rallye
+if (isset($_GET['rallye']))
+{
+       // Activate / deactivate
+       $SQL = "";
+       if (isset($_GET['activate']))
+       {
+               switch ($_GET['activate'])
+               {
+               case "1": // Activate
+                       $SQL = "UPDATE "._MYSQL_PREFIX."_rallye_data SET is_active='Y' WHERE id=%d AND is_active='N' LIMIT 1";
+                       break;
+
+               case "0": // Deactivate
+                       $SQL = "UPDATE "._MYSQL_PREFIX."_rallye_data SET is_active='N' WHERE id=%d AND is_active='Y' LIMIT 1";
+                       break;
+               }
+       }
+
+       // Automatic notification
+       if (isset($_GET['notify']))
+       {
+               switch ($_GET['notify'])
+               {
+               case "1": // Activate
+                       $SQL = "UPDATE "._MYSQL_PREFIX."_rallye_data SET send_notify='Y' WHERE id=%d AND send_notify='N' LIMIT 1";
+                       break;
+
+               case "0": // Deactivate
+                       $SQL = "UPDATE "._MYSQL_PREFIX."_rallye_data SET send_notify='N' WHERE id=%d AND send_notify='Y' LIMIT 1";
+                       break;
+               }
+       }
+
+       // Automatic adding of new members
+       if (isset($_GET['auto']))
+       {
+               switch ($_GET['auto'])
+               {
+               case "1": // Activate
+                       $SQL = "UPDATE "._MYSQL_PREFIX."_rallye_data SET auto_add_new_user='Y' WHERE id=%d AND auto_add_new_user='N' LIMIT 1";
+                       break;
+
+               case "0": // Deactivate
+                       $SQL = "UPDATE "._MYSQL_PREFIX."_rallye_data SET auto_add_new_user='N' WHERE id=%d AND auto_add_new_user='Y' LIMIT 1";
+                       break;
+               }
+       }
+
+       // Run SQL command
+       if (!empty($SQL))
+       {
+               $result = SQL_QUERY_ESC($SQL, array(bigintval($_GET['rallye'])), __FILE__, __LINE__);
+       }
+}
+ elseif (isset($_POST['remove']))
+{
+       // Delete rallyes
+       $SEL = SELECTION_COUNT($_POST['sel']);
+       if ($SEL > 0)
+       {
+               // Delete selected rallyes and all it's data
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       // Remove selected rallye entirely...
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_data WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%d",
+                        array(bigintval($id)), __FILE__, __LINE__);
+               }
+
+               // Output message
+               $MSG = RALLYE_DELETED;
+       }
+        else
+       {
+               // No rallye selected to delete!
+               $MSG = RALLYE_DELETE_NOTHING_SELECTED;
+       }
+}
+ elseif (isset($_POST['change']))
+{
+       // Change rallye
+       $SEL = SELECTION_COUNT($_POST['title']);
+       if ($SEL > 0)
+       {
+               // Change selected rallyes and all it's data
+               foreach ($_POST['title'] as $id=>$title)
+               {
+                       // Secure ID number
+                       $id = bigintval($id);
+
+                       // Generate timestamps
+                       $START = mktime($_POST['start_hour'][$id], $_POST['start_min'][$id], $_POST['start_sec'][$id], $_POST['start_month'][$id], $_POST['start_day'][$id], $_POST['start_year'][$id]);
+                       $END   = mktime($_POST['end_hour'][$id]  , $_POST['end_min'][$id]  , $_POST['end_sec'][$id]  , $_POST['end_month'][$id]  , $_POST['end_day'][$id]  , $_POST['end_year'][$id]  );
+
+                       // Update entry
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET
+title='%s',
+descr='%s',
+template='%s',
+start_time='%s',
+end_time='%s',
+min_users='%s',
+min_prices='%s'
+WHERE id='".$id."' LIMIT 1",
+ array($title, $_POST['descr'][$id], $_POST['templ'][$id], bigintval($START), bigintval($END), bigintval($_POST['min_users'][$id]), bigintval($_POST['min_prices'][$id]), $id),
+ __FILE__, __LINE__);
+               }
+
+               // Output message
+               $MSG = RALLYE_CHANGED;
+       }
+}
+
+if (isset($_POST['edit']))
+{
+       // Check for selections
+       $SEL = SELECTION_COUNT($_POST['sel']);
+       if ($SEL > 0)
+       {
+               // Make all selected and deactivated rallyes editable
+               $SW = 2; $OUT = "";
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       // Load rallye basic data
+                       $result = SQL_QUERY_ESC("SELECT title, descr, template, start_time, end_time, min_users, min_prices FROM "._MYSQL_PREFIX."_rallye_data WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       list($title, $descr, $templ, $start, $end, $min_users, $min_prices) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Starting day
+                       $content['s_sec']   = ADD_SELECTION("sec"  , date("s", $start), "start", $id);
+                       $content['s_min']   = ADD_SELECTION("min"  , date("i", $start), "start", $id);
+                       $content['s_hour']  = ADD_SELECTION("hour" , date("G", $start), "start", $id);
+                       $content['s_day']   = ADD_SELECTION("day"  , date("d", $start), "start", $id);
+                       $content['s_month'] = ADD_SELECTION("month", date("m", $start), "start", $id);
+                       $content['s_year']  = ADD_SELECTION("year" , date("Y", $start), "start", $id);
+
+                       // Ending day
+                       $content['e_sec']   = ADD_SELECTION("sec"  , date("s", $end)  , "end"  , $id);
+                       $content['e_min']   = ADD_SELECTION("min"  , date("i", $end)  , "end"  , $id);
+                       $content['e_hour']  = ADD_SELECTION("hour" , date("G", $end)  , "end"  , $id);
+                       $content['e_day']   = ADD_SELECTION("day"  , date("d", $end)  , "end"  , $id);
+                       $content['e_month'] = ADD_SELECTION("month", date("m", $end)  , "end"  , $id);
+                       $content['e_year']  = ADD_SELECTION("year" , date("Y", $end)  , "end"  , $id);
+
+                       // Remember over values
+                       $content['templ']      = RALLYE_TEMPLATE_SELECTION("templ[".$id."]", $templ);
+                       $content['sw']         = $SW;
+                       $content['id']         = $id;
+                       $content['title']      = $title;
+                       $content['descr']      = $descr;
+                       $content['min_users']  = $min_users;
+                       $content['min_prices'] = $min_prices;
+
+                       // Output row
+                       $OUT .= LOAD_TEMPLATE("admin_edit_rallyes_row", true, $content);
+
+                       // Color switching
+                       $SW = 3 - $SW;
+               }
+               // Remember rows in constant
+               define('__RALLYE_ROWS', $OUT);
+
+               // Load final template
+               LOAD_TEMPLATE("admin_edit_rallyes");
+       }
+        else
+       {
+               // Nothing selected to edit
+               LOAD_TEMPLATE("admin_settings_saved", false, LOAD_TEMPLATE("admin_list_rallye_noselect", true));
+       }
+}
+ elseif (($_GET['sub'] == "users") && ($_GET['rallye'] > 0))
+{
+       // List users and their refs before start and current
+       $result = SQL_QUERY_ESC("SELECT userid, refs, curr_points FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%d ORDER BY userid",
+        array(bigintval($_GET['rallye'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               $SW = 2; $OUT = "";
+               define('__RALLYE_VALUE', $_GET['rallye']);
+               while (list($uid, $old, $opoints) = SQL_FETCHROW($result))
+               {
+                       // Check for referral count
+                       $cnt = RALLYE_GET_REFCOUNT($uid, $old);
+
+                       // Output row
+                       $Bl = ""; $Br = "";
+                       if (($opoints > 0) && ($cnt > 0)) { $Bl = "<STRONG>"; $Br = "</STRONG>"; }
+                       if (($old > 0) || ($cnt > 0))
+                       {
+                               // Insert link to referral list
+                               //* DEBUG: */ echo "-".$uid."/".$cnt."/".$old."-<BR>";
+                               $cnt = ADMIN_USER_PROFILE_LINK($uid, $cnt, "list_refs");
+                               $old = ADMIN_USER_PROFILE_LINK($uid, $old, "list_refs");
+                       }
+                       $content = array(
+                               'sw'      => $SW ,
+                               'uid'     => $uid,
+                               'bold_l'  => $Bl ,
+                               'bold_r'  => $Br ,
+                               'old'     => $old,
+                               'cnt'     => $cnt,
+                               'opoints' => TRANSLATE_COMMA($opoints),
+                       );
+                       $OUT .= LOAD_TEMPLATE("admin_list_rallye_usr_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__RALLYE_USER_ROWS', $OUT);
+
+               // Load template
+               LOAD_TEMPLATE("admin_list_rallye_usr");
+       }
+        else
+       {
+               // No entries found?
+               LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_ADMIN_USERS_404);
+       }
+}
+ else
+{
+       // Start listing rallyes
+       $result = SQL_QUERY("SELECT id, admin_id, title, descr, template, start_time, end_time, auto_add_new_user, is_active, send_notify, notified, min_users, min_prices
+FROM "._MYSQL_PREFIX."_rallye_data
+ORDER BY start_time DESC",
+ __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // List found rallyes
+               $SW = 2; $OUT = "";
+               while (list($id, $aid, $title, $descr, $templ, $start, $end, $auto_add, $active, $notify, $notified, $min_users, $min_prices) = SQL_FETCHROW($result))
+               {
+                       // Load admin login
+                       $alogin = GET_ADMIN_LOGIN($aid);
+
+                       // Count assigned prices
+                       $result_prices = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%d",
+                        array(bigintval($id)), __FILE__, __LINE__);
+
+                       // Count joined userids
+                       $result_user = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%d",
+                        array($id), __FILE__, __LINE__);
+                       $joined = SQL_NUMROWS($result_user);
+
+                       // Did some users joined this rallye?
+                       if ($joined > 0)
+                       {
+                               // List joined users
+                               $joined = "<A href=\"".URL."/modules.php?module=admin&amp;what=list_rallyes&amp;sub=users&amp;rallye=".$id."\" title=\"".RALLYE_LIST_USERS."\">".$joined."</A>";
+                       }
+
+                       // Alter some variables
+                       if (empty($alogin)) $alogin = "???";
+                       if (empty($templ))  $templ  = "---";
+                       if (empty($descr))  $descr  = "---";
+
+                       // Transfer data into array for the template
+                       $content = array(
+                               'select'     => "<INPUT type=\"checkbox\" name=\"sel[".$id."]\" class=\"admin_normal\" value=\"1\">",
+                               'aid'        => $aid,
+                               'email_link' => CREATE_EMAIL_LINK($aid),
+                               'alogin'     => $alogin,
+                               'id'         => $id,
+                               'sw'         => $SW,
+                               'title'      => $title,
+                               'template'   => $templ,
+                               'joined'     => $joined,
+                               'start_date' => MAKE_DATETIME($start, "2"),
+                               'end_date'   => MAKE_DATETIME($end  , "2"),
+                               'active_lnk' => TRANSLATE_YESNO($active),
+                               'notify_lnk' => TRANSLATE_YESNO($notify),
+                               'auto_lnk'   => TRANSLATE_YESNO($auto_add),
+                               'notified'   => TRANSLATE_YESNO($notified),
+                               'prices_cnt' => SQL_NUMROWS($result_prices),
+                               'descr'      => COMPILE_CODE($descr),
+                               'min_users'  => $min_users,
+                               'min_prices' => $min_prices,
+                       );
+
+                       // Free memory
+                       SQL_FREERESULT($result_prices);
+                       SQL_FREERESULT($result_user);
+
+                       // Is the rallye active or not?
+                       switch ($active)
+                       {
+                       case "Y":
+                               // Rallye is active so do not edit it!
+                               $content['select'] = "<STRONG class=\"big\">".$id."</STRONG>";
+                               $content['active_title'] = RALLYE_DEACTIVATE_NOW;
+                               $content['active'] = "0";
+                               break;
+
+                       case "N":
+                               $content['active_title'] = RALLYE_ACTIVATE_NOW;
+                               $content['active'] = "1";
+                               break;
+                       }
+
+                       // Notification to members?
+                       switch ($notify)
+                       {
+                       case "Y":
+                               $content['notify_title'] = RALLYE_STOP_NOTIFY_NOW;
+                               $content['notify'] = "0";
+                               break;
+
+                       case "N":
+                               $content['notify_title'] = RALLYE_START_NOTIFY_NOW;
+                               $content['notify'] = "1";
+                               break;
+                       }
+
+                       // Auto-add of new joined members?
+                       switch ($auto_add)
+                       {
+                       case "Y":
+                               $content['auto_title'] = RALLYE_STOP_AUTO_ADD_NOW;
+                               $content['auto'] = "0";
+                               break;
+
+                       case "N":
+                               $content['auto_title'] = RALLYE_START_AUTO_ADD_NOW;
+                               $content['auto'] = "1";
+                               break;
+                       }
+
+                       // Output row
+                       $OUT .= LOAD_TEMPLATE("admin_list_rallyes_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__RALLYE_ROWS', $OUT);
+
+               // Load template
+               LOAD_TEMPLATE("admin_list_rallyes");
+       }
+        else
+       {
+               // No rallyes setup so far
+               LOAD_TEMPLATE("admin_settings_saved", false, RALLYE_NO_RALLYES_SETUP);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_refs.php b/0.2.1/inc/modules/admin/what-list_refs.php
new file mode 100644 (file)
index 0000000..cc8c449
--- /dev/null
@@ -0,0 +1,141 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/28/2004 *
+ * ================                             Last change: 06/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_refs.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Show all referrals made by a member              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle generierten Refs eines Mitgliedes anzeigen  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ *    Mod created by : Lars Moehlenbruch ( http://www.surfo.net )       *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ *                 Highly modified by Roland Haeder                     *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+        require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (!empty($_GET['u_id']))
+{
+       // Check if the user already exists
+       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Loads surname, family's name and the email address
+               $result     = SQL_QUERY_ESC("SELECT COUNT(*) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%d",
+                array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+               $result_lck = SQL_QUERY_ESC("SELECT COUNT(*) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%d AND status != 'CONFIRMED' ORDER BY userid",
+                array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+               $menge      = SQL_RESULT($result    , 0, 0);
+               $menge_lck  = SQL_RESULT($result_lck, 0, 0);
+
+               // Free memory
+               SQL_FREERESULT($result);
+               SQL_FREERESULT($result_lck);
+
+               $result = SQL_QUERY_ESC("SELECT userid, sex, surname, family, email, status, joined FROM "._MYSQL_PREFIX."_user_data WHERE refid=%d ORDER BY userid",
+                array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+
+               OUTPUT_HTML (ADMIN_TOTAL_REFS_1."".ADMIN_USER_PROFILE_LINK($_GET['u_id'])."".ADMIN_TOTAL_REFS_2.$menge.ADMIN_TOTAL_REFS_3.$menge_lck.ADMIN_TOTAL_REFS_4."<BR><BR>");
+               if ($result)
+               {
+                       $rows = SQL_NUMROWS($result);
+                       if ($rows > 0)
+                       {
+                               // Load all referrals
+                               $SW = "2"; $OUT = "";
+                               while ($row = SQL_FETCHROW($result))
+                               {
+                                       // Check for referrals
+                                       $result_refs = SQL_QUERY_ESC("SELECT COUNT(userid) FROM "._MYSQL_PREFIX."_user_data WHERE refid=%d",
+                                        array(bigintval($row[0])), __FILE__, __LINE__);
+                                       $refs_cnt = SQL_RESULT($result_refs, 0, 0);
+                                       SQL_FREERESULT($result_refs);
+
+                                       // Prepare data for the template
+                                       $content = array(
+                                               'sw'         => $SW,
+                                               'u_link'     => ADMIN_USER_PROFILE_LINK($row[0]),
+                                               'salut'      => TRANSLATE_SEX($row[1]),
+                                               'refs_link'  => "0",
+                                               'surname'    => $row[2],
+                                               'family'     => $row[3],
+                                               'email'      => "<A href=\"".CREATE_EMAIL_LINK($row[4], "user_data")."\">".$row[4]."</A>",
+                                               'status'     => TRANSLATE_STATUS($row[5]),
+                                               'registered' => MAKE_DATETIME($row[6], "3"),
+                                       );
+
+                                       // Check if referral count is larger 0 and update link
+                                       if ($refs_cnt > 0) $content['refs_link'] = ADMIN_USER_PROFILE_LINK($row[0], $refs_cnt, "list_refs");
+
+                                       // Load row template and switch color
+                                       $OUT .= LOAD_TEMPLATE("admin_list_refs_row", true, $content);
+                                       $SW = 3 - $SW;
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+                               define('__REF_ROWS', $OUT);
+
+                               // Load main template
+                               LOAD_TEMPLATE("admin_list_refs");
+                       }
+               }
+                else
+               {
+                       // No referrals made so far
+                       LOAD_TEMPLATE("admin_settings_saved", false, USER_REF_404);
+               }
+       }
+        else
+       {
+               // User not found
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2);
+       }
+}
+ else
+{
+       // Output selection form with all confirmed user accounts listed
+       ADD_MEMBER_SELECTION_BOX();
+}
+CLOSE_TABLE();
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_task.php b/0.2.1/inc/modules/admin/what-list_task.php
new file mode 100644 (file)
index 0000000..20c2b1b
--- /dev/null
@@ -0,0 +1,212 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/03/2004 *
+ * ================                             Last change: 08/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_task.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : List all tasks                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Aufgaben auflisten                          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$WHERE = "";
+if (empty($_GET['type'])) $_GET['type'] = "your";
+
+switch ($_GET['type'])
+{
+case "your": // List only your own open (new) tasks
+       $WHERE = "assigned_admin='".GET_ADMIN_ID($_COOKIE['admin_login'])."' AND status='NEW' AND task_type != 'EXTENSION_UPDATE'";
+       break;
+
+case "updates": // List only updates assigned to you
+       $WHERE = "assigned_admin='".GET_ADMIN_ID($_COOKIE['admin_login'])."' AND status='NEW' AND task_type = 'EXTENSION_UPDATE'";
+       break;
+
+case "solved": // List only solved tasks assigned to you
+       $WHERE = "assigned_admin='".GET_ADMIN_ID($_COOKIE['admin_login'])."' AND status='SOLVED'";
+       break;
+
+case "unassigned": // List unassigned (but not deleted) tasks
+       $WHERE = "assigned_admin='0' AND status != 'DELETED'";
+       break;
+
+case "deleted": // List all deleted
+       $WHERE = "status='DELETED'";
+       break;
+
+case "closed": // List all closed
+       $WHERE = "assigned_admin='".GET_ADMIN_ID($_COOKIE['admin_login'])."' AND status='CLOSED'";
+       break;
+
+default: // Unknown type
+       LOAD_TEMPLATE("admin_settings_saved", false, TASK_ADMIN_UNKNOWN_MODE_1.$_GET['type'].TASK_ADMIN_UNKNOWN_MODE_2);
+       break;
+}
+
+if (!empty($WHERE))
+{
+       $SEL = 0;
+       if (isset($_POST['task'])) $SEL = SELECTION_COUNT($_POST['task']);
+       if ((isset($_POST['assign'])) && ($SEL > 0))
+       {
+               // Assign / do tasks
+               require_once(PATH."inc/modules/admin/overview-inc.php");
+               if (empty($dmy)) $dmy = "";
+               OUTPUT_SELECTED_TASKS($_POST, $dmy);
+       }
+        else
+       {
+               // Start listing tasks matching selected filter
+               $result_tasks = SQL_QUERY("SELECT id, assigned_admin, userid, task_type, subject, text, task_created
+FROM "._MYSQL_PREFIX."_task_system
+WHERE ".$WHERE."
+ORDER BY userid DESC, task_type DESC, subject, task_created DESC", __FILE__, __LINE__);
+               if (($SEL > 0) && (!IS_DEMO()))
+               {
+                       // Only unassign / delete tasks when there are selected tasks posted
+                       if (isset($_POST['unassign']))
+                       {
+                               // Unassign from tasks
+                               foreach ($_POST['task'] as $id=>$sel)
+                               {
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin='0' WHERE id=%d AND assigned_admin='%s' LIMIT 1",
+                                        array(bigintval($id), GET_ADMIN_ID($_COOKIE['admin_login'])), __FILE__, __LINE__);
+                               }
+                       }
+                        elseif (isset($_POST['del']))
+                       {
+                               // Delete tasks
+                               foreach ($_POST['task'] as $id=>$sel)
+                               {
+                                       if ($_GET['type'] == "deleted")
+                                       {
+                                               // Delete task immediately
+                                               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE id=%d LIMIT 1",
+                                                array(bigintval($id)),__FILE__, __LINE__);
+                                       }
+                                        else
+                                       {
+                                               // Mark task as to be deleted (purged by autppurge extension)
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET status='DELETED' WHERE id=%d LIMIT 1",
+                                                array(bigintval($id)), __FILE__, __LINE__);
+                                       }
+                               }
+                       }
+
+                       // Update query
+                       $result_tasks = SQL_QUERY("SELECT id, assigned_admin, userid, task_type, subject, text, task_created FROM "._MYSQL_PREFIX."_task_system WHERE ".$WHERE." ORDER BY subject, task_created DESC", __FILE__, __LINE__);
+               }
+
+               // There are uncompleted jobs!
+               $eval = "\$TYPE = ADMIN_OVERVIEW_TASK_".strtoupper($_GET['type'])."_TYPE;";
+               eval($eval);
+               LOAD_TEMPLATE("admin_overview_header_task", false, array(
+                       'message' => $TYPE,
+                       'type'    => $_GET['type']
+               ));
+               $SW = 2;
+               while (list($id, $admin, $uid, $type, $subj, $text, $created) = SQL_FETCHROW($result_tasks))
+               {
+                       $infos = "---";
+                       if ($admin == "0")
+                       {
+                               // No admin currently is assigned
+                               $admin = "<FONT class=\"admin_note\">".ADMIN_NO_ADMIN_ASSIGNED."</FONT>";
+                       }
+                        else
+                       {
+                               // Load admin's data
+                               $login = GET_ADMIN_LOGIN($admin);
+                               if ($login != "***")
+                               {
+                                       // Admin found
+                                       $admin = "<A href=\"".URL."/modules.php?module=admin&amp;what=admins_contct&amp;admin=".$admin."\">".$login."</A>";
+                               }
+                                else
+                               {
+                                       // Maybe deleted?
+                                       $admin = "<FONT class=\"admin_note\">".ADMIN_ID_404_1.$admin.ADMIN_ID_404_2."</FONT>";
+                               }
+                       }
+                       $evl = "\$type_out = ADMIN_TASK_IS_".strtoupper($type).";";
+                       eval($evl);
+                       $type2 = substr($text, 0, strpos($text, ":"));
+                       // Generate infos
+                       switch ($type)
+                       {
+                       case "EXTENSION":
+                       case "EXTENSION_UPDATE":
+                               $infos = substr($subj, 1, strpos($subj, ":") - 1);
+                               break;
+                       }
+                       if ($uid > 0)
+                       {
+                               // Member found otherwise it's a system task
+                               $uid = ADMIN_USER_PROFILE_LINK($uid);
+                       }
+                        else
+                       {
+                               $uid = "<I>".ADMIN_IS_SYSTEM_TASK."</I>";
+                       }
+                       $content = array(
+                               'sw'      => $SW,
+                               'id'      => $id,
+                               'admin'   => $admin,
+                               'infos'   => $infos,
+                               'uid'     => $uid,
+                               'type'    => $type_out,
+                               'created' => MAKE_DATETIME($created, "2")
+                       );
+                       LOAD_TEMPLATE("admin_list_task_rows", false, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result_tasks);
+
+               // Load footer template
+               if ($_GET['type'] == "deleted")
+               {
+                       // Delete now button
+                       LOAD_TEMPLATE("admin_overview_footer_task");
+               }
+                else
+               {
+                       // Normal footer
+                       LOAD_TEMPLATE("admin_overview_footer");
+               }
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_transfer.php b/0.2.1/inc/modules/admin/what-list_transfer.php
new file mode 100644 (file)
index 0000000..4a4a926
--- /dev/null
@@ -0,0 +1,101 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/07/2004 *
+ * ================                             Last change: 10/14/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_transfer.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Point transfers                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punktetransfers                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// We only need outgoing transfers
+$result = SQL_QUERY("SELECT userid, to_uid, trans_id, points, reason, time_trans FROM "._MYSQL_PREFIX."_user_transfers_out ORDER BY trans_id", __FILE__, __LINE__);
+$total = "0";
+if (SQL_NUMROWS($result) > 0)
+{
+       // Output rows
+       $OUT = ""; $SW = 2;
+       while(list($uid1, $uid2, $idx, $points, $reason, $stamp) = SQL_FETCHROW($result))
+       {
+               // Prepare data for the row template
+               $content = array(
+                       'sw'        => $SW,
+                       'idx'       => $idx,
+                       'stamp'     => MAKE_DATETIME($stamp, "3"),
+                       'from_link' => ADMIN_USER_PROFILE_LINK($uid1),
+                       'to_link'   => ADMIN_USER_PROFILE_LINK($uid2),
+                       'reason'    => wordwrap($reason, 15),
+                       'points'    => TRANSLATE_COMMA($points),
+               );
+
+               // Load row template add points and switch color
+               $OUT .= LOAD_TEMPLATE("admin_list_transfer_row", true, $content);
+               $total += $points; $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+ else
+{
+       // Nothing for in and out
+       $OUT = "<TR>
+  <TD colspan=\"6\" align=\"center\" class=\"bottom2\" height=\"70\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, TRANSFER_NO_INOUT_TRANSFERS)."
+  </TD>
+</TR>";
+}
+
+// ... and add them to a constant for the template
+define('__TRANSFER_ROWS', $OUT);
+
+// Remeber total amount
+define('__TRANSFER_TOTAL_VALUE', TRANSLATE_COMMA($total));
+
+// Set title
+define('__TRANSFER_TITLE', TRANSFER_LIST_ALL);
+
+// Set "balance" word
+define('__TRANSFER_SUM', TRANSFER_TOTAL_BALANCE);
+
+// Don't show a delete button
+define('__TRANSFER_DELETE', "&nbsp;");
+
+// Load final template
+LOAD_TEMPLATE("admin_list_transfer");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_unconfirmed.php b/0.2.1/inc/modules/admin/what-list_unconfirmed.php
new file mode 100644 (file)
index 0000000..a4cfc7b
--- /dev/null
@@ -0,0 +1,192 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/09/2004 *
+ * ================                             Last change: 10/31/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_unconfirmed.php                        *
+ * -------------------------------------------------------------------- *
+ * Short description : List unconfirmed mail links                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Unbest. Mail-Links auflisten                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif (!EXT_IS_ACTIVE("mailid")) {
+       ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "mailid"));
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Don't load the admin_list_unconfirmed template by default
+$listed = false;
+
+if (!empty($_GET['mid']))
+{
+       // List confirmation links from your member's mail orders
+       define('__LIST_UNCON_TITLE', LIST_UNCONFIRMED_MEMBER_LINKS);
+
+       // SQL query for mail data
+       $SQL = "SELECT DISTINCT s.id, p.sender, p.subject, p.text, p.url, p.timestamp, s.max_rec  FROM "._MYSQL_PREFIX."_pool AS p
+LEFT JOIN "._MYSQL_PREFIX."_user_stats AS s
+ON p.id=s.pool_id
+WHERE p.id='".$_GET['mid']."' LIMIT 1";
+
+       // Column, type and ID for member's mail
+       $col = "stats_id"; $type = "NORMAL"; $ID = "-1";
+
+       // Load admin_list_unconfirmed template
+       $listed = true; $DATA = $_GET['mid']; $LINK = "mailid";
+}
+ elseif ((!empty($_GET['bid'])) && (EXT_IS_ACTIVE("bonus")))
+{
+       // List confirmation links from bonus mails
+       define('__LIST_UNCON_TITLE', LIST_UNCONFIRMED_BONUS_LINKS);
+
+       // SQL query for mail data (both ids are required for compatiblity to above normal mail
+       $SQL = "SELECT id, id, subject, text, url, timestamp, mails_sent FROM "._MYSQL_PREFIX."_bonus WHERE id='".$_GET['bid']."' LIMIT 1";
+
+       // Column, type and ID for member's mail
+       $col = "bonus_id"; $type = "BONUS"; $ID = $_GET['bid'];
+
+       // Load admin_list_unconfirmed template
+       $listed = true; $DATA = $ID; $LINK = "bonusid";
+}
+ else
+{
+       // "Please do not call me directly."
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_CALL_NOT_DIRECTLY);
+}
+
+// Shall I display links or not?
+if ($listed)
+{
+       // Load mail data
+       $result = SQL_QUERY($SQL, __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Mail order / bonus mail found!
+               list($stats_id, $sender, $subj, $text, $url, $stamp, $max) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Transfer data to constants for the template
+               if (($stats_id > 0) && ($ID == "-1")) $ID = $stats_id;
+               if ($col == "bonus_id") $sender = "0";
+               define('__LIST_UNCON_SENDER' , $sender);
+               define('__LIST_UNCON_SUBJECT', COMPILE_CODE($subj));
+               define('__LIST_UNCON_TEXT'   , COMPILE_CODE($text));
+               define('__LIST_UNCON_URL'    , urlencode(base64_encode($url)));
+               define('__LIST_UNCON_STAMP'  , MAKE_DATETIME($stamp, "2"));
+
+               // Load unconfirmed mail links. Hmmm, this select query is pretty cool
+               // but it does only show unconfirmed mail links from existing user
+               // accounts. So if you have delete one you did not see those links
+               //
+               $result = SQL_QUERY_ESC("SELECT DISTINCT l.userid, u.status, u.surname, u.family, u.sex, u.email
+FROM "._MYSQL_PREFIX."_user_links AS l
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS u
+ON l.userid=u.userid
+WHERE l.%s='%s' ORDER BY l.userid LIMIT %s",
+ array($col, $ID, bigintval($max)),__FILE__, __LINE__);
+               $unconfirmed = SQL_NUMROWS($result);
+               define('__LIST_UNCO_UNCONFIRMED', $unconfirmed);
+
+               if ($unconfirmed > 0)
+               {
+                       // At least one link left to confirm
+                       $OUT = LOAD_TEMPLATE("admin_list_unconfirmed_header", true);
+                       $SW = 2;
+                       while(list($uid, $status, $sname, $fname, $sex, $email) = SQL_FETCHROW($result))
+                       {
+                               // Prepare data for the row template
+                               $content = array(
+                                       'sw'     => $SW,
+                                       'u_link' => ADMIN_USER_PROFILE_LINK($uid),
+                                       'uid'    => $uid,
+                                       'link'   => $LINK,
+                                       'id'     => $ID,
+                                       'email'  => "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".TRANSLATE_SEX($sex)." ".$sname." ".$fname."</A>",
+                                       'status' => TRANSLATE_STATUS($status),
+                               );
+
+                               // Load row template and switch colors
+                               $OUT .= LOAD_TEMPLATE("admin_list_unconfirmed_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+                       $OUT .= "</TABLE>\n";
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+
+                       // Store table rows in a constant
+                       define('__LIST_UNCON_LISTING', $OUT);
+               }
+                else
+               {
+                       // All links are confirmed... strange, you shall normally not get a link to this place in this scenario... hmmm.
+                       define('__LIST_UNCON_LISTING', LOAD_TEMPLATE("admin_settings_saved", true, ADMIN_UNCONFIRMED_NO_LINK_LEFT));
+               }
+
+               // Load final template
+               LOAD_TEMPLATE("admin_list_unconfirmed");
+       }
+        elseif ($_GET['mid'] > 0)
+       {
+               // Data in pool or in user_stats not found, so let's find out where data is missing
+               $result1 = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+                array(bigintval($ID)), __FILE__, __LINE__);
+               $result2 = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1",
+                array(bigintval($ID)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result1) == 1)
+               {
+                       // pool table
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_UNCONFIRMED_POOL_MISSING_1.$ID.ADMIN_UNCONFIRMED_POOL_MISSING_2);
+               }
+                elseif (SQL_NUMROWS($result2) == 1)
+               {
+                       // user_stats table
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_UNCONFIRMED_STATS_MISSING_1.$ID.ADMIN_UNCONFIRMED_STATS_MISSING_2);
+               }
+                else
+               {
+                       // both or link is invalid
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_UNCONFIRMED_INVALID_LINK);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result1);
+               SQL_FREERESULT($result2);
+       }
+        elseif (!empty($_GET['bid']))
+       {
+               // Data in bonus table not found
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_UNCONFIRMED_INVALID_LINK);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_user.php b/0.2.1/inc/modules/admin/what-list_user.php
new file mode 100644 (file)
index 0000000..0ab0267
--- /dev/null
@@ -0,0 +1,250 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 08/18/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_user.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : List all or partial members                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle oder nur bestimmte Mitglieder auflisten     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif ((!EXT_IS_ACTIVE("user")) || (GET_EXT_VERSION("user") == "")) {
+       // Missing extension!
+       ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "user"));
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Init title with "all accounts"
+$listHeader = ADMIN_ALL_ACCOUNTS;
+if (!empty($_GET['mode'])) {
+       // Set title according to the "mode"
+       $eval = sprintf("\$listHeader = ADMIN_LIST_%s_ACCOUNTS;", strtoupper(SQL_ESCAPE($_GET['mode'])));
+       eval($eval);
+}
+
+// Remember it
+define('__TITLE', $listHeader);
+
+$MORE = ", userid"; $colspan = "4"; //                 27
+if (EXT_IS_ACTIVE("nickname")) { $MORE = ", nickname"; }
+
+if (empty($_GET['letter'])) { $_GET['letter'] = _ALL2;    }
+if (empty($_GET['sortby'])) { $_GET['sortby'] = "userid"; }
+if (empty($_GET['page']))   { $_GET['page']   = "1";      }
+
+// Set base URL
+$BASE = "<A href=\"".URL."/modules.php?module=admin";
+
+if (!empty($_GET['u_id']))
+{
+       // Secure the user ID
+       $uid = bigintval($_GET['u_id']);
+
+       // Does the account exists?       0      1        2         3      4     5      6       7         8          9          10           11           12         13     14         15           16          17            18           19           20           21        22        23             24              25         26
+       $result = SQL_QUERY_ESC("SELECT sex, surname, family, street_nr, zip, city, country, email, birth_day, birth_month, birth_year, max_mails, receive_mails, refid, status, REMOTE_ADDR, last_online, last_module, ref_clicks, total_logins, used_points, emails_sent, joined, last_update, last_profile_sent, notified, ref_payout".$MORE."
+FROM "._MYSQL_PREFIX."_user_data
+WHERE userid=%d LIMIT 1",
+        array($uid), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Account found!
+               $DATA  = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               $REFS  = GET_TOTAL_DATA($uid, "refsystem", "counter");
+               $CATS  = GET_TOTAL_DATA($uid, "user_cats", "id", "userid", true);
+               $LINKS = GET_TOTAL_DATA($uid, "user_links", "id", "userid", true);
+
+               if ($LINKS > 0) $LINKS = $BASE."&amp;what=list_links&amp;u_id=".$uid."\">".$LINKS."</A>";
+               if ($DATA[13] > 0) $DATA[13] = str_replace(("u_id=".$uid), ("u_id=".$DATA[13]), $BASE."&amp;what=list_user\">".$DATA[13]."</A>");
+               if (empty($DATA[17])) $DATA[17] = "---";
+               if ($REFS > 0)  $REFS = $BASE."&amp;what=list_refs&amp;u_id=".$uid."\">".$REFS."</A></STRONG>";
+               if ($CATS > 0) $CATS = $BASE."&amp;what=list_cats&amp;u_id=".$uid."\">".$CATS."</A>";
+
+               // Prepare data for template
+               define('_BIRTHDAY', MAKE_DATETIME(mktime(0, 0, 0, $DATA[9], $DATA[8], $DATA[10]), "3"));
+               define('_REFS' , $REFS);
+               define('_CATS' , $CATS);
+               define('_LINKS', $LINKS);
+               define('_ADMIN_LINKS', MEMBER_ACTION_LINKS($uid, $DATA[14]));
+               $DATA[0]      = TRANSLATE_SEX($DATA[0]);
+               $DATA[28]     = CREATE_EMAIL_LINK($DATA[7], "user_data");
+               $DATA[14]     = TRANSLATE_STATUS($DATA[14]);
+               $DATA[16]     = MAKE_DATETIME($DATA[16], "0");
+               $DATA[20]     = TRANSLATE_COMMA($DATA[20]);
+               if ($DATA[21] > 0) $DATA[21] = $BASE."&amp;what=email_details&amp;u_id=".$uid."\">".$DATA[21]."</A>";
+               $DATA[22]     = MAKE_DATETIME($DATA[22], "0");
+               $DATA[23]     = MAKE_DATETIME($DATA[23], "0");
+               $DATA[24]     = MAKE_DATETIME($DATA[24], "0");
+               if ((empty($DATA[27])) || ($DATA[27] == $uid)) $DATA[27] = "---";
+               $DATA['total']  = TRANSLATE_COMMA(GET_TOTAL_DATA($uid, "user_points", "points"));
+               $DATA['locked'] = TRANSLATE_COMMA(GET_TOTAL_DATA($uid, "user_points", "locked_points"));
+
+               if (EXT_IS_ACTIVE("nickname")) {
+                       if ((empty($DATA[27])) || ($DATA[27] == $uid)) $DATA[27] = "---";
+               } else {
+                       $DATA[27] = EXT_NICKNAME_404;
+               }
+
+               // Template laden
+               LOAD_TEMPLATE("admin_user_details", false, $uid);
+       }
+        else
+       {
+               // Account does not exists!
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_MEMBER_404_1.$uid.ADMIN_MEMBER_404_2);
+       }
+}
+ else
+{
+       $WHERE = "";
+       if (($_GET['letter'] != _ALL2) && ($_GET['letter'] != _OTHERS) && (!empty($_GET['letter'])))
+       {
+               // List only persons w
+               $WHERE = " WHERE family LIKE '".$_GET['letter']."%'";
+       }
+       if ($_GET['sortby'] == "family_name") $_GET['sortby'] = "family";
+
+       // Parse the mode parameter
+       if (isset($_GET['mode'])) {
+               // Is a WHERE statement already there?
+               if (!empty($WHERE)) {
+                       // Then append the status column
+                       $WHERE .= sprintf(" AND status='%s'", SQL_ESCAPE(strip_tags(strtoupper($_GET['mode']))));
+               } else {
+                       // Start a new one
+                       $WHERE = sprintf(" WHERE status='%s'", SQL_ESCAPE(strip_tags(strtoupper($_GET['mode']))));
+               }
+       }
+
+       $SQL = "SELECT userid, sex, surname, family, email, REMOTE_ADDR, refid, status".$MORE." FROM "._MYSQL_PREFIX."_user_data".$WHERE." ORDER BY ".$_GET['sortby'];
+       $result_master = SQL_QUERY($SQL, __FILE__, __LINE__);
+
+       // Calculate page count (0.5 fixes a bug with page count)
+       $PAGES = round(SQL_NUMROWS($result_master) / $CONFIG['user_limit'] + 0.5);
+
+       if (empty($_GET['page']))   $_GET['page']   = "1";
+       if (empty($_GET['offset'])) $_GET['offset'] = $CONFIG['user_limit'];
+
+       // Add limitation to SQL string and run him again
+       $SQL .= " LIMIT ".($_GET['offset'] * $_GET['page'] - $_GET['offset']).", ".$_GET['offset'];
+       $result = SQL_QUERY($SQL, __FILE__, __LINE__);
+
+       $result_user = SQL_QUERY("SELECT emails_sent FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED'", __FILE__, __LINE__);
+       $user_count = SQL_NUMROWS($result_user);
+       SQL_FREERESULT($result_user);
+
+       if (SQL_NUMROWS($result_master) > 0)
+       {
+               // Free memory
+               SQL_FREERESULT($result_master);
+
+               // We have some (new?) registrations!
+               define('__COLSPAN1'  , $colspan);
+               define('__COLSPAN2'  , ($colspan + 2));
+               define('__USER_CNT'  , $user_count);
+               define('__ALPHA_SORT', alpha($_GET['sortby'], $colspan, true));
+               define('__SORT_LINKS', SortLinks($_GET['letter'], $_GET['sortby'], $colspan, true));
+               if ($PAGES > 1)
+               {
+                       define('__PAGE_NAV', ADD_PAGENAV($PAGES, $CONFIG['user_limit'], true, $colspan, true));
+               }
+                else
+               {
+                       // No page navigation is required
+                       define('__PAGE_NAV', "");
+               }
+               // Column with nickname when nickname extension is present
+               if (EXT_IS_ACTIVE("nickname"))
+               {
+                       // Nickname extension found
+                       define('__NICKNAME_TH', "  <TD class=\"admin_title bottom2\" align=\"center\">".NICKNAME."</TD>");
+               }
+                else
+               {
+                       // Not found
+                       define('__NICKNAME_TH', "");
+               }
+
+               $SW = 2; $OUT = "";
+               while (list($uid, $sex, $sname, $fname, $email, $IP, $ref, $status, $nick) = SQL_FETCHROW($result))
+               {
+                       if ($ref > 0) $ref = ADMIN_USER_PROFILE_LINK($ref);
+                       $LINKS = TRANSLATE_COMMA(GET_TOTAL_DATA($uid, "user_links", "id", "userid", true));
+                       if ($LINKS > 0) $LINKS = $BASE."&amp;what=list_links&amp;u_id=".$uid."\">".$LINKS."</A>";
+
+                       // Add nickname
+                       if (empty($nick) || $nick == $uid) $nick = "---";
+
+                       // Transfer data to array
+                       $content = array(
+                               'sw'     => $SW,
+                               'uid'    => ADMIN_USER_PROFILE_LINK($uid),
+                               'sex'    => TRANSLATE_SEX($sex),
+                               'sname'  => $sname,
+                               'fname'  => $fname,
+                               'email'  => "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".stripslashes($email)."</A>",
+                               'addr'   => $IP,
+                               'ref'    => $ref,
+                               'status' => TRANSLATE_STATUS($status),
+                               'links'  => $LINKS,
+                               'nick'   => $nick,
+                               'alinks' => MEMBER_ACTION_LINKS($uid, $status)
+                       );
+
+                       // Load row template and switch colors
+                       $OUT .= LOAD_TEMPLATE("admin_list_user_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               define('__USER_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_list_user");
+
+               // Free some memory
+               SQL_FREERESULT($result_master);
+       }
+        else
+       {
+               // No one as registered so far! :-(
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_NONE_REGISTERED);
+       }
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-list_wernis.php b/0.2.1/inc/modules/admin/what-list_wernis.php
new file mode 100644 (file)
index 0000000..b9e0521
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 26/12/2007 *
+ * ================                             Last change: 26/12/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-list_wernis.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : List member's wernis requests                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auflistung der Wernis-Anfragen                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-lock_user.php b/0.2.1/inc/modules/admin/what-lock_user.php
new file mode 100644 (file)
index 0000000..d2e1fd4
--- /dev/null
@@ -0,0 +1,192 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 06/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-lock_user.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Lock members                                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mitglieder sperren                               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (!empty($_GET['u_id']))
+{
+       $result_user = SQL_QUERY_ESC("SELECT status, sex, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+       $ACT = false;
+       if (SQL_NUMROWS($result_user) == 1)
+       {
+               // User found
+               list($status, $sex, $sname, $fname, $email) = SQL_FETCHROW($result_user);
+               SQL_FREERESULT($result_user);
+               if (empty($_GET['u_id']))
+               {
+                       // Output selection form with all confirmed user accounts listed
+                       ADD_MEMBER_SELECTION_BOX();
+               }
+                elseif (!empty($_POST['lock']))
+               {
+                       // Ok, lock the account!
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET status='LOCKED' WHERE userid=%d LIMIT 1",
+                        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+                       if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1)
+                       {
+                               // Send an email to the user! In later version you can optionally switch this feature off
+                               $msg = LOAD_EMAIL_TEMPLATE("lock-user", stripslashes($_POST['reason']), $_GET['u_id']);
+
+                               // Send away...
+                               SEND_EMAIL($email, ADMIN_LOCKED_SUBJ, $msg);
+                       }
+
+                       // Prepare message
+                       $MSG = USER_ACCOUNT_LOCKED_1.$_GET['u_id'].USER_ACCOUNT_LOCKED_2;
+                       $ACT = true;
+               }
+                elseif (!empty($_POST['unlock']))
+               {
+                       // Ok, unlock the account!
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET status='CONFIRMED' WHERE userid=%d LIMIT 1",
+                        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+                       if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1)
+                       {
+                               // Send an email to the user! In later version you can optionally switch this feature off
+                               $msg = LOAD_EMAIL_TEMPLATE("unlock-user", stripslashes($_POST['reason']), $_GET['u_id']);
+
+                               // Send away...
+                               SEND_EMAIL($email, ADMIN_UNLOCKED_SUBJ, $msg);
+                               if (EXT_IS_ACTIVE("rallye"))
+                               {
+                                       RALLYE_AUTOADD_USER($_GET['u_id']);
+                               }
+                       }
+
+                       // Prepare message
+                       $MSG = USER_ACCOUNT_UNLOCKED_1.$_GET['u_id'].USER_ACCOUNT_UNLOCKED_2;
+                       $ACT = true;
+               }
+                elseif (isset($_POST['del']))
+               {
+                       // Delete the account
+                       $ACT = true;
+                       require_once(PATH."inc/modules/admin/what-del_user.php");
+               }
+                elseif (!empty($_POST['no']))
+               {
+                       // Do not lock him...
+                       $URL = URL."/modules.php?module=admin&amp;what=list_user&amp;u_id=".$_GET['u_id'];
+               }
+                else
+               {
+                       $result = SQL_QUERY_ESC("SELECT email, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                        array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Load data
+                               list ($email, $sname, $fname) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               // Transfer data to constants for the template
+                               define('__EMAIL', CREATE_EMAIL_LINK($email, "user_data"));
+                               define('__SNAME', $sname);
+                               define('__FNAME', $fname);
+                               define('__UID'  , $_GET['u_id']);
+
+                               // Transfer data to constants for the template
+                               define('__UID_VALUE', $_GET['u_id']);
+
+                               // Realy want to lock?
+                               switch ($status)
+                               {
+                               case "CONFIRMED": // Yes, lock him down... ;-)
+                                       define('__OK_VALUE'    , "lock");
+                                       define('__HEADER_VALUE', ADMIN_HEADER_LOCK_ACCOUNT_1.__UID_VALUE.ADMIN_HEADER_LOCK_ACCOUNT_2);
+                                       define('__TEXT_VALUE'  , ADMIN_TEXT_LOCK_ACCOUNT_1.__UID_VALUE.ADMIN_TEXT_LOCK_ACCOUNT_2);
+                                       break;
+
+                               case "LOCKED": // Unlock the user
+                                       define('__OK_VALUE'    , "unlock");
+                                       define('__HEADER_VALUE', ADMIN_HEADER_UNLOCK_ACCOUNT_1.__UID_VALUE.ADMIN_HEADER_UNLOCK_ACCOUNT_2);
+                                       define('__TEXT_VALUE'  , ADMIN_TEXT_UNLOCK_ACCOUNT_1.__UID_VALUE.ADMIN_TEXT_UNLOCK_ACCOUNT_2);
+                                       break;
+
+                               case "UNCONFIRMED": // Unconfirmed accounts cannot be unlocked!
+                                       define('__OK_VALUE'    , "del");
+                                       define('__HEADER_VALUE', ADMIN_HEADER_DEL_ACCOUNT_1.__UID_VALUE.ADMIN_HEADER_DEL_ACCOUNT_2);
+                                       define('__TEXT_VALUE'  , ADMIN_TEXT_DEL_ACCOUNT_1.__UID_VALUE.ADMIN_TEXT_DEL_ACCOUNT_2);
+                                       break;
+                               }
+
+                               // Output form
+                               LOAD_TEMPLATE("admin_lock_user");
+                       }
+                        else
+                       {
+                               // Account does not exists!
+                               OUTPUT_HTML ("<STRONG class=\"admin_failed\">".ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2."</STRONG>");
+                       }
+               }
+               if (!empty($URL))
+               {
+                       // Reload and die...
+                       LOAD_URL($URL);
+               }
+                elseif ($ACT)
+               {
+                       // An action was performed...
+                       if (!empty($MSG))
+                       {
+                               LOAD_TEMPLATE("admin_settings_saved", false, "<STRONG class=\"admin_green\">".$MSG."</STRONG>");
+                       }
+                        else
+                       {
+                               LOAD_TEMPLATE("admin_settings_saved", false, "<STRONG class=\"admin_green\">".ADMIN_USER_UPDATED."</STRONG>");
+                       }
+               }
+       }
+        else
+       {
+               // Account does not exists!
+               OUTPUT_HTML ("<STRONG class=\"admin_failed\">".ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2."</STRONG>");
+       }
+}
+ else
+{
+       // List all users
+       ADD_MEMBER_SELECTION_BOX();
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-logs.php b/0.2.1/inc/modules/admin/what-logs.php
new file mode 100644 (file)
index 0000000..85844bb
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/15/2003 *
+ * ===============                              Last change: 04/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-logs.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Management for access log files                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Management fuer Zugriffslogbuecher               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (!empty($_GET['access'])) {
+       // Secure input and construct FQFN
+       $access = SQL_ESCAPE(strip_tags($_GET['access']));
+       $target = sprintf("%slogs/%s", PATH, $access);
+
+       // Is the file valid and readable?
+       if ((file_exists($target)) && (is_readable($target))) {
+               // Load it directly
+               $content = implode("", file($target));
+
+               // Set header
+               if (substr($access, -3, 3) == "log") {
+                       header("Content-Type: text/plain");
+               } elseif (substr($access, -3, 3) == ".gz") {
+                       header("Content-Type: text/plain");
+               } else {
+                       LOAD_TEMPLATE("admin_settings_saved", false, UNKNOWN_LOGFILE_FORMAT_1.$access.UNKNOWN_LOGFILE_FORMAT_2);
+                       return;
+               }
+
+               // Clean content
+               ob_end_clean();
+
+               // Output the logfile's content and exit
+               print($content);
+               exit;
+       } else {
+               // Not readable!
+               LOAD_TEMPLATE("admin_settings_saved", false, LOGFILE_NOT_READABLE_1.$access.LOGFILE_NOT_READABLE_2);
+       }
+} else {
+       // List access logfiles
+       $dir = PATH.LOGS_BASE."/";
+       if (is_dir($dir)) {
+               // logs directory does exist
+               OUTPUT_HTML ("<OL>");
+               $handle = @opendir($dir) or mxchange_die("Cannot open directory ".LOGS_BASE."!");
+               while($file = @readdir($handle)) {
+                       // We currenly only like files with "access" as prefix, should be more flexible!
+                       if (substr($file, 0, 6) == "access") {
+                               // Okay, let us print it out
+                               OUTPUT_HTML ("<LI><A href=\"".URL."/modules.php?module=admin&amp;what=".$GLOBALS['what']."&access=".urlencode($file)."\">".$file."</A></LI>");
+                       }
+               }
+               @closedir($handle);
+               OUTPUT_HTML ("</OL>");
+       }
+        else
+       {
+               // logs directory does not exist
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_LOGS_DIR_404_1.LOGS_BASE.ADMIN_LOGS_DIR_404_2);
+       }
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-maintenance.php b/0.2.1/inc/modules/admin/what-maintenance.php
new file mode 100644 (file)
index 0000000..734640b
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/06/2004 *
+ * ================                             Last change: 05/06/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-maintenance.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : De/activate maintenance mode                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Wartungsmodus de/aktivieren                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (isset($_POST['ok']))
+{
+       // De- or activate maintenance mode
+       switch ($CONFIG['maintenance'])
+       {
+       case "Y":
+               $target_mode = "N";
+               $out = ADMIN_MAINTENANCE_DEACTIVATED;
+               break;
+
+       case "N":
+               $target_mode = "Y";
+               $out = ADMIN_MAINTENANCE_ACTIVATED;
+               break;
+       }
+
+       // Update config
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET maintenance='%s' WHERE config='0' LIMIT 1",
+        array($target_mode), __FILE__, __LINE__);
+
+       // Load template
+       LOAD_TEMPLATE("admin_settings_saved", false, $out);
+}
+ else
+{
+       switch ($CONFIG['maintenance'])
+       {
+       case "Y": // Maintenance mode is active
+               define('ADMIN_MAINTENANCE_MODE', ADMIN_MAINTENANCE_MODE_IS_ACTIVE);
+               break;
+
+       case "N": // Maintenance mode is inactive
+               define('ADMIN_MAINTENANCE_MODE', ADMIN_MAINTENANCE_MODE_IS_INACTIVE);
+               break;
+       }
+       // Display form
+       LOAD_TEMPLATE("admin_maintenance_form");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-mem_add.php b/0.2.1/inc/modules/admin/what-mem_add.php
new file mode 100644 (file)
index 0000000..ec08608
--- /dev/null
@@ -0,0 +1,216 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-mem_add.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short desciption : Add new menu for your members                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Fuegen Sie einen weiteren Menuepunkt zum Mit-    *
+ *                     Mitgliedsmenue hinzu                             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add desciption as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR>");
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+
+// Check if the admin has entered title and what-php file name...
+if ((empty($_POST['title'])) && (isset($_POST['ok'])))
+{
+       unset($_POST['ok']);
+}
+
+if (!isset($_POST['ok']))
+{
+       // Create arrays
+       $menus = array(); $titles = array(); $below = array();
+
+       // Get all available main menus
+       $result = SQL_QUERY("SELECT action, title, sort FROM "._MYSQL_PREFIX."_member_menu WHERE what='' ORDER BY sort", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Read menu structure
+               while (list($act, $title, $sort) = SQL_FETCHROW($result))
+               {
+                       // Menu actions
+                       $menus[] = $act;
+
+                       // Menu titles
+                       $titles[] = $title;
+
+                       // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
+                       $below[] = $sort + 1;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Remove double eintries
+               $prev = ""; $dmy = $menus; $dmy2 = $titles; $dmy3 = $below;
+               foreach ($menus as $key=>$value)
+               {
+                       if ($value == $prev)
+                       {
+                               // Remove entries
+                               unset($dmy[$key]);
+                               unset($dmy2[$key]);
+                               unset($dmy3[$key]);
+                       }
+                        else
+                       {
+                               $prev = $value;
+                       }
+               }
+               $menus = $dmy; $titles = $dmy2; $below = $dmy3;
+               // Load sub menus :)
+               foreach ($menus as $key_main=>$value_main)
+               {
+                       $result = SQL_QUERY_ESC("SELECT what, title, sort FROM "._MYSQL_PREFIX."_member_menu WHERE action='%s' AND what != '' ORDER BY sort",
+                        array($value_main), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) > 0)
+                       {
+                               // Initialize arrays
+                               $menus[$value_main] = array();
+                               $titles[$value_main] = array();
+                               $below[$value_main] = array();
+
+                               // Read menu structure
+                               while (list($act, $title, $sort) = SQL_FETCHROW($result))
+                               {
+                                       // Menu actions
+                                       $menus[$value_main][] = $act;
+
+                                       // Menu titles
+                                       $titles[$value_main][] = $title;
+
+                                       // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
+                                       $below[$value_main][] = $sort + 1;
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // Remove double eintries
+                               $prev = ""; $dmy = $menus[$value_main]; $dmy2 = $titles[$value_main]; $dmy3 = $below[$value_main];
+                               foreach ($menus[$value_main] as $key=>$value)
+                               {
+                                       if ($value == $prev)
+                                       {
+                                               unset($dmy[$key]);
+                                               unset($dmy2[$key]);
+                                               unset($dmy3[$key]);
+                                       }
+                                        else
+                                       {
+                                               $prev = $value;
+                                       }
+                               }
+                               $menus[$value_main] = $dmy; $titles[$value_main] = $dmy2; $below[$value_main] = $dmy3;
+                       }
+               }
+       }
+
+       $OUT = "<SELECT class=\"admin_select\" name=\"sort\" size=\"1\">
+      <OPTION value=\"\">".IS_FIRST_MENU."</OPTION>";
+       foreach ($below as $key=>$m)
+       {
+               if (is_array($m))
+               {
+                       foreach ($m as $key2=>$m2)
+                       {
+                               $OUT .= "      <OPTION value=\"".$m2."\">".$titles[$key][$key2];
+                               foreach ($menus as $k=>$v)
+                               {
+                                       if (($v == $key) && (!is_array($v)))
+                                       {
+                                               $OUT .= " (".$titles[$k].")";
+                                       }
+                               }
+                               $OUT .= "</OPTION>\n";
+                       }
+               }
+                else
+               {
+                       $OUT .= "      <OPTION value=\"".$m."\">".$titles[$key]."</OPTION>\n";
+               }
+       }
+       $OUT .= "</SELECT>";
+
+       define('__BELOW_SELECTION' , $OUT);
+       define('__WHAT_SELECTION'  , ADMIN_MAKE_MENU_SELECTION("member", "what", "name"));
+       define('__ACTION_SELECTION', ADMIN_MAKE_MENU_SELECTION("member", "action", "menu"));
+
+       // Display form
+       LOAD_TEMPLATE("admin_member_add");
+}
+ elseif (!IS_DEMO())
+{
+       // Insert new menu entry
+       if (!empty($_POST['menu']))
+       {
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_member_menu
+(action, what, title, visible, locked, sort)
+VALUES('%s', '%s', '%s', '%s', '%s', '%s')",
+ array(
+       $_POST['menu'],
+       $_POST['name'],
+       $_POST['title'],
+       $_POST['visible'],
+       $_POST['active'],
+       bigintval($_POST['sort']),
+), __FILE__, __LINE__);
+       }
+        else
+       {
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_member_menu
+(action, title, visible, locked, sort)
+VALUES('%s', '%s', '%s', '%s', '%s')",
+ array(
+       $_POST['name'],
+       $_POST['title'],
+       $_POST['visible'],
+       $_POST['active'],
+       bigintval($_POST['sort']),
+), __FILE__, __LINE__);
+       }
+       LOAD_TEMPLATE("admin_settings_saved", false, SAVING_DONE);
+}
+ else
+{
+       // Demo mode!
+       LOAD_TEMPLATE("admin_settings_saved", false, SETTINGS_NOT_SAVED);
+}
+
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-memedit.php b/0.2.1/inc/modules/admin/what-memedit.php
new file mode 100644 (file)
index 0000000..ed7673b
--- /dev/null
@@ -0,0 +1,331 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 05/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-memedit.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Edit member's menu                               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Editieren Sie das Menue fuer Ihre Mitglieder     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Do we edit/delete/change main menus or sub menus?
+$AND = "what=''"; $SUB = "";
+
+if (!empty($_GET['sub']))
+{
+       $AND = sprintf("action='%s'", SQL_ESCAPE($_GET['sub']));
+       $SUB = SQL_ESCAPE($_GET['sub']);
+}
+
+// Get count of (maybe) selected menu points
+$chk = 0;
+if (!empty($_POST['sel'])) $chk = SELECTION_COUNT($_POST['sel']);
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+// List all menu points and make them editable
+OUTPUT_HTML ("<BR><BR></FONT>
+<DIV align=\"center\">");
+if ((isset($_POST['edit'])) && ($chk > 0) && (!IS_DEMO()))
+{
+       // Edit menu entries
+       define('__SUB_VALUE', $SUB);
+       define('__CHK_VALUE', $chk);
+       $SW = 2; $cnt = 0; $OUT = "";
+       foreach ($_POST['sel'] as $sel=>$confirm)
+       {
+               if ($confirm == 1)
+               {
+                       $cnt++;
+                       $result = SQL_QUERY_ESC("SELECT title, action, what, descr FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Entry found so we load the stuff...
+                               list($menu, $act, $wht, $descr) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+                               $content = array(
+                                       'cnt'    => $cnt,
+                                       'sel'    => $sel,
+                                       'menu'   => $menu,
+                                       'sw'     => $SW,
+                                       'act' => ADMIN_MAKE_MENU_SELECTION("member", "act", "sel_act[".$sel."]", $act),
+                                       'what'   => ADMIN_MAKE_MENU_SELECTION("member", "what", "sel_what[".$sel."]", $wht),
+                               );
+                               // Load template
+                               $OUT .= LOAD_TEMPLATE("admin_mmenu_edit_row", true, $content);
+                       }
+                        else
+                       {
+                               // Entry not found?
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'sel' => $sel
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);
+                       }
+                       $SW = 3 - $SW;
+               }
+       }
+       define('__MENU_ROWS', $OUT);
+       define('__CNT_VALUE', $cnt);
+
+       // Load template
+       LOAD_TEMPLATE("admin_mmenu_edit");
+}
+ elseif ((isset($_POST['del'])) && ($chk > 0) && (!IS_DEMO()))
+{
+       // Del menu entries with or without confirmation
+       define('__SUB_VALUE', $SUB);
+       define('__CHK_VALUE', $chk);
+       $SW = 2; $cnt = 0; $OUT = "";
+       foreach ($_POST['sel'] as $sel=>$confirm)
+       {
+               if ($confirm == 1)
+               {
+                       $cnt++;
+                       $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Entry found so we load the stuff...
+                               list($title) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+                               $content = array(
+                                       'cnt'   => $cnt,
+                                       'sel'   => $sel,
+                                       'title' => $title
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_mmenu_delete_row", true, $content);
+                       }
+                        else
+                       {
+                               // Entry not found?
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'sel' => $sel
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);
+                       }
+               }
+       }
+       define('__MENU_ROWS', $OUT);
+       define('__CNT_VALUE', $cnt);
+
+       // Load template
+       LOAD_TEMPLATE("admin_mmenu_delete");
+}
+ elseif ((isset($_POST['status'])) && ($chk > 0) && (!IS_DEMO()))
+{
+       // Change status (visible / locked)
+       define('__SUB_VALUE', $SUB);
+       define('__CHK_VALUE', $chk);
+       $SW = 2; $cnt = 0; $OUT = "";
+       foreach ($_POST['sel'] as $sel=>$confirm)
+       {
+               if ($confirm == 1)
+               {
+                       $cnt++;
+                       $result = SQL_QUERY_ESC("SELECT title, visible, locked FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($sel)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Entry found so we load the stuff...
+                               list($menu, $vis, $locked) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+                               $content = array(
+                                       'cnt'     => $cnt,
+                                       'menu'    => $menu,
+                                       'sel'     => $sel,
+                                       'sw'      => $SW,
+                                       'visible' => ADD_SELECTION("yn", $vis   , "visible", $sel),
+                                       'locked'  => ADD_SELECTION("yn", $locked, "locked" , $sel),
+                               );
+
+                               // Load template
+                               $OUT .= LOAD_TEMPLATE("admin_menu_status_row", true, $content);
+                       }
+                        else
+                       {
+                               // Entry not found?
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'sel' => $sel
+                               );
+                               $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);
+                       }
+                       $SW = 3 - $SW;
+               }
+       }
+       define('__MENU_ROWS', $OUT);
+       define('__CNT_VALUE', $cnt);
+       //
+       LOAD_TEMPLATE("admin_mmenu_status");
+}
+ elseif ((isset($_POST['ok'])) && (!IS_DEMO()))
+{
+       // An act is done...
+       foreach ($_POST['sel'] as $sel=>$menu)
+       {
+               $AND = "what=''";
+               $sel = bigintval($sel);
+               if (!empty($SUB)) $AND = "action='".$SUB."'";
+               switch ($_POST['ok'])
+               {
+               case "edit": // Edit menu
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET title='%s', action='%s', what='%s', descr='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array($menu, $_POST['sel_act'][$sel], $_POST['sel_what'][$sel], $_POST['sel_descr'][$sel], $sel), __FILE__, __LINE__);
+                       break;
+
+               case "del": // Delete menu
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND id=%d LIMIT 1",
+                        array($sel), __FILE__, __LINE__);
+                       break;
+
+               case "status": // Change status of menus
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET visible='%s', locked='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array($_POST['visible'][$sel], $_POST['locked'][$sel], $sel), __FILE__, __LINE__);
+                       break;
+               }
+               break;
+       }
+
+       // Load template
+       LOAD_TEMPLATE("admin_data_saved");
+}
+ else
+{
+       if ((!empty($_GET['act'])) && (!empty($_GET['tid'])) && (!empty($_GET['fid'])))
+       {
+               // Get IDs
+               if (!empty($_GET['w']))
+               {
+                       // Sub menus selected
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE action='%s' AND sort='%s' LIMIT 1",
+                        array(bigintval($_GET['act']), bigintval($_GET['tid'])), __FILE__, __LINE__);
+                       list($tid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE action='%s' AND sort='%s' LIMIT 1",
+                        array(bigintval($_GET['act']), bigintval($_GET['fid'])), __FILE__, __LINE__);
+                       list($fid) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // Main menu selected
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE what='' AND sort='%s' LIMIT 1",
+                        array(bigintval($_GET['tid'])), __FILE__, __LINE__);
+                       list($tid) = SQL_FETCHROW($result);
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE what='' AND sort='%s' LIMIT 1",
+                        array(bigintval($_GET['fid'])), __FILE__, __LINE__);
+                       list($fid) = SQL_FETCHROW($result);
+               }
+
+               if ((!empty($tid)) && (!empty($fid)))
+               {
+                       // Sort menu
+                       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($_GET['tid']), bigintval($fid)), __FILE__, __LINE__);
+                       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",
+                        array(bigintval($_GET['fid']), bigintval($tid)), __FILE__, __LINE__);
+               }
+       }
+
+       if (!empty($SUB))
+       {
+               // Edit sub menus
+               $result = SQL_QUERY("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND what != '' ORDER BY sort ASC", __FILE__, __LINE__);
+       }
+        else
+       {
+               // Edit main menus
+               $result = SQL_QUERY("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_member_menu WHERE what='' ORDER BY sort ASC", __FILE__, __LINE__);
+       }
+       $max = SQL_NUMROWS($result);
+       if ($max > 0)
+       {
+               $SUB = "";
+               if (!empty($SUB)) $SUB = $SUB;
+               define('__SUB_VALUE', $SUB);
+
+               $SW = 2; $cnt = 0; $OUT = "";
+               while (list($id, $act, $wht, $title, $sort) = SQL_FETCHROW($result))
+               {
+                       $cnt++;
+                       if (($sort == 0) || (($sort == 1) && (!empty($SUB))))
+                       {
+                               // Is highest position
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=memedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";
+                       }
+                        elseif ($cnt == $max)
+                       {
+                               // Is lowest position
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=memedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>";
+                       }
+                        elseif ($sort > 0)
+                       {
+                               // Anything else between highest and lowest
+                               $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=memedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>/<A href=\"".URL."/modules.php?module=admin&amp;what=memedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";
+                       }
+                       if (empty($act))   $act   = "&nbsp;";
+                       if (empty($wht))   $wht   = "&nbsp;";
+                       if (empty($title)) $title = "&nbsp;";
+                       $content = array(
+                               'sw'     => $SW,
+                               'id'     => $id,
+                               'action' => $act,
+                               'what'   => $wht,
+                               'title'  => $title,
+                               'navi'   => $NAVI,
+                               'mode'   => "mem",
+                       );
+                       $OUT .= LOAD_TEMPLATE("admin_menu_overview_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__MENU_ROWS', $OUT);
+               LOAD_TEMPLATE("admin_mmenu_overview");
+       }
+        else
+       {
+               // Menu entries are missing... (???)
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_MENUS_FOUND);
+       }
+}
+OUTPUT_HTML ("</DIV>");
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-newsletter.php b/0.2.1/inc/modules/admin/what-newsletter.php
new file mode 100644 (file)
index 0000000..456fab2
--- /dev/null
@@ -0,0 +1,3 @@
+<?php
+// DEPRECATED!!!
+?>
diff --git a/0.2.1/inc/modules/admin/what-optimize.php b/0.2.1/inc/modules/admin/what-optimize.php
new file mode 100644 (file)
index 0000000..be5a6e3
--- /dev/null
@@ -0,0 +1,96 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/12/2004 *
+ * ================                             Last change: 09/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-optimize.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Optimize and repair database                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Datenbank optimieren und reparieren              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Optimize and repair database and return the result as a multi-dimensional array
+$DATA = REPAIR_OPTIMIZE_DB();
+
+// Output rows
+$SW = 2; $gain_tabs = 0; $OUT = "";
+foreach ($DATA['tables'] as $row_array)
+{
+       // Fixes a bug which causes a parser error on eval'd code
+       if (empty($row_array[1])) $row_array[1] = "NONE";
+       $eval = "\$REP = OPTIMIZE_STATUS_".strtoupper($row_array[1]).";";
+       eval($eval); $B1 = ""; $B2 = "";
+       if ($row_array[4] > 0)
+       {
+               $OPT = OPTIMIZE_STATUS_OPTIMIZED;
+               $B1 = "<STRONG>"; $B2 = "<STRONG>";
+               $gain_tabs++;
+       }
+        else
+       {
+               $eval = "\$OPT = OPTIMIZE_STATUS_".strtoupper($row_array[2]).";";
+               eval($eval);
+       }
+
+       // Prepare data for the row template
+       $content = array(
+               'sw'  => $SW,
+               'b1'  => $B1,
+               'b2'  => $B2,
+               'tpl' => $row_array[0],
+               'rep' => $REP,
+               'opt' => $OPT,
+               'sum' => TRANSLATE_COMMA($row_array[3]),
+               'sav' => TRANSLATE_COMMA($row_array[4]),
+       );
+
+       // Load row template and switch color
+       $OUT .= LOAD_TEMPLATE("admin_optimize_row", true, $content);
+       $SW = 3 - $SW;
+}
+define('__TABLE_ROWS', $OUT);
+
+// Prepare data for the template
+define('__TOTAL_TABS'     , $DATA['total_tabs']);
+define('__TOTAL_SIZE'     , TRANSLATE_COMMA($DATA['total_size']));
+define('__TOTAL_CALLS'    , $DATA['total_rows']);
+define('__TOTAL_OPTIMIZED', TRANSLATE_COMMA($DATA['total_opti']));
+define('__NOW_OPTIMIZED'  , $gain_tabs);
+define('__NOW_SAVED'      , TRANSLATE_COMMA($DATA['total_gain']));
+
+// Load main template
+LOAD_TEMPLATE("admin_optimize");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-overview.php b/0.2.1/inc/modules/admin/what-overview.php
new file mode 100644 (file)
index 0000000..7c443d6
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 07/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-overview.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Generate a simple task list or menu descriptions *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einfache Task-Liste oder Menuebeschreibungen     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Otherwise load include file 'overview-inc' (old standard overview page)
+require_once(PATH."inc/modules/admin/overview-inc.php");
+
+$JOBS_DONE = true;
+// When the admin is logging in check several things first (new jobs to complete and so on)
+if ($GLOBALS['action'] == "login")
+{
+       if (EXT_IS_ACTIVE("task"))
+       {
+               // When task extension is registered output advanced overview page
+               $JOBS_DONE = OUTPUT_ADVANCED_OVERVIEW($result_tasks); // This function is provided by the extension 'task'
+       }
+        else
+       {
+               // Output standart overview (provided by overview-inc.php)
+               $JOBS_DONE = OUTPUT_STANDARD_OVERVIEW($result_tasks);
+       }
+}
+// Do we have new jobs or not?
+if ($JOBS_DONE)
+{
+       // Generate overview of all main menus
+       global $menuDesription, $FATAL;
+       if ((is_array($menuDesription)) && (sizeof($menuDesription) > 0)) {
+               $OUT = "";
+               foreach ($menuDesription as $key=>$value)
+               {
+                       // Prepare content
+                       $content = array(
+                               'title' => $MTITLE[$key],
+                               'text'  => $value
+                       );
+
+                       // Load row template
+                       $OUT .= LOAD_TEMPLATE("admin_menu_hints_row", true, $content);
+               }
+
+               // Load base template
+               LOAD_TEMPLATE("admin_menu_hints", false, $OUT);
+       }
+} elseif (!EXT_IS_ACTIVE("task")) {
+       // List selected tasks on overview when task management is not active
+       OUTPUT_SELECTED_TASKS($_POST, $result_tasks);
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-payments.php b/0.2.1/inc/modules/admin/what-payments.php
new file mode 100644 (file)
index 0000000..9a987d7
--- /dev/null
@@ -0,0 +1,213 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 12/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-payments.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Payments (points) for confirmed mails            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verguetungen fuer bestaetigte Mails              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+global $link;
+
+if (empty($_GET['do'])) unset($_GET['do']);
+if (((empty($_POST['t_wait'])) || (empty($_POST['payment']))) && (!empty($_GET['do'])) && ($_GET['do'] == "add"))
+{
+       unset($_POST['ok']);
+}
+
+if (isset($_POST['ok']))
+{
+       $SQL = array();
+       switch ($_GET['do'])
+       {
+       case "add":
+               $SQL[] = "INSERT INTO "._MYSQL_PREFIX."_payments (time, payment, mail_title, price) VALUES ('".$_POST['t_wait']."', '".$_POST['payment']."', '".$_POST['title']."', '".$_POST['price']."')";
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_payments WHERE time='%s' LIMIT 1",
+                array($_POST['t_wait']), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Free memory
+                       $SQL[0] = "";
+                       SQL_FREERESULT($result);
+               }
+               break;
+
+       case "edit":
+               foreach ($_POST['time'] as $id=>$value)
+               {
+                       $SQL[] = "UPDATE "._MYSQL_PREFIX."_payments SET time='".$value."', payment='".$_POST['pay'][$id]."', price='".$_POST['price'][$id]."', mail_title='".$_POST['title'][$id]."' WHERE id='".$id."' LIMIT 1";
+               }
+               break;
+
+       case "del":
+               foreach ($_POST['id'] as $id=>$value)
+               {
+                       $SQL[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_payments WHERE id='".$id."' LIMIT 1";
+               }
+               break;
+       }
+       // Daten abspeichern
+       if ((count($SQL) > 0) || (!empty($SQL[0])))
+       {
+               foreach ($SQL as $s)
+               {
+                       if (!empty($s))
+                       {
+                               // Only run non-empty strings
+                               $result = SQL_QUERY(trim($s), __FILE__, __LINE__);
+                               if (empty($content))
+                               {
+                                       if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1)
+                                       {
+                                               $content = "<SPAN class=\"admin_done\">".SETTINGS_SAVED."</SPAN>";
+                                       }
+                                        else
+                                       {
+                                               $content = "<SPAN class=\"admin_failed\">".SETTINGS_NOT_SAVED."</SPAN>";
+                                       }
+                               }
+                       }
+               }
+       }
+        else
+       {
+               $content = "<SPAN class=\"admin_failed\">".SETTINGS_NOT_SAVED."</SPAN>";
+       }
+       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+}
+ elseif ((isset($_POST['del'])) && (SELECTION_COUNT($_POST['sel']) > 0))
+{
+       // Delete entries here
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$value)
+       {
+               $result = SQL_QUERY_ESC("SELECT time, mail_title FROM "._MYSQL_PREFIX."_payments WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($time, $title) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare array for the row template
+               $content = array(
+                       'sw'    => $SW,
+                       'id'    => $id,
+                       'time'  => $time,
+                       'title' => $title,
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("admin_del_payments_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__PAYMENT_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_del_payments");
+}
+ elseif ((isset($_POST['edit'])) && (SELECTION_COUNT($_POST['sel']) > 0))
+{
+       // Edit entries
+       $SW = 2; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$value)
+       {
+               $result = SQL_QUERY_ESC("SELECT time, payment, mail_title, price FROM "._MYSQL_PREFIX."_payments WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($time, $pay, $title, $price) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Prepare array for the row template
+               $content = array(
+                       'sw'    => $SW,
+                       'id'    => $id,
+                       'time'  => $time,
+                       'title' => $title,
+                       'pay'   => $pay,
+                       'price' => $price,
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("admin_edit_payments_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__PAYMENT_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_edit_payments");
+}
+ else
+{
+       // Referral levels
+       $result = SQL_QUERY("SELECT id, time, payment, mail_title, price FROM "._MYSQL_PREFIX."_payments ORDER BY time", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Make referral levels editable and deletable
+               $SW = 2; $OUT = "";
+
+               // List already existing categories for editing
+               while (list($id, $time, $pay, $title, $price) = SQL_FETCHROW($result))
+               {
+                       $pay   = TRANSLATE_COMMA($pay);
+                       $price = TRANSLATE_COMMA($price);
+
+                       // Prepare array for the row template
+                       $content = array(
+                               'sw'    => $SW,
+                               'id'    => $id,
+                               'time'  => $time,
+                               'title' => $title,
+                               'pay'   => $pay,
+                               'price' => $price,
+                       );
+
+                       // Load row template and switch colors
+                       $OUT .= LOAD_TEMPLATE("admin_payments_list_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__PAYMENT_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_list_payments");
+       }
+
+       // Form for adding new referral levels
+       LOAD_TEMPLATE("admin_add_payment");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-refbanner.php b/0.2.1/inc/modules/admin/what-refbanner.php
new file mode 100644 (file)
index 0000000..9b0b8fa
--- /dev/null
@@ -0,0 +1,179 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 07/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-refbanner.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Manage all referral banner                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Banner fuer die Ref-Links verwalten         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+global $link;
+
+$SEL = 0;
+if ((empty($_POST['url'])) || (empty($_POST['alternate'])))
+{
+       unset($_POST['ok']);
+}
+if (!empty($_POST['sel'])) $SEL = SELECTION_COUNT($_POST['sel']);
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (isset($_POST['ok']))
+{
+       // Fix older calls from add-new-banner-form
+       if (empty($_GET['mode'])) $_GET['mode'] = "add";
+       $SQL = "";
+       switch ($_GET['mode'])
+       {
+       case "add":
+               // Check if banner is already added
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_refbanner WHERE url='%s' LIMIT 1",
+                array($_POST['url']), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 0)
+               {
+                       // Add banner
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_refbanner (url, alternate, visible)
+VALUES ('%s', '%s', '%s')",
+ array($_POST['url'], $_POST['alternate'], $_POST['visible']), __FILE__, __LINE__);
+               }
+                else
+               {
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
+               break;
+
+       case "edit": // Update banner
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       // Secure ID
+                       $id = bigintval($id);
+
+                       // Update entry
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_refbanner SET url='%s', alternate='%s', visible='%s' WHERE id=%d LIMIT 1",
+                        array(stripslashes($_POST['url'][$id]), $_POST['alternate'][$id], $_POST['visible'], $id), __FILE__, __LINE__);
+               }
+               break;
+       }
+       if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1)
+       {
+               $content = "<SPAN class=\"admin_done\">".SETTINGS_SAVED."</SPAN>";
+       }
+        else
+       {
+               $content = "<SPAN class=\"admin_failed\">".SETTINGS_NOT_SAVED."</SPAN>";
+       }
+       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+}
+ elseif (($SEL > 0) && (isset($_POST['edit'])))
+{
+       // Edit banner
+       $SW = ""; $OUT = "";
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               // Load data
+               $result = SQL_QUERY_ESC("SELECT url, alternate, visible FROM "._MYSQL_PREFIX."_refbanner WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+               list($url, $alt, $vis) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Preapre data for the row
+               $content = array(
+                       'sw'  => $SW,
+                       'id'  => $id,
+                       'url' => $url,
+                       'alt' => $alt,
+                       'vis' => ADD_SELECTION("yn", $vis   , "visible"),
+               );
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_refbanner_edit_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__BANNER_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("admin_refbanner_edit");
+}
+ else
+{
+       if (($SEL > 0) && (isset($_POST['del'])))
+       {
+               // Delete banner
+               foreach ($_POST['sel'] as $id=>$sel)
+               {
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_refbanner WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+               }
+       }
+
+       // Referral levels
+       $result = SQL_QUERY("SELECT id, url, alternate, visible, counter, clicks FROM "._MYSQL_PREFIX."_refbanner ORDER BY url", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Make referral banner editable and deletable
+               $SW = 2; $OUT = "";
+               while (list($id, $url, $alt, $vis, $cntr, $clks) = SQL_FETCHROW($result))
+               {
+                       // Preapre data for the row
+                       $content = array(
+                               'sw'  => $SW,
+                               'id'  => $id,
+                               'url' => $url,
+                               'alt' => $alt,
+                               'vis' => TRANSLATE_YESNO($vis),
+                               'cnt' => $cntr,
+                               'clx' => $clks
+                       );
+
+                       // Load row template and switch color
+                       $OUT .= LOAD_TEMPLATE("admin_refbanner_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__BANNER_ROWS', $OUT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_refbanner");
+       }
+
+       // Form for adding new referral levels
+       LOAD_TEMPLATE("admin_add_banner");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-repair_amenu.php b/0.2.1/inc/modules/admin/what-repair_amenu.php
new file mode 100644 (file)
index 0000000..9b6c69d
--- /dev/null
@@ -0,0 +1,83 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/25/2004 *
+ * ================                             Last change: 02/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-repair_amenu.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Repair admin menu weight                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Menuegewichtigung reparieren                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+global $link;
+$ACTIONS = array();
+// First fix all main menus (what='')...
+$result_fix = SQL_QUERY("SELECT id, action FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' AND action != 'logout' ORDER BY sort ASC", __FILE__, __LINE__);
+$cnt = 0; $REP = 0;
+while(list($id, $act) = SQL_FETCHROW($result_fix))
+{
+       // Store act value for later usage in sorting sub menus
+       $ACTIONS[] = $act;
+
+       // Fix weight
+       $result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='".$cnt."' WHERE id='".$id."' LIMIT 1", __FILE__, __LINE__);
+       $REP += SQL_AFFECTEDROWS();
+
+       // Count one up
+       $cnt++;
+}
+// Set logout weight to 999
+$result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='999' WHERE act='logout' AND what='' LIMIT 1", __FILE__, __LINE__);
+
+// Now sort every each menu
+foreach ($ACTIONS as $act)
+{
+       $result_fix = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE act='".$act."' AND what != '' ORDER BY sort", __FILE__, __LINE__);
+       $cnt = 1;
+       while (list($id) = SQL_FETCHROW($result_fix))
+       {
+               // Fix weight
+               $result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='".$cnt."' WHERE id='".$id."' LIMIT 1", __FILE__, __LINE__);
+               $REP += SQL_AFFECTEDROWS();
+
+               // Count one up
+               $cnt++;
+       }
+}
+
+// Repair finished
+LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_done\">".ADMIN_REPAIR_ENTRIES_FIXED_1.$REP.ADMIN_REPAIR_ENTRIES_FIXED_2."</FONT>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-repair_amnu.php b/0.2.1/inc/modules/admin/what-repair_amnu.php
new file mode 100644 (file)
index 0000000..639ddf2
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/25/2004 *
+ * ================                             Last change: 02/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-repair_amenu.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Repair admin menu weight                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Menuegewichtigung reparieren                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+global $link;
+$ACTIONs = array();
+// First fix all main menus (what='')...
+$result_fix = SQL_QUERY("SELECT id, action FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' AND action != 'logout' ORDER BY sort ASC", __FILE__, __LINE__);
+$cnt = 0; $REP = 0;
+while(list($id, $act) = SQL_FETCHROW($result_fix))
+{
+       // Store action value for later usage in sorting sub menus
+       $ACTIONs[] = $act;
+
+       // Fix weight
+       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='%s' WHERE id=%d LIMIT 1",
+        array($cnt, bigintval($id)), __FILE__, __LINE__);
+       $REP += SQL_AFFECTEDROWS();
+
+       // Count one up
+       $cnt++;
+}
+
+// Free memory
+SQL_FREERESULT($result_fix);
+
+// Set logout weight to 999
+$result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='999' WHERE action='logout' AND what='' LIMIT 1", __FILE__, __LINE__);
+
+// Now sort every each menu
+foreach ($ACTIONs as $act)
+{
+       $result_fix = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND what != '' ORDER BY sort",
+        array($act), __FILE__, __LINE__);
+       $cnt = 1;
+       while (list($id) = SQL_FETCHROW($result_fix))
+       {
+               // Fix weight
+               $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='%s' WHERE id=%d LIMIT 1",
+                array($cnt, bigintval($id)), __FILE__, __LINE__);
+               $REP += SQL_AFFECTEDROWS();
+
+               // Count one up
+               $cnt++;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_fix);
+}
+
+// Repair finished
+LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_done\">".ADMIN_REPAIR_ENTRIES_FIXED_1.$REP.ADMIN_REPAIR_ENTRIES_FIXED_2."</FONT>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-repair_cats.php b/0.2.1/inc/modules/admin/what-repair_cats.php
new file mode 100644 (file)
index 0000000..eb9be4c
--- /dev/null
@@ -0,0 +1,90 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/24/2004 *
+ * ================                             Last change: 04/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-repair_cats.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Repairs category selections                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Repariert Kategorieauswahlen                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_cats ORDER BY userid", __FILE__, __LINE__);
+if (SQL_NUMROWS($result) > 0)
+{
+       // Check if found userid is also found in user_data table
+       $REMOVED = 0; // Nothing is removed for now... ;-)
+       while (list($uid) = SQL_FETCHROW($result))
+       {
+               $result_user = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array(bigintval($uid)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result_user) == 0)
+               {
+                       // Ok, we found something to remove
+                       $result_remove = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_cats WHERE userid=%d",
+                        array(bigintval($uid)), __FILE__, __LINE__);
+                       $REMOVED += SQL_AFFECTEDROWS();
+               }
+                else
+               {
+                       // Free memory
+                       SQL_FREERESULT($result_user);
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       if ($REMOVED > 0)
+       {
+               // Entries repaired
+               $content = "<FONT class=\"admin_done\">".ADMIN_REPAIR_ENTRIES_FIXED_1.$REMOVED.ADMIN_REPAIR_ENTRIES_FIXED_2."</FONT>";
+       }
+        else
+       {
+               // Nothing repaired
+               $content = "<FONT class=\"admin_failed\">".ADMIN_REPAIR_NOTHING_FIXED."</FONT>";
+       }
+}
+ else
+{
+       // No category selections found, no members registered?
+       $content = "<STRONG class=\'admin_failed\">".ADMIN_REPAIR_CATS_NOTHING."</STRONG>";
+}
+
+// Load template
+LOAD_TEMPLATE("admin_settings_saved", false, $content);
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-repair_gmenu.php b/0.2.1/inc/modules/admin/what-repair_gmenu.php
new file mode 100644 (file)
index 0000000..88f7b3a
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/25/2004 *
+ * ================                             Last change: 02/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-repair_gmenu.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Repair guest menu weight                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Menuegewichtigung reparieren                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$ACTIONS = array();
+// First fix all main menus (what='')...
+$result_fix = SQL_QUERY("SELECT id, action FROM "._MYSQL_PREFIX."_guest_menu WHERE what='' AND action != 'logout' ORDER BY sort ASC", __FILE__, __LINE__);
+$cnt = 0; $REP = 0;
+while(list($id, $act) = SQL_FETCHROW($result_fix))
+{
+       // Store act value for later usage in sorting sub menus
+       $ACTIONS[] = $act;
+
+       // Fix weight
+       $result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_guest_menu SET sort='".$cnt."' WHERE id='".$id."' LIMIT 1", __FILE__, __LINE__);
+       $REP += SQL_AFFECTEDROWS();
+
+       // Count one up
+       $cnt++;
+}
+// Set logout weight to 999
+$result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_guest_menu SET sort='999' WHERE act='logout' AND what='' LIMIT 1", __FILE__, __LINE__);
+
+// Now sort every each menu
+foreach ($ACTIONS as $act)
+{
+       $result_fix = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_guest_menu WHERE act='".$act."' AND what != '' ORDER BY sort", __FILE__, __LINE__);
+       $cnt = 1;
+       while (list($id) = SQL_FETCHROW($result_fix))
+       {
+               // Fix weight
+               $result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_guest_menu SET sort='".$cnt."' WHERE id='".$id."' LIMIT 1", __FILE__, __LINE__);
+               $REP += SQL_AFFECTEDROWS();
+
+               // Count one up
+               $cnt++;
+       }
+}
+
+// Repair finished
+LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_done\">".ADMIN_REPAIR_ENTRIES_FIXED_1.$REP.ADMIN_REPAIR_ENTRIES_FIXED_2."</FONT>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-repair_gmnu.php b/0.2.1/inc/modules/admin/what-repair_gmnu.php
new file mode 100644 (file)
index 0000000..e2cc8ee
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/25/2004 *
+ * ================                             Last change: 02/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-repair_gmenu.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Repair guest menu weight                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Menuegewichtigung reparieren                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$ACTIONS = array();
+// First fix all main menus (what='')...
+$result_fix = SQL_QUERY("SELECT id, action FROM "._MYSQL_PREFIX."_guest_menu WHERE what='' AND action != 'logout' ORDER BY sort ASC", __FILE__, __LINE__);
+$cnt = 0; $REP = 0;
+while(list($id, $act) = SQL_FETCHROW($result_fix))
+{
+       // Store action value for later usage in sorting sub menus
+       $ACTIONS[] = $act;
+
+       // Fix weight
+       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_guest_menu SET sort='%s' WHERE id=%d LIMIT 1",
+        array(bigintval($cnt), bigintval($id)), __FILE__, __LINE__);
+       $REP += SQL_AFFECTEDROWS();
+
+       // Count one up
+       $cnt++;
+}
+
+// Free memory
+SQL_FREERESULT($result_fix);
+
+// Set logout weight to 999
+$result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_guest_menu SET sort='999' WHERE action='logout' AND what='' LIMIT 1", __FILE__, __LINE__);
+
+// Now sort every each menu
+foreach ($ACTIONS as $act)
+{
+       $result_fix = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_guest_menu WHERE action='%s' AND what != '' ORDER BY sort",
+        array($act), __FILE__, __LINE__);
+
+       $cnt = 1;
+       while (list($id) = SQL_FETCHROW($result_fix))
+       {
+               // Fix weight
+               $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_guest_menu SET sort='%s' WHERE id=%d LIMIT 1",
+                array(bigintval($cnt), bigintval($id)), __FILE__, __LINE__);
+               $REP += SQL_AFFECTEDROWS();
+
+               // Count one up
+               $cnt++;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_fix);
+}
+
+// Repair finished
+LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_done\">".ADMIN_REPAIR_ENTRIES_FIXED_1.$REP.ADMIN_REPAIR_ENTRIES_FIXED_2."</FONT>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-repair_mmenu.php b/0.2.1/inc/modules/admin/what-repair_mmenu.php
new file mode 100644 (file)
index 0000000..a7320f7
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/25/2004 *
+ * ================                             Last change: 02/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-repair_mmenu.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Repair member menu weight                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Menuegewichtigung reparieren                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$ACTIONS = array();
+// First fix all main menus (what='')...
+$result_fix = SQL_QUERY("SELECT id, action FROM "._MYSQL_PREFIX."_member_menu WHERE what='' AND action != 'logout' ORDER BY sort ASC", __FILE__, __LINE__);
+$cnt = 0; $REP = 0;
+while(list($id, $act) = SQL_FETCHROW($result_fix))
+{
+       // Store action value for later usage in sorting sub menus
+       $ACTIONS[] = $act;
+
+       // Fix weight
+       $result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='".$cnt."' WHERE id='".$id."' LIMIT 1", __FILE__, __LINE__);
+       $REP += SQL_AFFECTEDROWS();
+
+       // Count one up
+       $cnt++;
+}
+// Set logout weight to 999
+$result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='999' WHERE action='logout' AND what='' LIMIT 1", __FILE__, __LINE__);
+
+// Now sort every each menu
+foreach ($ACTIONS as $act)
+{
+       $result_fix = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE action='".$act."' AND what != '' ORDER BY sort", __FILE__, __LINE__);
+       $cnt = 1;
+       while (list($id) = SQL_FETCHROW($result_fix))
+       {
+               // Fix weight
+               $result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='".$cnt."' WHERE id='".$id."' LIMIT 1", __FILE__, __LINE__);
+               $REP += SQL_AFFECTEDROWS();
+
+               // Count one up
+               $cnt++;
+       }
+}
+
+// Repair finished
+LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_done\">".ADMIN_REPAIR_ENTRIES_FIXED_1.$REP.ADMIN_REPAIR_ENTRIES_FIXED_2."</FONT>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-repair_mmnu.php b/0.2.1/inc/modules/admin/what-repair_mmnu.php
new file mode 100644 (file)
index 0000000..5de5a08
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/25/2004 *
+ * ================                             Last change: 02/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-repair_mmenu.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Repair member menu weight                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Menuegewichtigung reparieren                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$ACTIONS = array();
+// First fix all main menus (what='')...
+$result_fix = SQL_QUERY("SELECT id, action FROM "._MYSQL_PREFIX."_member_menu WHERE what='' AND action != 'logout' ORDER BY sort ASC", __FILE__, __LINE__);
+$cnt = 0; $REP = 0;
+while(list($id, $act) = SQL_FETCHROW($result_fix))
+{
+       // Store action value for later usage in sorting sub menus
+       $ACTIONS[] = $act;
+
+       // Fix weight
+       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='%s' WHERE id=%d LIMIT 1",
+        array(bigintval($cnt), bigintval($id)), __FILE__, __LINE__);
+       $REP += SQL_AFFECTEDROWS();
+
+       // Count one up
+       $cnt++;
+}
+
+// Free memory
+SQL_FREERESULT($result_fix);
+
+// Set logout weight to 999
+$result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='999' WHERE action='logout' AND what='' LIMIT 1", __FILE__, __LINE__);
+
+// Now sort every each menu
+foreach ($ACTIONS as $act)
+{
+       $result_fix = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE action='%s' AND what != '' ORDER BY sort",
+        array($act), __FILE__, __LINE__);
+       $cnt = 1;
+       while (list($id) = SQL_FETCHROW($result_fix))
+       {
+               // Fix weight
+               $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='%s' WHERE id=%d LIMIT 1",
+                array(bigintval($cnt), bigintval($id)), __FILE__, __LINE__);
+               $REP += SQL_AFFECTEDROWS();
+
+               // Count one up
+               $cnt++;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_fix);
+}
+
+// Repair finished
+LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_done\">".ADMIN_REPAIR_ENTRIES_FIXED_1.$REP.ADMIN_REPAIR_ENTRIES_FIXED_2."</FONT>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-send_bonus.php b/0.2.1/inc/modules/admin/what-send_bonus.php
new file mode 100644 (file)
index 0000000..fccbb06
--- /dev/null
@@ -0,0 +1,244 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 08/05/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-send_bonus.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Send out bonus mails to all members              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : An alle Mitglieder Bonus-Mails verschicken       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif (!EXT_IS_ACTIVE("order")) {
+       ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "order"));
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+$WHERE = " WHERE visible='Y'";
+if (is_admin()) $WHERE = "";
+$EXT_HTML = EXT_IS_ACTIVE("html_mail");
+if (empty($_GET['mode'])) $_GET['mode'] = "select";
+
+if (isset($_POST['ok']))
+{
+       // Check if category and number of receivers is okay
+       $CAT_TABS = "%s"; $CAT_WHERE = ""; $cat = "";
+       if ($_POST['cat'] > 0)
+       {
+               // Select category
+               $CAT_TABS  = "LEFT JOIN "._MYSQL_PREFIX."_user_cats AS c ON d.userid=c.userid";
+               $cat = bigintval($_POST['cat']);
+               $CAT_WHERE = " AND c.cat_id=%d";
+       }
+       if (GET_EXT_VERSION("holiday") >= "0.1.3")
+       {
+               // Add something for the holiday extension
+               $CAT_WHERE .= " AND d.holiday_active='N'";
+       }
+
+       if (($EXT_HTML) && ($_GET['mode'] == "html"))
+       {
+               // Only include HTML receivers
+               $result = SQL_QUERY_ESC("SELECT d.userid FROM "._MYSQL_PREFIX."_user_data AS d ".$CAT_TABS." WHERE d.status='CONFIRMED' AND d.html='Y'".$CAT_WHERE." ORDER BY d.%s %s LIMIT %s",
+                array($cat, $CONFIG['order_select'], $CONFIG['order_mode'], bigintval($_POST['receiver'])), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Include all
+               $result = SQL_QUERY_ESC("SELECT d.userid FROM "._MYSQL_PREFIX."_user_data AS d ".$CAT_TABS." WHERE d.status='CONFIRMED'".$CAT_WHERE." ORDER BY d.%s %s LIMIT %s",
+                array($cat, $CONFIG['order_select'], $CONFIG['order_mode'], bigintval($_POST['receiver'])), __FILE__, __LINE__);
+       }
+       if ((SQL_NUMROWS($result) == $_POST['receiver']) && ($_POST['receiver'] > 0))
+       {
+               $RECEIVER = "";
+               while (list($REC) = SQL_FETCHROW($result))
+               {
+                       // Add receiver when not empty
+                       if (!empty($REC)) $RECEIVER .= ";".$REC;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               $RECEIVER = substr($RECEIVER, 1);
+
+               // Gettings points is oka, so we can add $USED later from
+               if ($EXT_HTML)
+               {
+                       $HTML = "N";
+                       if ($_GET['mode'] == "html") $HTML = "Y";
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus
+(subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, mails_sent, html_msg)
+VALUES ('%s', '%s', '%s', '%s', '%s', 'NEW', UNIX_TIMESTAMP(), '%s', '%s', '%s', '%s', '%s')",
+ array(
+       $_POST['subject'],
+       addslashes($_POST['text']),
+       $RECEIVER,
+       $_POST['points'],
+       $_POST['seconds'],
+       $_POST['url'],
+       $cat,
+       SELECTION_COUNT(explode(";", $RECEIVER)),
+       bigintval($_POST['receiver']),
+       $HTML
+), __FILE__, __LINE__);
+               }
+                else
+               {
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_bonus
+(subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, mails_sent)
+VALUES ('%s', '%s', '%s', '%s', '%s', 'NEW', UNIX_TIMESTAMP(), '%s', '%s', '%s', '%s')",
+ array(
+       $_POST['subject'],
+       addslashes($_POST['text']),
+       $RECEIVER,
+       $_POST['points'],
+       $_POST['seconds'],
+       $_POST['url'],
+       $cat,
+       SELECTION_COUNT(explode(";", $RECEIVER)),
+       bigintval($_POST['receiver']),
+), __FILE__, __LINE__);
+               }
+
+               // Mail inserted into bonus pool
+               LOAD_TEMPLATE ("admin_settings_saved", false, ADMIN_BONUS_SEND);
+       }
+        else
+       {
+               // More entered than can be reached!
+               LOAD_TEMPLATE ("admin_settings_saved", false, ADMIN_MORE_SELECTED);
+       }
+       if (!empty($URL))
+       {
+               // Redirect to requested URL
+               LOAD_URL($URL);
+       }
+} else {
+       $result = SQL_QUERY("SELECT id, cat FROM "._MYSQL_PREFIX."_cats".$WHERE." ORDER BY sort", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               $MORE = "";
+               if ($_GET['mode'] == "html") $MORE = " AND html='Y'";
+               if (GET_EXT_VERSION("holiday") >= "0.1.3")
+               {
+                       // Add something for the holiday extension
+                       $MORE .= " AND holiday_active='N'";
+               }
+
+               $result_all = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND receive_mails > 0".$MORE, __FILE__, __LINE__);
+               define('__ALL_VALUE', SQL_NUMROWS($result_all));
+               // Initialize array...
+               $CATS = array(
+                       'id'   => array(),
+                       'name' => array(),
+                       'uids' => array()
+               );
+               // ... and begin loading stuff
+               while (list($id, $cat) = SQL_FETCHROW($result))
+               {
+                       $CATS['id'][]   = $id;
+                       $CATS['name'][] = $cat;
+                       $result_uids = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_cats WHERE cat_id=%d",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       $uid_cnt = "0";
+                       while (list($ucat) = SQL_FETCHROW($result_uids))
+                       {
+                               $result_ver = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data
+WHERE userid=%d AND status='CONFIRMED' AND receive_mails > 0".$MORE." LIMIT 1",
+ array(bigintval($ucat)), __FILE__, __LINE__);
+                               $uid_cnt += SQL_NUMROWS($result_ver);
+
+                               // Free memory
+                               SQL_FREERESULT($result_ver);
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result_uids);
+                       $CATS['uids'][] = $uid_cnt;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               if (!empty($MSG))
+               {
+                       // We got system message so we drop it out to the user
+                       LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
+               }
+               if ($EXT_HTML)
+               {
+                       // If HTML extension is active
+                       define('__HTML_SELECT',  LOAD_TEMPLATE("admin_send_bonus_html", true));
+               }
+                else
+               {
+                       // And if not
+                       define('__HTML_SELECT', "");
+               }
+
+               // Generate options
+               $OUT = "";
+               foreach ($CATS['id'] as $key=>$value)
+               {
+                       if (strlen($CATS['name'][$key]) > 20) $CATS['name'][$key] = substr($CATS['name'][$key], 0, 17)."...";
+                       $OUT .= "      <OPTION value=\"".$value."\">".$CATS['name'][$key]." (".$CATS['uids'][$key]." ".USER_IN_CAT.")</OPTION>\n";
+               }
+               define('__OPTION_LINES', $OUT);
+
+               // Store send mode
+               define('__MODE', $_GET['mode']);
+
+               // Select template
+               switch($_GET['mode'])
+               {
+               case "html":   // HTML mails
+               case "normal": // Normal mails
+                       $template = "admin_send_bonus_form";
+                       break;
+
+               case "select": // Selection
+                       $template = "admin_send_bonus_select";
+                       break;
+               }
+
+               // Load template
+               LOAD_TEMPLATE($template);
+       }
+        else
+       {
+               // No cateogries are defined yet
+               OUTPUT_HTML ("<STRONG><SPAN class=\"member_failed\">".MEMBER_NO_CATS."</SPAN></STRONG>");
+       }
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-send_newsletter.php b/0.2.1/inc/modules/admin/what-send_newsletter.php
new file mode 100644 (file)
index 0000000..8f85d13
--- /dev/null
@@ -0,0 +1,101 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 03/04/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-send_newsletter.php                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Handle HTML or text newsletter                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verwalten von HTML- oder Text-Newslettern        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if (isset($_POST['ok']))
+{
+       $result = SQL_QUERY("SELECT userid, email FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND nl_receive='Y' ORDER BY userid", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Members are available so we can send out the newsletter!
+               while (list($id, $email) = SQL_FETCHROW($result))
+               {
+                       // Construct mail...
+                       $template = "newsletter";
+
+                       // Check for extension and sending-mode
+                       if (!EXT_IS_ACTIVE("html_mail", true) && ($_POST['mode'] == "html"))
+                       {
+                               // Set mode to text mode
+                               $_POST['mode'] == "text";
+                       }
+                        elseif ($_POST['mode'] == "html")
+                       {
+                               // Set HTML templates
+                               $template = "newsletter_html";
+                       }
+
+                       // Compile message
+                       $_POST['text'] = stripslashes(COMPILE_CODE($_POST['text']));
+
+                       // Load template
+                       $msg = LOAD_EMAIL_TEMPLATE($template, $_POST['text'], $id);
+
+                       // ... and send it away!
+                       SEND_NEWSLETTER($email, $_POST['subject'], $msg, $_POST['mode']);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Output message
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NL_SEND_DONE);
+       }
+}
+ else
+{
+       // Copy data into constants for the template and load it
+       define('_DATESTAMP', MAKE_DATETIME(time(), "3"));
+       if (EXT_IS_ACTIVE("html_mail"))
+       {
+               // Load template with HTML mode
+               LOAD_TEMPLATE("admin_newsletter");
+       }
+        else
+       {
+               // Load template with only text mode
+               LOAD_TEMPLATE("admin_newsletter_nohtml");
+       }
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-stats.php b/0.2.1/inc/modules/admin/what-stats.php
new file mode 100644 (file)
index 0000000..cc11671
--- /dev/null
@@ -0,0 +1,3 @@
+<?php
+// OBSOLETE!
+?>
diff --git a/0.2.1/inc/modules/admin/what-stats_mods.php b/0.2.1/inc/modules/admin/what-stats_mods.php
new file mode 100644 (file)
index 0000000..5351690
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/27/2004 *
+ * ================                             Last change: 08/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-stats_mods.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Module statistics                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Modul-Statistiken                                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// If var is empty set it to empty
+if (empty($_GET['mod'])) $_GET['mod'] = "";
+
+// Check if module was selected
+if (($_GET['mod'] == "index") || ($_GET['mod'] == "login"))
+{
+       // Select menu system
+       $mod = "";
+       switch ($_GET['mod'])
+       {
+               case "index": $mod = "guest" ; break;
+               case "login": $mod = "member"; break;
+       }
+
+       // Load module's detail statistic
+       $result = SQL_QUERY("SELECT action, title, counter FROM "._MYSQL_PREFIX."_".$mod."_menu WHERE what != '' ORDER BY counter DESC", __FILE__, __LINE__);
+       $SW = 2; $OUT = "";
+       while(list($act, $title, $clicks) = SQL_FETCHROW($result))
+       {
+               // Prepare array for the template
+               $content = array(
+                       'sw'     => $SW,
+                       'title'  => $title,
+                       'action' => $act,
+                       'clicks' => $clicks,
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("admin_mods_stats2_row", true, $content);
+
+               // Switch colors
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__MODS_ROWS', $OUT);
+
+       // Load final template
+       LOAD_TEMPLATE("admin_mods_stats2");
+}
+ else
+{
+       // Load module statics
+       $result = SQL_QUERY("SELECT module, title, clicks FROM "._MYSQL_PREFIX."_mod_reg ORDER BY clicks DESC, module", __FILE__, __LINE__);
+       $SW = 2; $OUT = "";
+       while(list($mod, $title, $clicks) = SQL_FETCHROW($result))
+       {
+               if (empty($title)) $title = "---";
+               if (($mod == "index") || ($mod == "login"))
+               {
+                       // Add link to detail statistics
+                       $mod = "<STRONG><A href=\"".URL."/modules.php?module=admin&amp;what=stats_mods&amp;mod=".$mod."\">".$mod."</A></STRONG>";
+               }
+               // Prepare array for the template
+               $content = array(
+                       'sw'     => $SW,
+                       'title'  => $title,
+                       'mod'    => $mod,
+                       'clicks' => $clicks,
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("admin_mods_stats_row", true, $content);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       define('__MODS_ROWS', $OUT);
+
+       // Load final template
+       LOAD_TEMPLATE("admin_mods_stats");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-sub_points.php b/0.2.1/inc/modules/admin/what-sub_points.php
new file mode 100644 (file)
index 0000000..d081977
--- /dev/null
@@ -0,0 +1,144 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/23/2003 *
+ * ===============                              Last change: 09/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-sub_points.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Add manually points to a user                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Manuell einem Mitglied Punkte gutschreiben       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Fix a notice
+if (!isset($_GET['u_id'])) $_GET['u_id'] = "";
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if ($_GET['u_id'] == "all")
+{
+       // Add points to all accounts
+       define('__POINTS_VALUE', $_POST['points']);
+       if ((isset($_POST['ok'])) && ($_POST['points'] > 0))
+       {
+               $result_main = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' ORDER BY userid", __FILE__, __LINE__);
+               while (list($uid) = SQL_FETCHROW($result_main))
+               {
+                       // User ID found in URL so we use this give him some credits
+                       $result = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                        array(bigintval($uid)), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Selected user does exist
+                               list($sname, $fname, $email) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               if ((isset($_POST['ok'])) && (!empty($_POST['points'])))
+                               {
+                                       // Ok, add points to used points and send an email to him...
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+                                        array(bigintval($_POST['points'], bigintval($uid))), __FILE__, __LINE__);
+
+                                       // Load message and send it away
+                                       $msg = LOAD_EMAIL_TEMPLATE("sub-points", $_POST['reason'], $uid);
+                                       SEND_EMAIL($email, ADMIN_SUB_SUBJ, $msg);
+                               }
+                       }
+               }
+               // Free memory
+               SQL_FREERESULT($result_main);
+
+               // Output message
+               LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_ALL_POINTS_SUBTRACTED);
+       }
+        else
+       {
+               // Display form add points
+               LOAD_TEMPLATE("admin_sub_points_all");
+       }
+}
+ elseif (!empty($_GET['u_id']))
+{
+       // User ID found in URL so we use this give him some credits
+       $result = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+        array(bigintval($_GET['u_id'])),__FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Selected user does exist
+               list($sname, $fname, $email) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               if ((isset($_POST['ok'])) && (!empty($_POST['points'])))
+               {
+                       // Ok, add to used points and send an email to him...
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+                        array(bigintval($_POST['points']), bigintval($_GET['u_id'])), __FILE__, __LINE__);
+
+                       // Update mediadata as well
+                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                       {
+                               // Update database
+                               MEDIA_UPDATE_ENTRY(array("total_points"), "sub", bigintval($_POST['points']));
+                       }
+
+                       // Remember points in template
+                       define('__POINTS_VALUE', bigintval($_POST['points']));
+
+                       // Load email and send it away
+                       $msg = LOAD_EMAIL_TEMPLATE("sub-points", $_POST['reason'], $_GET['u_id']);
+                       SEND_EMAIL($email, ADMIN_SUB_SUBJ, $msg);
+
+                       // Output message
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_POINTS_SUBTRACTED);
+               }
+                else
+               {
+                       // Opps, missing form here
+                       define('__USER_VALUE', "<A href=\"".CREATE_EMAIL_LINK($email, "user_data")."\">".$sname." ".$fname."</A>");
+                       define('__UID_VALUE', $_GET['u_id']);
+                       LOAD_TEMPLATE("admin_sub_points");
+               }
+       }
+        else
+       {
+               // User not found!
+               OUTPUT_HTML ("<STRONG class=\"admin_failed\">".ADMIN_MEMBER_404_1.$_GET['u_id'].ADMIN_MEMBER_404_2."</STRONG>");
+       }
+}
+ else
+{
+       // Output selection form with all confirmed user accounts listed
+       ADD_MEMBER_SELECTION_BOX(true);
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-theme_check.php b/0.2.1/inc/modules/admin/what-theme_check.php
new file mode 100644 (file)
index 0000000..83aac95
--- /dev/null
@@ -0,0 +1,167 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/22/2004 *
+ * ================                             Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-extentions.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Extension management                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Erweiterungen-Management                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+global $CACHE, $KEEP_ACTIVE, $CACHE_FILE;
+
+// Normally we want the overview of all registered theme_check
+$mode = "overview";
+$SEL = "0";
+
+// Get response from our server
+$response = MXCHANGE_OPEN("check-themes.php");
+
+// Are theme_check found?
+if (($response[sizeof($response) - 1] == "[EOF]") && ($response[0] != "[EOF]"))
+{
+       // Ok, mark found and create the array
+       $THEMES = array(
+               'fname'  => array(), // File names
+               'fsize'  => array(), // File size
+               'fctime' => array(), // File creation timestamp
+               'infos'  => array(), // File informations (maybe loaded!)
+               'ver'    => array(), // Version number
+               'cver'   => array(), // Current version number
+       );
+
+       // Get count of theme_check for validation
+       $count = trim($response[sizeof($response) - 2]);
+       foreach ($response as $idx=>$value)
+       {
+               $value = str_replace("\n", "", $value); $ver = "";
+
+               // Leave loop when data is invalid or EOF?
+               if ((substr($value, 0, 6) == "theme-") && (substr($value, -4) == ".zip"))
+               {
+                       $name = substr($value, 6, -4);
+                       $file = PATH."themes/".$name."/theme.php";
+                       $ver = trim(substr($response[$idx + 3], 4));
+
+                       // Load version
+                       $result = SQL_QUERY_ESC("SELECT theme_ver FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' LIMIT 1",
+                        array($name), __FILE__, __LINE__);
+                       list($cver) = SQL_FETCHROW($result);
+                       if (empty($cver)) $cver = "-.-";
+
+                       // Is the extension already installed or not?
+                       if (((SQL_NUMROWS($result) == 0) && (!file_exists($file))) || ($ver != $cver))
+                       {
+                               // No, it isn't. So let's add this one!
+                               $THEMES['fname'][]  = $name;
+                               $THEMES['fsize'][]  = $response[$idx + 1];
+                               $THEMES['fctime'][] = $response[$idx + 2];
+                               $THEMES['ver'][]    = $ver;
+                               $THEMES['cver'][]   = $cver;
+
+                               $LANG_DUMMY = explode("[nl]", $response[$idx + 4]);
+                               $LANG = array();
+                               $INFO = ADMIN_EXT_NO_INFO_FOUND;
+
+                               // Trim every data line
+                               foreach ($LANG_DUMMY as $k=>$v)
+                               {
+                                       $v = trim($v);
+                                       if (substr($v, 3) == "") $v = "---";
+                                       $LANG_DUMMY[$k] = $v;
+                                       if ($v == "xx:xx") break;
+                                       $LANG[] = $v;
+                               }
+
+                               // If language is found stop searching on matching line
+                               foreach($LANG as $search)
+                               {
+                                       if (substr($search, 0, 3) == (GET_LANGUAGE().":")) { $INFO = substr($search, 3); break; }
+                               }
+
+                               // Add informations to array
+                               $THEMES['infos'][] = $INFO;
+                       }
+               }
+       }
+
+       // Ok, themes are on our server but maybe you have already installed them?
+       if (sizeof($THEMES['fname']) > 0)
+       {
+               // Sort array (I missed ver and cver here)
+               array_pk_sort($THEMES, array("cver", "fname"), 0, 1);
+
+               // Extensions where found which are not downloaded and installed
+               $SW = 2; $OUT = ""; $TSIZE = 0;
+               foreach ($THEMES['fname'] as $idx=>$name)
+               {
+                       // Generate download link
+                       $LINK = SERVER_URL."/themes/theme-".$name.".zip";
+                       $OUT .= "<TR>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".($idx + 1).".</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\"><A href=\"".$LINK."\">".$name."</A></TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".MAKE_DATETIME($THEMES['fctime'][$idx], "2")."</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".TRANSLATE_COMMA(round($THEMES['fsize'][$idx] / 1.024) / 1000)." ".KBYTES."</TD>
+  <TD align=\"center\" class=\"switch_sw".$SW." bottom2\">".$THEMES['ver'][$idx]." (".$THEMES['cver'][$idx].")</TD>
+</TR>
+<TR>
+  <TD class=\"switch_sw".$SW." bottom2\">&nbsp;</TD>
+  <TD colspan=\"4\" class=\"switch_sw".$SW." bottom2\">
+    <FONT class=\"tiny\">".stripslashes($THEMES['infos'][$idx])."</FONT>
+  </TD>
+</TR>\n";
+                       $TSIZE += $THEMES['fsize'][$idx];
+                       $SW = 3 - $SW;
+               }
+               define('__THEMES_ROWS', $OUT);
+               define('__TKBYTES_VALUE', TRANSLATE_COMMA(round($TSIZE / 1.024) / 1000));
+               define('__TTHEME_VALUE', sizeof($THEMES['fname']));
+
+               // Load template
+               LOAD_TEMPLATE("admin_theme_list");
+       }
+        else
+       {
+               // All Themes are downloaded and installed
+               LOAD_TEMPLATE("admin_theme_installed", false, $count);
+       }
+}
+ else
+{
+       // No theme where found
+       LOAD_TEMPLATE("admin_theme_404");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-theme_edit.php b/0.2.1/inc/modules/admin/what-theme_edit.php
new file mode 100644 (file)
index 0000000..9246c4b
--- /dev/null
@@ -0,0 +1,146 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 02/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-theme_edit.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+global $CurrTheme;
+
+// Check for selected themes
+$SEL = 0;
+if (!empty($_POST['sel'])) $SEL = SELECTION_COUNT($_POST['sel']);
+if ($SEL > 0)
+{
+       $OUT = "";
+       foreach ($_POST['sel'] as $id=>$sel)
+       {
+               $SQL = "";
+               // Shall I de-/activate or delete themes?
+               if (isset($_POST['status']))
+               {
+                       // Change status
+                       if ($_POST['active'][$id] == "Y")
+                       {
+                               $SQL = "UPDATE "._MYSQL_PREFIX."_themes SET theme_active='N' WHERE id='".$id."' LIMIT 1";
+                       }
+                        else
+                       {
+                               $SQL = "UPDATE "._MYSQL_PREFIX."_themes SET theme_active='Y' WHERE id='".$id."' LIMIT 1";
+                       }
+                       $OUT = ADMIN_THEMES_UPDATED;
+               }
+                elseif (isset($_POST['del']))
+               {
+                       // Delete themes
+                       $SQL = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_themes WHERE id='".$id."' LIMIT 1";
+                       $OUT = ADMIN_THEMES_DELETED;
+               }
+
+               // Run SQL command?
+               if (!empty($SQL)) $result = SQL_QUERY($SQL, __FILE__, __LINE__);
+       }
+
+       // Output generated?
+       if (empty($OUT)) ADMIN_THEME_NO_OUTPUT;
+}
+ elseif (!empty($_GET['default_theme']))
+{
+       // Save theme
+       $POST['default_theme'] = $_GET['default_theme'];
+       @setcookie("mxchange_theme", $POST['default_theme'], (time() + 60*60*24*365), COOKIE_PATH);
+       $_COOKIE['mxchange_theme'] = $POST['default_theme'];
+       ADMIN_SAVE_SETTINGS($POST, "_config", "config='0'");
+}
+
+// Switch to testing mode
+$THEME_MODE = "test";
+
+// Generate output lines for the template
+$OUT = ""; $SW = 2;
+$result = SQL_QUERY("SELECT id, theme_path, theme_active, theme_ver FROM "._MYSQL_PREFIX."_themes ORDER BY theme_path", __FILE__, __LINE__);
+if (SQL_NUMROWS($result) > 0)
+{
+       while(list($id, $unix, $active, $ver) = SQL_FETCHROW($result))
+       {
+               // Load theme in test mode
+               require(PATH."theme/".$unix."/theme.php");
+
+               // Is the loaded theme name != current theme name?
+               $LINK = $unix;
+               if ($unix != $CurrTheme) $LINK = "<A href=\"".URL."/modules.php?module=admin&amp;what=theme_edit&amp;default_theme=".$unix."\" title=\"".ADMIN_SET_AS_NEW_THEME."\">".$unix."</A>";
+
+               // Prepare data for the row template
+               $content = array(
+                       'sw'        => $SW,
+                       'id'        => $id,
+                       'active'    => $active,
+                       'link'      => $LINK,
+                       'name'      => $THEME_NAME,
+                       'is_act'    => TRANSLATE_YESNO($active),
+                       'email'     => "<A href=\"mailto:".$THEME_EMAIL."?Subject=[Theme:] ".$THEME_NAME." (".$unix.")"."\">".$THEME_AUTHOR."</A>",
+                       'url_link'  => DEREFERER($THEME_URL),
+                       'url_title' => $THEME_URL,
+                       'ver'       => $ver,
+               );
+
+               // Load row template and switch color
+               $OUT .= LOAD_TEMPLATE("admin_theme_edit_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+ else
+{
+               // No themes found???
+       $OUT .= "<TR>
+  <TD colspan=\"7\" class=\"bottom2\" height=\"60\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, ADMIN_NO_THEMES_FOUND)."
+  </TD>
+</TR>\n";
+}
+
+define('__THEME_LIST', $OUT);
+
+// Load template
+LOAD_TEMPLATE("admin_theme_edit");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-theme_import.php b/0.2.1/inc/modules/admin/what-theme_import.php
new file mode 100644 (file)
index 0000000..aeda0ee
--- /dev/null
@@ -0,0 +1,177 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 11/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-theme_import.php                            *
+ * -------------------------------------------------------------------- *
+ * Short description : Import of new themes                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Importieren von neuen Themes                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Switch to testing mode
+$THEME_MODE = "test";
+
+// Import selected theme if not present
+if (!empty($_POST['theme']))
+{
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' LIMIT 1",
+        array($_POST['theme']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Import theme
+               $file = PATH."theme/".$_POST['theme']."/theme.php";
+               if (file_exists($file))
+               {
+                       include($file);
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_themes (theme_path, theme_active, theme_ver)
+VALUES ('%s', 'N', '%s')",
+ array($_POST['theme'], $THEME_VERSION), __FILE__, __LINE__);
+                       $msg = ADMIN_THEME_IMPORTED_1.$_POST['theme'].ADMIN_THEME_IMPORTED_2;
+               }
+                else
+               {
+                       // Include file not found!
+                       $msg = ADMIN_THEME_INC_404_1.$_POST['theme'].ADMIN_THEME_INC_404_2;
+               }
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Theme already imported
+               $msg = ADMIN_THEME_ALREADY_1.$_POST['theme'].ADMIN_THEME_ALREADY_2;
+       }
+
+       // Output message
+       LOAD_TEMPLATE("admin_settings_saved", false, $msg);
+       OUTPUT_HTML ("<BR>");
+}
+
+// Initialize array
+$THEMES = array(
+       'theme_unix'   => array(), // Unix name from filesystem
+       'theme_name'   => array(), // Title
+       'theme_author' => array(), // Theme author's name
+       'theme_email'  => array(), // Author's email address
+       'theme_url'    => array(), // URL were you can download it from
+       'theme_ver'    => array(), // Version number of theme
+);
+
+// Read directory "themes"
+$handle = opendir(PATH."theme/") or mxchange_die("Cannot read themes dir!");
+while ($dir = readdir($handle))
+{
+       // Construct absolute theme.php file name
+       $theme = PATH."theme/".$dir."/"."theme.php";
+
+       // Test it...
+       if (($dir != ".") && ($dir != "..") && (file_exists($theme)))
+       {
+               // Found a valid directory so let's load it's theme.php file
+               include($theme);
+
+               // Add found theme to array
+               $THEMES['theme_unix'][]   = $dir;
+               $THEMES['theme_name'][]   = $THEME_NAME;
+               $THEMES['theme_author'][] = $THEME_AUTHOR;
+               $THEMES['theme_email'][]  = $THEME_EMAIL;
+               $THEMES['theme_url'][]    = $THEME_URL;
+               $THEMES['theme_ver'][]    = $THEME_VERSION;
+       }
+}
+closedir($handle);
+
+// Sort array by Uni* name
+array_pk_sort($THEMES, array("theme_name"));
+
+// Generate output lines for the template
+$OUT = ""; $SW = 2;
+foreach ($THEMES['theme_unix'] as $key=>$unix)
+{
+       // Check if current theme is already imported or not
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' LIMIT 1",
+        array($unix), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Already installed
+               $FOUND = "<FONT class=\"admin_note\">".ADMIN_THEME_ALREADY_INSTALLED."</FONT>";
+       }
+        else
+       {
+               // Theme not installed
+               $FOUND = "<FORM action=\"".URL."/modules.php?module=admin&amp;what=theme_import\" method=\"POST\">
+  <INPUT type=\"submit\" name=\"ok\" class=\"admin_submit\" value=\"".ADMIN_INSTALL_THEME."\">
+  <INPUT type=\"hidden\" name=\"theme\" value=\"".$unix."\">
+</FORM>";
+       }
+
+       // Add row
+       $OUT .= "<TR>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\" height=\"30\">".$unix."</TD>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">".$THEMES['theme_name'][$key]."</TD>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">
+    <A href=\"mailto:".$THEMES['theme_email'][$key]."?Subject=[Theme:] ".$THEMES['theme_name'][$key]." (".$unix.")"."\">".$THEMES['theme_author'][$key]."</A>
+  </TD>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">
+    <A href=\"".DEREFERER($THEMES['theme_url'][$key])."\" target=\"_blank\">".$THEMES['theme_url'][$key]."</A>
+  </TD>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">v".$THEMES['theme_ver'][$key]."</TD>
+  <TD class=\"switch_sw".$SW." bottom2\" align=\"center\">
+    ".$FOUND."
+  </TD>
+</TR>\n";
+       $SW = 3 - $SW;
+}
+if (empty($OUT))
+{
+       // No themes found???
+       $OUT .= "<TR>
+  <TD colspan=\"6\" class=\"bottom2\" height=\"80\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, ADMIN_NO_THEMES_FOUND)."
+  </TD>
+</TR>\n";
+}
+define('__THEME_LIST', $OUT);
+
+// Load template
+LOAD_TEMPLATE("admin_theme_import");
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-unlock_emails.php b/0.2.1/inc/modules/admin/what-unlock_emails.php
new file mode 100644 (file)
index 0000000..93c8630
--- /dev/null
@@ -0,0 +1,251 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/28/2003 *
+ * ===============                              Last change: 07/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-unlock_emails.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Unlock ordered emails                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Werbebuchungen freigeben                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Define some variables
+global $DATA, $link;
+
+// Check for mails
+$result_main = SQL_QUERY("SELECT id, sender, subject, payment_id, timestamp, url, target_send, cat_id FROM "._MYSQL_PREFIX."_pool WHERE data_type='ADMIN' ORDER BY timestamp", __FILE__, __LINE__);
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+if ((SQL_NUMROWS($result_main) > 0) || (isset($_POST['lock'])))
+{
+       // Count checked checkboxes
+       $SEL = 0;
+       if (isset($_POST['sel']))
+       {
+               // Are there checked boxes?
+               if (count($_POST['sel']) > 0)
+               {
+                       // Count now... We use an own function for now
+                       $SEL = SELECTION_COUNT($_POST['sel']);
+               }
+       }
+       if (isset($_POST['accept']))
+       {
+               if ($SEL > 0)
+               {
+                       // Accept mail orders
+                       foreach ($_POST['sel'] as $id=>$value)
+                       {
+                               // Secure ID number
+                               $id = bigintval($id);
+
+                               // Unlock selected email
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='NEW' WHERE id=%d AND data_type='ADMIN' LIMIT 1",
+                                array($id), __FILE__, __LINE__);
+                               if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1)
+                               {
+                                       // Order placed in queue...
+                                       $result = SQL_QUERY_ESC("SELECT url, subject, sender FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+                                        array($id), __FILE__, __LINE__);
+                                       $DATA = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+
+                                       // Check for bonus extension version >= 0.4.4 for the order bonus
+                                       if ((GET_EXT_VERSION("bonus") >= "0.4.4") && ($CONFIG['bonus_active'] == "Y"))
+                                       {
+                                               // Add points directly
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET bonus_order=bonus_order+".$CONFIG['bonus_order']." WHERE userid=%d LIMIT 1",
+                                                array(bigintval($DATA[2])), __FILE__, __LINE__);
+
+                                               // Subtract bonus points from system
+                                               BONUS_POINTS_HANDLER($CONFIG['bonus_order']);
+                                       }
+
+                                       // Load email template
+                                       $msg_user = LOAD_EMAIL_TEMPLATE("order-accept", "", $DATA[2]);
+
+                                       // Send email
+                                       SEND_EMAIL($DATA[2], MEMBER_ORDER_ACCEPTED, $msg_user);
+                               }
+                       }
+
+                       // Set message
+                       $MSG = ADMIN_MAILS_ACTIVATED;
+               }
+                else
+               {
+                       // Nothing checked!
+                       $MSG = ADMIN_MAILS_NOTHING_CHECKED;
+               }
+
+               // Mails unlocked for mail delivery
+               LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
+       }
+        elseif (isset($_POST['reject']))
+       {
+               if ($SEL > 0)
+               {
+                       // Reject mail orders
+                       $SW = 2; $OUT = "";
+                       foreach ($_POST['sel'] as $id=>$value)
+                       {
+                               // Secure ID number
+                               $id = bigintval($id);
+
+                               // Load URL and subject from pool
+                               $result = SQL_QUERY_ESC("SELECT url, subject, sender FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+                                array($id), __FILE__, __LINE__);
+                               $DATA = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               // Load email template and send it away
+                               $msg_user = LOAD_EMAIL_TEMPLATE("order-reject", "", $DATA[2]);
+                               SEND_EMAIL($DATA[2], MEMBER_ORDER_REJECTED, $msg_user);
+
+                               // If you do not enter an URL to redirect to, your URL will be set!
+                               if ((empty($_POST['redirect'])) || ($_POST['redirect'] == "http://")) $_POST['redirect'] = URL;
+
+                               // Redirect URL
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET url='%s', data_type='NEW' WHERE id=%d LIMIT 1",
+                                array($_POST['redirect'], $id),__FILE__, __LINE__);
+
+                               // Prepare data for the row template
+                               $content = array(
+                                       'sw'  => $SW,
+                                       'id'  => $id,
+                                       'url' => $_POST['url'][$id],
+                               );
+
+                               // Load row template and switch colors
+                               $OUT .= LOAD_TEMPLATE("admin_unlock_emails_redir_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+                       define('__URL_ROWS', $OUT);
+
+                       // Load main template
+                       LOAD_TEMPLATE("admin_unlock_emails_redir");
+               }
+                else
+               {
+                       // Nothing selected
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_MAILS_NOTHING_CHECKED);
+               }
+       }
+        elseif ((isset($_POST['lock'])) || ($SEL > 0))
+       {
+               if ($SEL > 0)
+               {
+                       // Lock URLs
+                       foreach ($_POST['sel'] as $id=>$url)
+                       {
+                               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_url_blist WHERE url='%s' LIMIT 1",
+                                array($url), __FILE__, __LINE__);
+                               if (SQL_NUMROWS($result) == 0)
+                               {
+                                       // Did not find a record so we can add it... :)
+                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_url_blist (url, timestamp) VALUES ('%s', UNIX_TIMESTAMP())",
+                                        array($url), __FILE__, __LINE__);
+                               }
+                                else
+                               {
+                                       // Free memory
+                                       SQL_FREERESULT($result);
+                               }
+                       }
+
+                       // Set message
+                       $MSG = ADMIN_URLS_BLOCKED;
+               }
+                else
+               {
+                       // Nothing selected
+                       $MSG = ADMIN_MAILS_NOTHING_CHECKED;
+               }
+               LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
+       }
+        elseif ((empty($_POST['lock'])) && (empty($_POST['accept'])) && (empty($_POST['reject'])))
+       {
+               // Mail orders are in pool so we can display them
+               $SW = 2; $OUT = "";
+               while (list($id, $sender, $subj, $pay, $time, $url, $tsend, $cat) = SQL_FETCHROW($result_main))
+               {
+                       // Prepare data for the template
+                       $content = array(
+                               'sw'        => $SW,
+                               'id'        => $id,
+                               'sender'    => $sender,
+                               'u_link'    => ADMIN_USER_PROFILE_LINK($sender),
+                               'subj'      => COMPILE_CODE($subj),
+                               'tester'    => FRAMETESTER($url),
+                               'url'       => $url,
+                               'cat_title' => str_replace("\"", "&quot;", GET_CATEGORY($cat)),
+                               'cat_link'  => $cat,
+                               'pay_title' => str_replace("\"", "&quot;", GET_PAYMENT($pay, true)),
+                               'pay_link'  => $pay,
+                               'ordered'   => MAKE_DATETIME($time, "2"),
+                               'tsend'     => $tsend,
+                       );
+
+                       // Load row template and switch colors
+                       $OUT .= LOAD_TEMPLATE("admin_unlock_emails_row", true, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+               define('__UNLOCK_ROWS', $OUT);
+
+               // Prepare rejection URL
+               $REJECT = "http://";
+               if (GET_EXT_VERSION("other") >= "0.1.6") $REJECT = $CONFIG['reject_url'];
+               define('__REJECT_URL', $REJECT);
+
+               // Load main template
+               LOAD_TEMPLATE("admin_unlock_emails");
+       }
+        else
+       {
+               // Wrong call!
+               LOAD_TEMPLATE ("admin_settings_saved", false, ADMIN_WRONG_CALL);
+       }
+}
+ else
+{
+       // No mail orders fond
+       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_MAILS_IN_POOL);
+}
+
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-updates.php b/0.2.1/inc/modules/admin/what-updates.php
new file mode 100644 (file)
index 0000000..db13edb
--- /dev/null
@@ -0,0 +1,186 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/16/2004 *
+ * ================                             Last change: 05/14/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-updates.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Check for updates                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Prueft nach Updates                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Init array
+$ONLINE['code'] = "???";
+
+// Get response from our server in an array
+$response = MXCHANGE_OPEN("check-updates2.php");
+if (empty($response[0]) && empty($response[1]) && empty($response[2]))
+{
+       // Error!
+       $response = array("", "", "");
+}
+ else
+{
+       // Analyse header for response code
+       if (ereg("200 OK", $response[0]))
+       {
+               // Found, kill header
+               $pos = 0;
+               foreach($response as $k=>$v)
+               {
+                       $v = trim($v);
+                       if (empty($v))
+                       {
+                               // Header ends here (+1)
+                               $pos = $k + 1; break;
+                       }
+               }
+               $response2 = array();
+               for($i = $pos; $i < count($response); $i++)
+               {
+                       $response2[] = trim($response[$i]);
+               }
+               $response = $response2; unset($response2);
+               unset($pos);
+
+               // Which is the latest version on server?
+               $ONLINE = array(
+                       'version' => str_replace("\n", "", $response[0]),
+                       'changed' => str_replace("\n", "", $response[1])
+               );
+
+               // Array for available patches
+               $PATCHES = array(
+                       'fname' => array(),
+                       'fsize' => array(),
+                       'ctime' => array()
+               );
+
+               if (($response[2] != "[EOF]") && ($ONLINE['version'] == FULL_VERSION))
+               {
+                       // We have found new patches (newer than FULL_VERSION)
+                       $max = str_replace("\n", "", $response[sizeof($response) - 2]); $TOTAL_SIZE = "0";
+
+                       // Maximum of available pacthes extracted (above). Now we can get all informations
+                       for ($idx = 0; $idx < $max; $idx++)
+                       {
+                               // List only newer patches
+                               $TEST = substr(str_replace("\n", "", $response[$idx * 5 + 2]), 0, strlen($CONFIG['patch_level']));
+
+                               // I have removed the addional test for the stored timemark in database or you cannot find
+                               // new updates on my server when you haven't installed it before I upload a patch... :-(
+                               if (bigintval($TEST) > bigintval($CONFIG['patch_level']))
+                               {
+                                       // Copy every data from the response array
+                                       $PATCHES['fname'][] = str_replace("\n", "", $response[$idx * 5 + 2]);
+                                       $PATCHES['fsize'][] = str_replace("\n", "", $response[$idx * 5 + 3]);
+                                       $PATCHES['ctime'][] = str_replace("\n", "", $response[$idx * 5 + 4]);
+                                       switch (GET_LANGUAGE())
+                                       {
+                                               case "de": $PATCHES['descr'][] = str_replace("\n", "", $response[$idx * 5 + 5]); break; // Load german description
+                                               default  : $PATCHES['descr'][] = str_replace("\n", "", $response[$idx * 5 + 6]); break; // Load english description as default
+                                       }
+
+                                       // Add patch's size to total
+                                       $TOTAL_SIZE += $PATCHES['fsize'][$idx];
+                               }
+                       }
+                       array_pk_sort($PATCHES, array("ctime", "fname"));
+
+                       // All done here!
+                       $ONLINE['code'] = "200 OK";
+               }
+       }
+        else
+       {
+               // 404 / 403 error from server
+               $ONLINE['code'] = $response[0];
+       }
+}
+
+OPEN_TABLE("100%", "admin_content", "center");
+// Is a newer version available?
+if (empty($ONLINE['version']))
+{
+       // Disconnected?
+       LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_failed\">".ADMIN_CANNOT_CHECK_VERSION." (".$ONLINE['code'].")</FONT>");
+}
+ elseif ($ONLINE['version'] != FULL_VERSION)
+{
+       // New full-version available (all previous released patches are included in this version!)
+       define('__ONLINE_VERSION', $ONLINE['version']);
+       define('__ONLINE_CHANGE' , MAKE_DATETIME($ONLINE['changed'], "2"));
+
+       // Load template
+       LOAD_TEMPLATE("admin_update_download");
+}
+ elseif (sizeof($PATCHES['fname']) > 0)
+{
+       // Some patches are available
+       $OUT = ""; $SW = "2";
+       foreach ($PATCHES['fname'] as $idx=>$file)
+       {
+               $SIZE = TRANSLATE_COMMA(round($PATCHES['fsize'][$idx]/102.4)/10);
+               $content = array(
+                       'sw'          => $SW,
+                       'patch_url'   => SERVER_URL."/patches/".$file,
+                       'patch_title' => str_replace("_", " ", str_replace(".zip", "", $file)),
+                       'patch_ctime' => MAKE_DATETIME($PATCHES['ctime'][$idx], "2"),
+                       'patch_size'  => $SIZE,
+                       'patch_desc'  => COMPILE_CODE($PATCHES['descr'][$idx]),
+               );
+               // Evaluate descrition code
+               $eval = "\$content['patch_desc'] = \"".$content['patch_desc']."\";";
+               eval($eval);
+
+               // Load template, switch color and count total size up
+               $OUT .= LOAD_TEMPLATE("admin_patches_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__PATCH_ROWS', $OUT);
+
+       // Total size
+       define('__TOTAL_SIZE', TRANSLATE_COMMA($TOTAL_SIZE / 1024));
+
+       // Load main template
+       LOAD_TEMPLATE("admin_patches");
+}
+ else
+{
+       // You have the latest version!
+       LOAD_TEMPLATE("admin_settings_saved", false, NO_UPDATES_AVAILABLE);
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-usage.php b/0.2.1/inc/modules/admin/what-usage.php
new file mode 100644 (file)
index 0000000..c235fc0
--- /dev/null
@@ -0,0 +1,107 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/15/2003 *
+ * ===============                              Last change: 04/02/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-usage.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Auto-detection of usage statistics               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Automatische Erkennung der Aufrufstatistiken     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+OPEN_TABLE("100%", "admin_content admin_content_align", "");
+$usage = "usage/";
+if (!empty($_GET['image']))
+{
+       if ($_GET['type'] == "usage")
+       {
+               $file = PATH.$usage."usage.png";
+       }
+        else
+       {
+               if (strpos($_GET['image'], "\\") > 0) $_GET['image'] = substr($_GET['image'], 0, strpos($_GET['image'], "\\"));
+               $file = PATH.$usage.$_GET['type']."_usage_".$_GET['image'].".png";
+       }
+       if (file_exists($file))
+       {
+               $image = imagecreatefrompng($file);
+               header("Content-type: image/png");
+               imagepng($image);
+               imagedestroy($image);
+       }
+       exit();
+}
+ elseif (empty($_GET['usage']))
+{
+       $file = PATH.$usage."index.html";
+}
+ else
+{
+       $file = sprintf("%s%susage_%s.html",
+               PATH,
+               $usage,
+               SQL_ESCAPE($_GET['usage'])
+       );
+}
+if ($file !="")
+{
+       if (file_exists($file) && is_readable($file))
+       {
+                       $tmpl_file = implode("", file($file));
+                       $tmpl_file = addslashes($tmpl_file);
+                       $tmpl_file = "\$content=\"".$tmpl_file."\";";
+                       eval($tmpl_file);
+                       $content = str_replace("usage.png", URL."/modules.php?module=admin&amp;what=".$GLOBALS['what']."&type=usage&image=usage", $content);
+                       $content = str_replace("daily_usage_", URL."/modules.php?module=admin&amp;what=".$GLOBALS['what']."&type=daily&image=", $content);
+                       $content = str_replace("hourly_usage_", URL."/modules.php?module=admin&amp;what=".$GLOBALS['what']."&type=hourly&image=", $content);
+                       $content = str_replace("ctry_usage_", URL."/modules.php?module=admin&amp;what=".$GLOBALS['what']."&type=ctry&image=", $content);
+                       $content = str_replace("usage_", URL."/modules.php?module=admin&amp;what=".$GLOBALS['what']."&usage=", str_replace(".html", "", $content));
+                       // Disabled due to too much trouble
+                       //$content = str_replace("HREF=\"http://", "href=\"".URL."/modules.php?module=loader&amp;url=http://", $content);
+                       $test = strtolower($content);
+                       $body_start = strpos($test, "<body");
+                       $body_end   = strpos($test, "</body>");
+                       if (($body_start > 0) && ($body_end > 0))
+                       {
+                               $content = substr(substr($content, 0, $body_end), $body_start);
+                               $content = substr($content, strpos($content, ">") + 1);
+                               OUTPUT_HTML ("<DIV align=\"left\">
+  ".$content."
+</DIV>");
+                       }
+       }
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-user_contct.php b/0.2.1/inc/modules/admin/what-user_contct.php
new file mode 100644 (file)
index 0000000..be76d57
--- /dev/null
@@ -0,0 +1,83 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/29/2008 *
+ * ================                             Last change: 01/29/2008 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-user_contct.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Contact the user over a form                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Das Mitglied ueber ein Formular kontaktieren     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin())) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+// Is a user id given?
+if ((isset($_GET['u_id'])) && (bigintval($_GET['u_id']) > 0)) {
+       // Load user data and display it
+       $result = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+               array(bigintval($_GET['u_id'])), __FILE__, __LINE__);
+
+       // Is a user account found?
+       if (SQL_NUMROWS($result) == 1) {
+               // Load the data
+               $content = SQL_FETCHARRAY($result);
+
+               // Including user ID
+               $content['u_id'] = bigintval($_GET['u_id']);
+
+               // Shall we send the email?
+               if (isset($_POST['ok'])) {
+                       // Insert text
+                       $content['text'] = trim(strip_tags($_POST['text']));
+
+                       // Send contact form out
+                       $msg = LOAD_EMAIL_TEMPLATE("member_contct", $content);
+                       SEND_EMAIL($content['email'], ADMIN_CONTACT_USER_SUBJECT, $msg);
+                       LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_USER_CONTACTED);
+               } else {
+                       // Load contact form template
+                       LOAD_TEMPLATE("admin_contct_user_form", false, $content);
+               }
+       } else {
+               // Not found?
+               LOAD_TEMPLATE("admin_settings_saved", false, sprintf(USER_ACCOUNT_404, bigintval($_GET['u_id'])));
+       }
+
+       // Free result
+       SQL_FREERESULT($result);
+} else {
+       // Display selection box
+       ADD_MEMBER_SELECTION_BOX();
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-user_online.php b/0.2.1/inc/modules/admin/what-user_online.php
new file mode 100644 (file)
index 0000000..eb2dfc6
--- /dev/null
@@ -0,0 +1,131 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/02/2004 *
+ * ================                             Last change: 07/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-online.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Who is where? (DO NOT add sub menus!)            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Wer ist wo? (KEINE Untermenues anhaengen!)       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR><BR>");
+
+// Count guests, members and admins
+$result_guests  = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='N' AND is_member='N'", __FILE__, __LINE__);
+$result_members = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='N' AND is_member='Y'", __FILE__, __LINE__);
+$result_admins  = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='Y'", __FILE__, __LINE__);
+
+OUTPUT_HTML("<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" width=\"170\" class=\"admin_table dashed\">
+<TR><TD colspan=\"5\" height=\"7\" class=\"seperator admin_title\">&nbsp;</TD></TR>
+<TR>
+  <TD colspan=\"3\" class=\"admin_title\" align=\"center\">
+    <STRONG>".USER_NOW_ONLINE."</STRONG>
+  </TD>
+</TR>
+<TR><TD colspan=\"5\" height=\"7\" class=\"seperator admin_title\">&nbsp;</TD></TR>
+<TR>
+  <TD width=\"85%\" class=\"top2 bottom2\" align=\"right\"><FONT class=\"medium\">".GUESTS_ONLINE.":</FONT></TD>
+  <TD width=\"5%\" class=\"top2 bottom2\">&nbsp;</TD>
+  <TD width=\"10%\" class=\"top2 bottom2\"><B>".SQL_NUMROWS($result_guests)."</B></TD>
+</TR>
+<TR>
+  <TD width=\"85%\" class=\"bottom2\" align=\"right\"><FONT class=\"medium\">".MEMBERS_ONLINE.":</FONT></TD>
+  <TD width=\"5%\" class=\"bottom2\">&nbsp;</TD>
+  <TD width=\"10%\" class=\"bottom2\"><B>".SQL_NUMROWS($result_members)."</B></TD>
+</TR>
+<TR>
+  <TD width=\"85%\" align=\"right\"><FONT class=\"medium\">".ADMINS_ONLINE.":</FONT></TD>
+  <TD width=\"5%\">&nbsp;</TD>
+  <TD width=\"10%\"><B>".SQL_NUMROWS($result_admins)."</B></TD>
+</TR>
+</TABLE><BR>");
+
+$result = SQL_QUERY("SELECT id, ip, userid, refid, module, action, what, is_member, is_admin, timestamp FROM "._MYSQL_PREFIX."_online ORDER by timestamp DESC", __FILE__, __LINE__);
+if (SQL_NUMROWS($result) > 0)
+{
+       // Load header template
+       LOAD_TEMPLATE("admin_online_header");
+
+       // List all online users
+       $SW = 2;
+       while (list($id, $ip, $userid, $refid, $module, $action, $what, $mem, $admin, $time) = SQL_FETCHROW($result))
+       {
+               if ($action == "") $action = "---";
+               if ($what   == "")   $what = "---";
+
+               if ($admin == "Y")
+               {
+                       // Is an administrator
+                       $userid = _IS_ADMIN;
+               }
+               elseif (($mem == "N") && ($admin == "N"))
+               {
+                       // Is a guest
+                       $userid = _IS_GUEST;
+               }
+               OUTPUT_HTML("<TR>
+  <TD align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$id."</TD>
+  <TD align=\"center\" width=\"15%\" class=\"switch_sw".$SW." bottom right\">");
+               if ($userid > 0)
+               {
+                       OUTPUT_HTML("<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;u_id=".$userid."\">".$userid."</A>");
+               }
+               else
+               {
+                       OUTPUT_HTML($userid);
+               }
+               if ($refid > 0)
+               {
+                       $refid = "<A href=\"".URL."/modules.php?module=admin&amp;what=list_user&amp;u_id=".$refid."\">".$refid."</A>";
+               }
+               OUTPUT_HTML("</TD>
+  <TD align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$ip."</TD>
+  <TD align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$refid."</TD>
+  <TD align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$module."</TD>
+  <TD align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$action."</TD>
+  <TD align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$what."</TD>
+  <TD align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom\">".MAKE_DATETIME($time, "2")."</TD>
+</TR>");
+               $SW = 3 - $SW;
+       }
+       OUTPUT_HTML("<TR>
+  <TD colspan=\"8\" align=\"center\" class=\"admin_footer\">
+    ".ONLINE_TIMEOUT_IS_1.CREATE_FANCY_TIME($CONFIG['online_timeout']).ONLINE_TIMEOUT_IS_2."
+  </TD>
+</TR>
+</TABLE>");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/admin/what-usr_online.php b/0.2.1/inc/modules/admin/what-usr_online.php
new file mode 100644 (file)
index 0000000..e5952f8
--- /dev/null
@@ -0,0 +1,128 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/14/2005 *
+ * ================                             Last change: 01/14/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-usr_online.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Who is where? (DO NOT add sub menus!)            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Wer ist wo? (KEINE Untermenues anhaengen!)       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("admin", basename(__FILE__));
+
+if (EXT_IS_ACTIVE("online", true))
+{
+       // Count guests, members and admins
+       $result_guests  = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='N' AND is_member='N'", __FILE__, __LINE__);
+       $result_members = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='N' AND is_member='Y'", __FILE__, __LINE__);
+       $result_admins  = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='Y'", __FILE__, __LINE__);
+
+       // Remember values for the template
+       define('_GUESTS_ONLINE' , SQL_NUMROWS($result_guests));
+       define('_ADMINS_ONLINE' , SQL_NUMROWS($result_admins));
+       define('_MEMBERS_ONLINE', SQL_NUMROWS($result_members));
+
+       // Free memory
+       SQL_FREERESULT($result_guests);
+       SQL_FREERESULT($result_admins);
+       SQL_FREERESULT($result_members);
+
+       // Load template
+       LOAD_TEMPLATE("admin_mini_online");
+
+       // Check for online users
+       $result = SQL_QUERY("SELECT id, ip, userid, refid, module, action, what, is_member, is_admin, timestamp FROM "._MYSQL_PREFIX."_online ORDER by timestamp DESC", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Load header template
+               LOAD_TEMPLATE("admin_online_header");
+
+               // List all online users
+               $SW = 2;
+               while (list($id, $ip, $uid, $ref, $mod, $act, $wht, $mem, $admin, $time) = SQL_FETCHROW($result))
+               {
+                       if (empty($act)) $act = "---";
+                       if (empty($wht))   $wht = "---";
+
+                       if ($admin == "Y")
+                       {
+                               // Is an administrator
+                               $uid = _IS_ADMIN;
+                       }
+                        elseif (($mem == "N") && ($admin == "N"))
+                       {
+                               // Is a guest
+                               $uid = _IS_GUEST;
+                       }
+                       OUTPUT_HTML ("<TR>
+  <TD align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$id."</TD>
+  <TD align=\"center\" width=\"15%\" class=\"switch_sw".$SW." bottom right\">");
+                       if ($uid > 0)
+                       {
+                               OUTPUT_HTML (ADMIN_USER_PROFILE_LINK($uid));
+                       }
+                        else
+                       {
+                               OUTPUT_HTML ($uid);
+                       }
+                       if ($ref > 0)
+                       {
+                               $ref = ADMIN_USER_PROFILE_LINK($ref);
+                       }
+                       OUTPUT_HTML ("</TD>
+  <TD align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$ip."</TD>
+  <TD align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$ref."</TD>
+  <TD align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$mod."</TD>
+  <TD align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$act."</TD>
+  <TD align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$wht."</TD>
+  <TD align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom\">".MAKE_DATETIME($time, "2")."</TD>
+</TR>");
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Load footer template
+               define('__FANCY_ONLINE_TIMEOUT', CREATE_FANCY_TIME($CONFIG['online_timeout']));
+               LOAD_TEMPLATE("admin_online_footer");
+       }
+}
+ else
+{
+       // Online statistics deactivated!
+       LOAD_TEMPLATE("admin_settings_saved", false, ONLINE_STATISTICS_DEACTIVATED);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/chk_login.php b/0.2.1/inc/modules/chk_login.php
new file mode 100644 (file)
index 0000000..9be4517
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/26/2003 *
+ * ===============                              Last change: 02/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : chk_login.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Check if user has logged in (delay)              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Pruefen ob die Login-Cookies gesetzt sind        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+OPEN_TABLE("500", "guest_login_header dashed", "center");
+
+OUTPUT_HTML ("<BR><STRONG>".VALIDATING_LOGIN."</STRONG><BR>");
+
+if (!empty($GLOBALS['userid']) && !empty($_COOKIE['u_hash']) && !empty($_COOKIE['lifetime']))
+{
+       // Get theme from profile
+       $result = SQL_QUERY_ESC("SELECT curr_theme FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($NewTheme) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Change to new theme
+       @setcookie("mxchange_theme", $NewTheme, (time() + 60*60*24*365), COOKIE_PATH);
+       $_COOKIE['mxchange_theme'] = $NewTheme;
+
+       $bonus = false;
+       die("<pre>".print_r($CONFIG, true)."</pre>");
+       if ((GET_EXT_VERSION("sql_patches") >= "0.2.8") && (GET_EXT_VERSION("bonus") >= "0.2.1")) {
+               // Update last login
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data
+SET last_login=UNIX_TIMESTAMP()
+WHERE userid=%d AND last_login < (UNIX_TIMESTAMP() - %d)
+LIMIT 1", array($GLOBALS['userid'], $CONFIG['login_timeout']),
+ __FILE__, __LINE__);
+               if (SQL_AFFECTEDROWS($link) == 1) $bonus = true;
+       }
+       if (($bonus) && ($_GET['mode'] == "bonus") && (EXT_IS_ACTIVE("bonus")))         {
+               // Output message with added points
+               OUTPUT_HTML("<FONT class=\"tiny\">
+  ".BONUS_LOGIN_BONUS_ADDED_1."
+  <STRONG>".TRANSLATE_COMMA($CONFIG['login_bonus'])." ".POINTS."</STRONG>
+  ".BONUS_LOGIN_BONUS_ADDED_2."
+</FONT>");
+       }
+        elseif (EXT_IS_ACTIVE("bonus"))
+       {
+               // No login bonus added!
+               OUTPUT_HTML("<FONT class=\"member_failed\">".BONUS_LOGIN_BONUS_NOT_ADDED."</FONT>");
+       }
+
+       // Redirect to member area
+       LOAD_TEMPLATE("member_login_js");
+}
+ else
+{
+       // Login failed!
+       LOAD_TEMPLATE("login_failed_js");
+}
+
+// Close table
+CLOSE_TABLE();
+
+//
+?>
diff --git a/0.2.1/inc/modules/frameset.php b/0.2.1/inc/modules/frameset.php
new file mode 100644 (file)
index 0000000..652a3cb
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/09/2003 *
+ * ===============                              Last change: 02/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : frameset.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Frameset page                                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Frameset-Seite                                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// When the frameset is not active redirect the user as well :)
+if (!frameset_active)
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/frametester.php b/0.2.1/inc/modules/frametester.php
new file mode 100644 (file)
index 0000000..1be7dd9
--- /dev/null
@@ -0,0 +1,124 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/24/2003 *
+ * ===============                              Last change: 06/30/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : frametester.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Test your website against frame killers          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Testet die Mitgliedsseite gegen Frame-Killer     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+$MODE = "guest";
+
+if (!empty($_GET['order']))
+{
+       // Order number placed, is he also logged in?
+       if(IS_LOGGED_IN())
+       {
+               // Ok, test passed... :)
+               $result = SQL_QUERY_ESC("SELECT subject, url FROM "._MYSQL_PREFIX."_pool WHERE id=%d AND sender=%d AND data_type='TEMP' LIMIT 1",
+                array(bigintval($_GET['order']), $GLOBALS['userid']), __FILE__, __LINE__);
+
+               // Finally is the entry valid?
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Load subject and URL (but forwhat do we need the subject line here???
+                       list($sub, $url) = SQL_FETCHROW($result);
+
+                       // This fixes a white page
+                       $_POST['url'] = $url;
+
+                       // Update his login data
+                       UPDATE_LOGIN_DATA();
+                       $MODE = "member";
+               }
+                else
+               {
+                       // Matching line not found!
+                       LOAD_URL(URL."/modules.php?module=index&amp;what=login");
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        else
+       {
+               // He is no longer logged in
+               LOAD_URL(URL."/modules.php?module=index&amp;what=login");
+       }
+}
+
+if ((!empty($_POST['url'])) || (!empty($_GET['url'])) || (!empty($_GET['frame'])))
+{
+       $url = URL;
+       if (!empty($_POST['url'])) $url = $_POST['url'];
+       if (!empty($_GET['url']))  $url = base64_decode(urldecode(COMPILE_CODE($_GET['url'])));
+       switch ($_GET['frame'])
+       {
+       case "":
+               switch ($MODE)
+               {
+               case "member":
+                       // Build frameset
+                       define('__ORDER_VALUE', bigintval($_GET['order']));
+                       define('__URL_VALUE'  , DEREFERER($url));
+                       LOAD_TEMPLATE("member_order_frametester");
+                       break;
+
+               case "guest":
+                       define('__URL_VALUE'  , DEREFERER($url));
+                       LOAD_TEMPLATE("guest_frametester");
+                       break;
+               }
+               break;
+
+       case "test_top":
+               OUTPUT_HTML ("<STRONG class=\"guest_done\">".GUEST_FRAMETESTER_TOP."</SPAN>");
+               break;
+
+       case "back": // Back buttom
+               LOAD_TEMPLATE("member_order_back", false, $_GET['order']);
+               break;
+
+       case "send": // Send mail away
+               LOAD_TEMPLATE("member_order_send", false, $_GET['order']);
+               break;
+       }
+}
+ else
+{
+       // Go away...
+       LOAD_URL(URL."/modules.php?module=login");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/guest/.htaccess b/0.2.1/inc/modules/guest/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/modules/guest/action- b/0.2.1/inc/modules/guest/action-
new file mode 100644 (file)
index 0000000..c10ba15
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/27/2004 *
+ * ================                             Last change: 01/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-                                          *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/guest/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the guest action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(GUEST_404_ACTION_1.$GLOBALS['what'].GUEST_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/guest/action-admin.php b/0.2.1/inc/modules/guest/action-admin.php
new file mode 100644 (file)
index 0000000..7eaf1cd
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/04/2004 *
+ * ================                             Last change: 04/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-admin.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Administrative links                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Administrative Links                             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+if (GET_ACTION("guest", $GLOBALS['what']) == "admin")
+{
+       // Only when one admin link is clicked...
+       $INC = sprintf(PATH."inc/modules/guest/what-%s.php", $GLOBALS['what']);
+       if (file_exists($INC))
+       {
+            // Ok, we finally load the guest action module
+               include($INC);
+       }
+        else
+       {
+               ADD_FATAL(GUEST_404_ACTION_1.$GLOBALS['what'].GUEST_404_ACTION_2);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/guest/action-main.php b/0.2.1/inc/modules/guest/action-main.php
new file mode 100644 (file)
index 0000000..8894d8a
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/10/2003 *
+ * ===============                              Last change: 01/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-main.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Main menu: register, login, welcome and so on    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Hauptmenue: Anmeldung, Login, Willkommen usw.    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/guest/what-%s.php", $GLOBALS['what']);
+$IS_VALID = WHAT_IS_VALID(GET_ACTION("guest", $GLOBALS['what']), $GLOBALS['what'], "guest");
+
+if ((file_exists($INC)) && (is_readable($INC)) && ($IS_VALID))
+{
+       // Ok, we finally load the guest action module
+       require_once($INC);
+}
+ elseif ($IS_VALID)
+{
+       ADD_FATAL(GUEST_404_ACTION_1.$GLOBALS['what'].GUEST_404_ACTION_2);
+}
+ else
+{
+       ADD_FATAL(GUEST_LOCKED_ACTION);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/guest/action-members.php b/0.2.1/inc/modules/guest/action-members.php
new file mode 100644 (file)
index 0000000..911c408
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/14/2003 *
+ * ===============                              Last change: 01/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-members.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Menu points for members (login register, ...)    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Menues fuer Mitglieder (Login, Anmeldung, ...)   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+// Load the include file
+$INC = sprintf(PATH."inc/modules/guest/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC))
+{
+       // Ok, we finally load the guest action module
+       include($INC);
+}
+ else
+{
+       ADD_FATAL(GUEST_404_ACTION_1.$GLOBALS['what'].GUEST_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/guest/action-online.php b/0.2.1/inc/modules/guest/action-online.php
new file mode 100644 (file)
index 0000000..9a0f5ee
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/02/2004 *
+ * ================                             Last change: 11/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-online.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Who is where? (DO NOT add sub menus!)            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Wer ist wo? (KEINE Untermenues anhaengen!)       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!EXT_IS_ACTIVE("online"))
+{
+       // Just skip this extension
+       return;
+}
+
+$result_guests  = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='N' AND is_member='N'", __FILE__, __LINE__);
+$result_members = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='N' AND is_member='Y'", __FILE__, __LINE__);
+$result_admins  = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_online WHERE is_admin='Y'", __FILE__, __LINE__);
+
+// Total visitors online
+$total      = SQL_NUMROWS($result_guests) + SQL_NUMROWS($result_members) + SQL_NUMROWS($result_admins);
+if ($CONFIG['mad_counter'] < $total)
+{
+       // Update counter
+       $CONFIG['mad_counter'] = $total;
+       $CONFIG['last_mad']    = time();
+       $result_mad = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET mad_timestamp=%d, mad_count='%s' WHERE config='0' LIMIT 1",
+        array($CONFIG['last_mad'], $CONFIG['mad_counter']), __FILE__, __LINE__);
+
+       // Destroy cache
+}
+
+// Put all values in constants for the template
+define('GUESTS_ONLINE_CNT' , SQL_NUMROWS($result_guests));
+define('MEMBERS_ONLINE_CNT', SQL_NUMROWS($result_members));
+define('ADMINS_ONLINE_CNT' , SQL_NUMROWS($result_admins));
+
+// Output table
+LOAD_TEMPLATE("online_now");
+
+if (EXT_IS_ACTIVE("active"))
+{
+       // Add link to "we were active today" page
+       LOAD_TEMPLATE("guest_menu_bottom", false, "<A class=\"menu_blur\" href=\"".URL."/modules.php?module=index&amp;what=active\">".$CONFIG['middot'].GUEST_ACTIVE_LINK."</A>");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/action-themes.php b/0.2.1/inc/modules/guest/action-themes.php
new file mode 100644 (file)
index 0000000..54e124e
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/12/2004 *
+ * ================                             Last change: 11/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-themes.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Theme selector                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Theme-Auswahl                                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Load all active designs (or all if admin)
+$WHERE = ""; $OUT = "";
+if (!IS_ADMIN()) $WHERE = " WHERE theme_active='Y'";
+$result_themes = SQL_QUERY("SELECT theme_path FROM "._MYSQL_PREFIX."_themes".$WHERE, __FILE__, __LINE__);
+$num_themes = SQL_NUMROWS($result_themes);
+
+if ($num_themes > 1)
+{
+       // If more than 1 is installed output selection box
+       $act = "";
+       if (!empty($GLOBALS['action'])) $act = SQL_ESCAPE($GLOBALS['action']);
+       $OUT = THEME_SELECTION_BOX("index", $act, $GLOBALS['what'], $result_themes);
+}
+ elseif (($num_themes == 1) || ((!IS_ADMIN()) && ($num_themes == 0)))
+{
+       // If there's only one just print it's name
+       global $THEME_NAME;
+       define('__THEME_NAME', $THEME_NAME);
+       $OUT = LOAD_TEMPLATE("theme_one", true);
+}
+ elseif (IS_ADMIN())
+{
+       // If there is no theme installed and there's an admin notify him!
+       $OUT = LOAD_TEMPLATE("admin_settings_saved", true, "<FONT class=\"admin_note\">".ADMIN_NO_THEME_INSTALLED_WARNING."</FONT>");
+}
+
+// Remember
+define('__THEME_SELECTION_CONTENT', $OUT);
+
+// Free memory
+SQL_FREERESULT($result_themes);
+
+// Load final box template
+LOAD_TEMPLATE("theme_select_box");
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what- b/0.2.1/inc/modules/guest/what-
new file mode 100644 (file)
index 0000000..0d00e62
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/27/2004 *
+ * ================                             Last change: 01/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyleft (c) 2003, 2004, 2005 by Roland Haeder                       *
+ * For more information visit: http://www.mxchange.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 2 of the License.       *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+OPEN_TABLE("100%", "", "center", "top");
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-active.php b/0.2.1/inc/modules/guest/what-active.php
new file mode 100644 (file)
index 0000000..c9d0db9
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/26/2004 *
+ * ================                             Last change: 11/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-active.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Today active members list                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Liste heutiger aktiver Mitglieder                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("active")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "active");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+// The day normally starts on 00:00:00, so let's subtract current hours/minutes/seconds from current time stamp!
+$START = time() - date("H", time())*60*60 - date("m", time())*60 - date("s", time());
+
+// Check for members who were active only this day
+$ADD = "uid";
+if (EXT_IS_ACTIVE("nickname")) $ADD = "nickname";
+
+$result = SQL_QUERY_ESC("SELECT userid, ".$ADD.", last_online
+FROM "._MYSQL_PREFIX."_user_data
+WHERE last_online >= %s AND status='CONFIRMED'
+ORDER BY last_online DESC LIMIT %s",
+ array($START, $CONFIG['active_limit']), __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result) > 0)
+{
+       // At least one member was online so let's load them all
+       $OUT = ""; $SW = 2;
+       while(list($uid, $nick, $last) = SQL_FETCHROW($result))
+       {
+               $nick2 = "---";
+               if (($nick != $uid) && (!empty($nick))) $nick2 = $nick;
+
+               // Transfer data to array
+               $content = array(
+                       'sw'     => $SW,
+                       'uid'    => $uid,
+                       'nick'   => $nick2,
+                       'points' => TRANSLATE_COMMA(GET_TOTAL_DATA($uid, "user_points", "points") - GET_TOTAL_DATA($uid, "user_data", "used_points")),
+                       'last'   => MAKE_DATETIME($last, "2"),
+               );
+
+               // Load template
+               $OUT .= LOAD_TEMPLATE("guest_active_row", true, $content);
+
+               // Switch colors
+               $SW = 3 - $SW;
+       }
+}
+ else
+{
+       // No member was online today! :-(
+       $OUT = LOAD_TEMPLATE("guest_active_none_row", true);
+}
+
+// Remember output in constant
+define('__ACTIVE_ROWS', $OUT);
+
+// Load template
+LOAD_TEMPLATE("guest_active_table");
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-admin.php b/0.2.1/inc/modules/guest/what-admin.php
new file mode 100644 (file)
index 0000000..44d43a8
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/04/2004 *
+ * ================                             Last change: 04/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-admin.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Go to admin area                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Zum Administrationsbereich                       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Redirect...
+LOAD_URL (URL."/modules.php?module=admin&amp;action=login");
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-agb.php b/0.2.1/inc/modules/guest/what-agb.php
new file mode 100644 (file)
index 0000000..060d106
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 03/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-agb.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : General regulations                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Allgemeine Geschaeftsbedingungen                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR ("guest", basename(__FILE__));
+
+OPEN_TABLE("100%", "guest_content_align", "");
+LOAD_TEMPLATE (substr(basename(__FILE__), 5, -4));
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-beg.php b/0.2.1/inc/modules/guest/what-beg.php
new file mode 100644 (file)
index 0000000..347b6f4
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/09/2005 *
+ * ================                             Last change: 01/09/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-beg.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Beg points with us!                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mit uns Punkte erbetteln!                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("beg")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "beg");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+// Prepare constants
+define('__BEG_POINTS'    , TRANSLATE_COMMA($CONFIG['beg_points']));
+define('__BEG_POINTS_MAX', TRANSLATE_COMMA($CONFIG['beg_points_max']));
+if ($ref > 0)
+{
+       // Take referral ID from URL/Cookie
+       define('__BEG_UID'       , $ref);
+}
+ else
+{
+       // Take default referral ID
+       define('__BEG_UID'       , $CONFIG['def_refid']);
+}
+
+if (function_exists('CREATE_FANCY_TIME'))
+{
+       define('__BEG_TIMEOUT'    , CREATE_FANCY_TIME($CONFIG['beg_timeout']));
+       define('__BEG_UID_TIMEOUT', CREATE_FANCY_TIME($CONFIG['beg_uid_timeout']));
+}
+ else
+{
+       define('__BEG_TIMEOUT '   , round($CONFIG['beg_timeout']     / 60)." ".MINUTES);
+       define('__BEG_UID_TIMEOUT', round($CONFIG['beg_uid_timeout'] / 60)." ".MINUTES);
+}
+
+// Load final template
+LOAD_TEMPLATE("guest_".substr(basename(__FILE__), 5, -4));
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-confirm.php b/0.2.1/inc/modules/guest/what-confirm.php
new file mode 100644 (file)
index 0000000..1cb2a7b
--- /dev/null
@@ -0,0 +1,189 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/13/2003 *
+ * ===============                              Last change: 08/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-confirm.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Stuff around the confirmation link               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alles um den Bestaetigungslink                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OPEN_TABLE("100%", "guest_content_align", "");
+if (!empty($_GET['hash']))
+{
+       // Initialize the user ID
+       $uid = 0;
+
+       // Search for an unconfirmed or confirmed account
+       $result = SQL_QUERY_ESC("SELECT userid, email, refid FROM "._MYSQL_PREFIX."_user_data WHERE user_hash='%s' AND (status='UNCONFIRMED' OR status='CONFIRMED') LIMIT 1",
+        array($_GET['hash']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Ok, he want's to confirm now so we load some data
+               list ($uid, $email, $rid) = SQL_FETCHROW($result);
+
+               // Unlock his account (but only when it is on UNCONFIRMED!)
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET status='CONFIRMED', ref_payout='%s' WHERE user_hash='%s' AND status='UNCONFIRMED' LIMIT 1",
+                array($CONFIG['ref_payout'], $_GET['hash']), __FILE__, __LINE__);
+               if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1)
+               {
+                       $msg = LOAD_EMAIL_TEMPLATE("confirm-member", "", bigintval($uid));
+
+                       // And send him right away the confirmation mail
+                       SEND_EMAIL($email, GUEST_THANX_CONFIRM, $msg);
+
+                       // Maybe he got "referraled"?
+                       if (($rid > 0) && ($rid != $uid))
+                       {
+                               // Select the referral userid
+                               $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                array(bigintval($rid)), __FILE__, __LINE__);
+                               if (SQL_NUMROWS($result) == 1)
+                               {
+                                       // Update ref counter...
+                                       UPDATE_REF_COUNTER($rid);
+
+                                       // Ok, write the ref-points to this user and his parent-ref
+                                       unset($DEPTH);
+
+                                       // Shall I "pay" the referral points imidiately?
+                                       if ($CONFIG['ref_payout'] == "0")
+                                       {
+                                               // Yes, "pay" it now
+                                               $locked = false;
+                                       }
+                                        else
+                                       {
+                                               // No, "pay" it later
+                                               $locked = true;
+                                       }
+
+                                       // If version matches add ref bonus to refid's account
+                                       if ((GET_EXT_VERSION("bonus") >= "0.4.4") && ($CONFIG['bonus_active'] == "Y"))
+                                       {
+                                               // Add points (directly only!)
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET bonus_ref=bonus_ref+%s WHERE userid=%d LIMIT 1",
+                                                array($CONFIG['bonus_ref'], bigintval($rid)), __FILE__, __LINE__);
+
+                                               // Subtract points from system
+                                               BONUS_POINTS_HANDLER($CONFIG['bonus_ref']);
+                                       }
+
+                                       // Add one-time referral bonus over referral system or directly
+                                       ADD_POINTS_REFSYSTEM($rid, $CONFIG['points_ref'], true, bigintval($uid), $locked, $CONFIG['reg_points_mode']);
+                               }
+                       }
+
+                       if (EXT_IS_ACTIVE("rallye")) {
+                               // Add user to rallye (or not?)
+                               RALLYE_AUTOADD_USER(bigintval($uid));
+                       }
+
+                       // Account confirmed!
+                       if (defined('LEAD_CODE_ENABLED') && defined('LEAD_EXPIRY_TIME')) {
+                               // Set special lead cookie
+                               setcookie("lead_uid", bigintval($uid), (time() + LEAD_EXPIRY_TIME), COOKIE_PATH);
+                               $_COOKIE['lead_uid'] = bigintval($uid);
+
+                               // Lead-Code mode enabled
+                               LOAD_URL(URL."/lead-confirm.php");
+                       } else {
+                               define('__CONFIRM_MSG', GUEST_CONFIRMED_DONE);
+                               define('__UID', bigintval($uid));
+                               LOAD_TEMPLATE("guest_confirm_table");
+                       }
+               } elseif (defined('LEAD_CODE_ENABLED') && defined('LEAD_EXPIRY_TIME')) {
+                       // Set special lead cookie
+                       setcookie("lead_uid", bigintval($uid), (time() + LEAD_EXPIRY_TIME), COOKIE_PATH);
+                       $_COOKIE['lead_uid'] = bigintval($uid);
+
+                       // Lead-Code mode enabled
+                       LOAD_URL(URL."/lead-confirm.php");
+               } else {
+                       // Nobody was found unter this hash key... or our new member want's to confirm twice?
+                       define('__CONFIRM_MSG', GUEST_CONFIRMED_TWICE);
+                       define('__UID', "0");
+                       LOAD_TEMPLATE("guest_confirm_table");
+               }
+       } else {
+               // Nobody was found unter this hash key... or our new member want's to confirm twice?
+               define('__CONFIRM_MSG', GUEST_CONFIRMED_TWICE);
+               define('__UID', "0");
+               LOAD_TEMPLATE("guest_confirm_table");
+       }
+}
+ elseif ((isset($_POST['ok'])) && (!empty($_POST['email'])))
+{
+       // Confirmation link requested      0     1         2
+       $result = SQL_QUERY_ESC("SELECT userid, status, user_hash FROM "._MYSQL_PREFIX."_user_data WHERE email='%s' LIMIT 1",
+        array($_POST['email']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Email address found
+               $DATA = SQL_FETCHROW($result);
+               switch ($DATA[1])
+               {
+               case "UNCONFIRMED": // Account not confirmed
+                       $msg = LOAD_EMAIL_TEMPLATE("guest_request_confirm", "", $DATA[0]);
+                       SEND_EMAIL($_POST['email'], REQUEST_CONFIRM_LINK_SUBJ, $msg);
+                       $content = CONFIRM_LINK_SENT;
+                       break;
+
+               case "CONFIRMED": // Account already confirmed
+                       $content = LOGIN_ID_CONFIRMED;
+                       break;
+
+               case "LOCKED": // Account is locked
+                       $content = LOGIN_ID_LOCKED;
+                       break;
+               }
+       }
+        else
+       {
+               // Email address not registered
+               $content = EMAIL_ADDY_404;
+       }
+
+       define('__CONFIRM_MSG', $content);
+       LOAD_TEMPLATE("guest_confirm_table");
+}
+ else
+{
+       // No hash found, the guest may want to enter his email address to re-get his confirmation link?
+       LOAD_TEMPLATE("guest_confirm_link");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-doubler.php b/0.2.1/inc/modules/guest/what-doubler.php
new file mode 100644 (file)
index 0000000..c40c2cc
--- /dev/null
@@ -0,0 +1,90 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/17/2005 *
+ * ================                             Last change: 02/18/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-doubler.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : General doubling informations                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Allgemeine Informationen zum Verdoppen           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("doubler")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "doubler");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+// Percent values etc.
+define('__CHARGE_VALUE', TRANSLATE_COMMA($CONFIG['doubler_charge'] * 100));
+define('__REF_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_ref'] * 100));
+define('__TOTAL_VALUE' , TRANSLATE_COMMA($CONFIG['doubler_points']));
+define('__MIN_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_min']));
+define('__MAX_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_max']));
+
+// Transfer referral ID
+define('__REFID', $GLOBALS['refid']);
+
+// Usage counter
+define('__DOUBLER_COUNTER', $CONFIG['doubler_counter']);
+
+// Which mail-send-mode did the admin setup?
+switch ($CONFIG['doubler_send_mode'])
+{
+case "DIRECT":
+       define('DOUBLER_PAYOUT_TIME', DOUBLER_PAYOUT_TIME_DIRECT);
+       break;
+
+case "RESET":
+       define('DOUBLER_PAYOUT_TIME', DOUBLER_PAYOUT_TIME_RESET);
+       break;
+}
+
+// Generate table with already payed out doubles
+define('__DOUBLER_PAYOUT_HISTORY', DOUBLER_GENERATE_TABLE("0", "Y", "N", "DESC"));
+
+// Generate table with next-to-run payouts
+define('__DOUBLER_PAYOUT_NEXT', DOUBLER_GENERATE_TABLE());
+
+// Generate timemark
+define('__TIMEOUT_MARK', CREATE_FANCY_TIME($CONFIG['doubler_timeout']));
+
+// Points left to double
+define('__LEFT_VALUE', DOUBLER_GET_TOTAL_POINTS_LEFT());
+
+// Load template
+LOAD_TEMPLATE("guest_doubler");
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-impressum.php b/0.2.1/inc/modules/guest/what-impressum.php
new file mode 100644 (file)
index 0000000..afb4c3b
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 03/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-impressum.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Who is the webmaster?                            *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Impressum                                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OPEN_TABLE("100%", "guest_content_align", "", "");
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+CLOSE_TABLE();
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-infos.php b/0.2.1/inc/modules/guest/what-infos.php
new file mode 100644 (file)
index 0000000..03e2033
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 03/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-infos.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : General informations                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Allgemeine Informationen                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OPEN_TABLE("100%", "guest_content_align", "");
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-login.php b/0.2.1/inc/modules/guest/what-login.php
new file mode 100644 (file)
index 0000000..d2aada3
--- /dev/null
@@ -0,0 +1,409 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/14/2003 *
+ * ===============                              Last change: 04/28/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-login.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Login area (redirects to the real login module)  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Loginbereich (leitet an das richtige Lgin-Modul  *
+ *                     weiter)                                          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OPEN_TABLE("100%", "guest_content_align", "");
+global $DATA, $FATAL;
+
+// Initialize data
+$probe_nickname = false; $UID = false; $hash = "";
+unset($login); unset($online);
+
+if ((!empty($GLOBALS['userid'])) && (!empty($_COOKIE['u_hash'])))
+{
+       // Already logged in?
+       $UID = $GLOBALS['userid'];
+}
+ elseif ((!empty($_POST['id'])) && (!empty($_POST['password'])) && (isset($_POST['ok'])))
+{
+       // Set userid and crypt password when login data was submitted
+       $probe_nickname = ((EXT_IS_ACTIVE("nickname")) && (("".round($_POST['id'])."") != $_POST['id']));
+       if ($probe_nickname)
+       {
+               // Nickname entered
+               $UID = SQL_ESCAPE($_POST['id']);
+       }
+        else
+       {
+               // Direct userid entered
+               $UID  = bigintval($_POST['id']);
+       }
+}
+ elseif (!empty($_POST['new_pass']))
+{
+       // New password requested
+       $UID = "0";
+       if (!empty($_POST['id'])) $UID = $_POST['id'];
+}
+ else
+{
+       // Not logged in
+       $UID = "0"; $hash = "";
+}
+
+$URL = ""; $ADD = "";
+// Set unset variables
+if (empty($_POST['new_pass'])) $_POST['new_pass'] = "";
+if (empty($_GET['login']))     $_GET['login']     = "";
+
+if (IS_LOGGED_IN())
+{
+       // Login immidiately...
+       $URL = URL."/modules.php?module=login";
+}
+ elseif (isset($_POST['ok']))
+{
+       // Add last_login if available
+       $LAST = "";
+       if (GET_EXT_VERSION("sql_patches") >= "0.2.8")
+       {
+               $LAST = ", last_login";
+       }
+
+       // Check login data
+       $password = "";
+       if ($probe_nickname)
+       {
+               // Nickname entered
+               $result = SQL_QUERY_ESC("SELECT userid, password, last_online".$LAST." FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' AND status='CONFIRMED' LIMIT 1",
+                array($UID), __FILE__, __LINE__);
+               list($UID2, $password, $online, $login) = SQL_FETCHROW($result);
+               if (!empty($UID2)) $UID = $UID2;
+       }
+        else
+       {
+               // Direct userid entered
+               $result = SQL_QUERY_ESC("SELECT userid, password, last_online".$LAST." FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                array(bigintval($UID), $hash), __FILE__, __LINE__);
+               list($dmy, $password, $online, $login) = SQL_FETCHROW($result);
+       }
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Valid data found so let's load the last login data
+               if (isset($_POST['ok']))
+               {
+                       // By default the hash is empty
+                       $hash = "";
+
+                       // Check for old MD5 passwords
+                       if ((strlen($password) == 32) && (md5($_POST['password']) == $password))
+                       {
+                               // Just set the hash to the password from DB... :)
+                               $hash = $password;
+                       }
+                        else
+                       {
+                               // Encrypt hash for comparsion
+                               $hash = generateHash($_POST['password'], substr($password, 0, -40));
+                       }
+
+                       if ($hash == $password)
+                       {
+                               // New hashed password found so let's generate a new one
+                               $hash = generateHash($_POST['password']);
+
+                               // ... and update database
+                               $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET password='%s' WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                                array($hash, $UID), __FILE__, __LINE__);
+
+                               // No login bonus by default
+                               $BONUS = false;
+
+                               // Probe for last online timemark
+                               $probe = time() -  $online;
+                               if (!empty($login)) $probe = time() - $login;
+                               if ((GET_EXT_VERSION("bonus") >= "0.2.2") && ($probe >= $CONFIG['login_timeout']))
+                               {
+                                       // Add login bonus to user's account
+                                       $ADD = ", login_bonus=login_bonus+'".$CONFIG['login_bonus']."'";
+                                       $BONUS = true;
+
+                                       // Subtract login bonus from userid's account or jackpot
+                                       if ((GET_EXT_VERSION("bonus") >= "0.3.5") && ($CONFIG['bonus_mode'] != "ADD")) BONUS_POINTS_HANDLER('login_bonus');
+                               }
+
+
+                               // Secure lifetime from input form
+                               $l = bigintval($_POST['lifetime']);
+                               $life = "-1";
+                               if ($l > 0)
+                               {
+                                       // Calculate lifetime of cookies
+                                       $life = time() + $l;
+
+                                       // Calculate new hash with the secret key and master salt together
+                                       $hash = generatePassString($hash);
+
+                                       // Update cookies
+                                       $login = (@setcookie("userid"  , $UID , $life, COOKIE_PATH)
+                                              && @setcookie("u_hash"  , $hash, $life, COOKIE_PATH)
+                                              && @setcookie("lifetime", $l   , $life, COOKIE_PATH));
+
+                                       // Update global array
+                                       $GLOBALS['userid'] = $UID;
+                                       $_COOKIE['u_hash'] = $hash;
+                                       $_COOKIE['lifetime'] = $l;
+                               }
+                                else
+                               {
+                                       // Check for login data
+                                       $login = IS_LOGGED_IN();
+                               }
+
+                               if ($login)
+                               {
+                                       // Update database records
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET total_logins=total_logins+1".$ADD." WHERE userid=%d LIMIT 1",
+                                        array(bigintval($UID)), __FILE__, __LINE__);
+                                       if (SQL_AFFECTEDROWS($link) == 1)
+                                       {
+                                               // Procedure to checking for login data
+                                               if (($BONUS) && (EXT_IS_ACTIVE("bonus")))
+                                               {
+                                                       // Bonus added (just displaying!)
+                                                       $URL = URL."/modules.php?module=chk_login&mode=bonus";
+                                               }
+                                                else
+                                               {
+                                                       // Bonus not added
+                                                       $URL = URL."/modules.php?module=chk_login&mode=login";
+                                               }
+                                       }
+                                        else
+                                       {
+                                               // Cannot update counter!
+                                               $URL = URL."/modules.php?module=".$GLOBALS['module']."&what=login&login=".CODE_CNTR_FAILED;
+                                       }
+                               }
+                                else
+                               {
+                                       // Cookies not setable!
+                                       $URL = URL."/modules.php?module=".$GLOBALS['module']."&what=login&login=".CODE_NO_COOKIES;
+                               }
+                       }
+                        else
+                       {
+                               // Wrong password!
+                               $ERROR = CODE_WRONG_PASS;
+                       }
+               }
+                else
+               {
+                       // Fatal error!
+                       $ERROR = CODE_LOGIN_FAILED;
+               }
+       }
+        else
+       {
+               // Other account status?
+               $result = SQL_QUERY_ESC("SELECT status FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array(bigintval($UID)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Load status
+                       list($status) = SQL_FETCHROW($result);
+                       switch ($status)
+                       {
+                       case "LOCKED":
+                               $ERROR = CODE_ID_LOCKED;
+                               break;
+
+                       case "UNCONFIRMED":
+                               $ERROR = CODE_ID_UNCONFIRMED;
+                               break;
+
+                       default:
+                               $ERROR = CODE_UNKNOWN_STATUS;
+                               break;
+                       }
+               }
+                else
+               {
+                       // ID not found!
+                       $ERROR = CODE_WRONG_ID;
+               }
+
+               // Construct URL
+               $URL = URL."/modules.php?module=".$GLOBALS['module']."&what=login&login=".$ERROR;
+       }
+}
+ elseif ((!empty($_POST['new_pass'])) && (isset($UID)))
+{
+       // Compile email when found in address (only secure chars!)
+       if (!empty($_POST['email'])) $_POST['email'] = str_replace("{DOT}", '.', $_POST['email']);
+
+       // Set ID number when left empty
+       if (empty($_POST['id'])) $_POST['id'] = "0";
+
+       // Probe userid/nickname
+       $probe_nickname = ((EXT_IS_ACTIVE("nickname")) && (("".round($_POST['id'])."") != $_POST['id']));
+       if ($probe_nickname)
+       {
+               // Nickname entered
+               $result = SQL_QUERY_ESC("SELECT userid, status FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' OR email='%s' LIMIT 1",
+                array(addslashes($UID), $_POST['email']), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Direct userid entered
+               $result = SQL_QUERY_ESC("SELECT userid, status FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d OR email='%s' LIMIT 1",
+                array(bigintval($UID), $_POST['email']), __FILE__, __LINE__);
+       }
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // This data is valid, so we create a new pass... :-)
+               list($UID, $status) = SQL_FETCHROW($result);
+
+               if ($status == "CONFIRMED")
+               {
+                       // Ooppps, this was missing! ;-) We should update the database...
+                       $NEW_PASS = GEN_PASS();
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET password='%s' WHERE userid=%d LIMIT 1",
+                        array(generateHash($NEW_PASS), bigintval($UID)), __FILE__, __LINE__);
+
+                       // Prepare data and message for email
+                       $DATA = array($NEW_PASS, getenv('REMOTE_ADDR'));
+                       $msg = LOAD_EMAIL_TEMPLATE("new-pass", "", bigintval($UID));
+
+                       // ... and send it away
+                       SEND_EMAIL(bigintval($UID), GUEST_NEW_PASSWORD, $msg);
+
+                       // Output note to user
+                       LOAD_TEMPLATE("admin_settings_saved", false, GUEST_NEW_PASSWORD_SEND);
+               }
+                else
+               {
+                       // Account is locked or unconfirmed
+                       switch ($status)
+                       {
+                               case "LOCKED"     : $MSG = CODE_ID_LOCKED;      break;
+                               case "UNCONFIRMED": $MSG = CODE_ID_UNCONFIRMED; break;
+                       }
+
+                       // Load URL
+                       LOAD_URL(URL."/modules.php?module=".$GLOBALS['module']."&amp;what=login&login=".$MSG);
+               }
+       }
+        else
+       {
+               // ID or email is wrong
+               LOAD_TEMPLATE("admin_settings_saved", false, "<SPAN class=\"guest_failed\">".GUEST_WRONG_ID_EMAIL."</SPAN>");
+       }
+}
+ else
+{
+       // Login problems?
+       if (!empty($_GET['login']))
+       {
+               // Ok, which one now?
+               $MSG = "<TR>
+  <TD width=\"10\">&nbsp;</TD>
+  <TD colspan=\"7\" align=\"center\">
+    <STRONG><SPAN class=\"guest_failed\">";
+               switch ($_GET['login'])
+               {
+               case CODE_WRONG_PASS:
+                       $MSG .= LOGIN_WRONG_PASS;
+                       break;
+
+               case CODE_WRONG_ID:
+                       $MSG .= LOGIN_WRONG_ID;
+                       break;
+
+               case CODE_ID_LOCKED:
+                       $MSG .= LOGIN_ID_LOCKED;
+                       break;
+
+               case CODE_ID_UNCONFIRMED:
+                       $MSG .= LOGIN_ID_UNCONFIRMED;
+                       break;
+
+               case CODE_NO_COOKIES:
+                       $MSG .= LOGIN_NO_COOKIES;
+                       break;
+
+               default:
+                       $MSG .= LOGIN_WRONG_ID;
+                       break;
+               }
+               $MSG .= "</SPAN></STRONG>
+  </TD>
+  <TD width=\"10\">&nbsp;</TD>
+</TR>\n";
+               define ('LOGIN_FAILURE_MSG', $MSG);
+       }
+        else
+       {
+               // No problems, no output
+               define ('LOGIN_FAILURE_MSG', "");
+       }
+       // Display login form with resend-password form
+       if (EXT_IS_ACTIVE("nickname"))
+       {
+               LOAD_TEMPLATE("guest_nickname_login");
+       }
+        else
+       {
+               LOAD_TEMPLATE("guest_login");
+       }
+}
+
+// Was an URL constructed?
+if (!empty($URL))
+{
+       // URL was constructed
+       if (!empty($FATAL[0]))
+       {
+               // Fatal errors!
+               require_once(PATH."inc/fatal_errors.php");
+       }
+        else
+       {
+               // Load URL
+               LOAD_URL($URL);
+       }
+}
+
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-mediadata.php b/0.2.1/inc/modules/guest/what-mediadata.php
new file mode 100644 (file)
index 0000000..03ce6d8
--- /dev/null
@@ -0,0 +1,332 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/09/2003 *
+ * ===============                              Last change: 02/12/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-mediadata.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Media data                                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mediendaten                                      *
+ * -------------------------------------------------------------------- *
+ *          mod_media - By Robert Niedziela                             *
+ *          (c)2003 www.megacomputing.net                               *
+ * -------------------------------------------------------------------- *
+ *           Rewritten by Roland Haeder, 2003 - 2008                    *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!EXT_IS_ACTIVE("mediadata"))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "mediadata");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+define('value', 'value');
+define('lang', 'lang');
+define('rows', 'rows');
+
+// Get total confirmed user IDs...
+define('user_confirmed'  , round(GET_TOTAL_DATA("CONFIRMED"  , "user_data", "userid", "status", true)));
+define('user_unconfirmed', round(GET_TOTAL_DATA("UNCONFIRMED", "user_data", "userid", "status", true)));
+define('user_locked'     , round(GET_TOTAL_DATA("LOCKED"     , "user_data", "userid", "status", true)));
+define('user_count'      , (user_confirmed + user_unconfirmed + user_locked));
+
+// Start of this exchange
+define('__MT_START', MAKE_DATETIME($CONFIG['mt_start'], "3"));
+
+// Projected number of members
+define('__MT_STAGE', $CONFIG['mt_stage']);
+
+// Project timestamp when number of members are reached
+$PROJECTED = round((time() - $CONFIG['mt_start']) / user_count * $CONFIG['mt_stage'] + $CONFIG['mt_start']);
+$YEAR = date("Y", $PROJECTED); $MONTH = date("m", $PROJECTED); $DAY = date("d", $PROJECTED);
+$TEST = mktime(0, 0, 0, $MONTH, $DAY, $YEAR);
+if ($TEST > time())
+{
+       define('__MT_PROJECTED', MAKE_DATETIME($PROJECTED, "3"));
+}
+ else
+{
+       define('__MT_PROJECTED', USER_PROJECTION_UNKNOWN);
+}
+
+// User who can receive mails
+$result_max = SQL_QUERY("SELECT COUNT(max_mails) FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND max_mails > 0", __FILE__, __LINE__);
+list($dummy) = SQL_FETCHROW($result_max);
+SQL_FREERESULT($result_max);
+define('user_max_mails', $dummy);
+
+// Users who can receive mails today
+$result_rec = SQL_QUERY("SELECT COUNT(receive_mails) FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND receive_mails > 0", __FILE__, __LINE__);
+list($dummy) = SQL_FETCHROW($result_rec);
+SQL_FREERESULT($result_rec);
+define('user_max_rec', $dummy);
+
+// Max mails per day
+$result_max = SQL_QUERY("SELECT SUM(max_mails) FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND max_mails > 0", __FILE__, __LINE__);
+list($dmy) = SQL_FETCHROW($result_max);
+SQL_FREERESULT($result_max);
+define('max', $dmy);
+
+// Max mails for this day
+$result_rec = SQL_QUERY("SELECT SUM(receive_mails) FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND receive_mails > 0", __FILE__, __LINE__);
+list($dummy) = SQL_FETCHROW($result_rec);
+define('rec', $dummy);
+SQL_FREERESULT($result_rec);
+
+// Initial lots of variables
+$bmails = "0"; $sent = "0"; $max = "0"; $rec = "0"; $clicks = "0";
+
+// Mail orders (only current)
+$nmails = MEDIA_GET_ENTRY("normal_orders");
+if (empty($nmails)) $nmails = "0";
+
+// Mails sent so far
+$clicks = MEDIA_GET_ENTRY("normal_clicks");
+$sent   = MEDIA_GET_ENTRY("normal_send");
+if (empty($sent))   $sent   = "0";
+if (empty($clicks)) $clicks = "0";
+
+// Bonus mails
+if (EXT_IS_ACTIVE("bonus"))
+{
+       $bmails = MEDIA_GET_ENTRY("bonus_orders");
+       if (empty($bmails)) $bmails = "0";
+
+       // Count bonus mails clicks / sent mails
+       $dmy  = MEDIA_GET_ENTRY("bonus_clicks");
+       $dmy2 = MEDIA_GET_ENTRY("bonus_send");
+       if (empty($dmy))  $dmy  = "0";
+       if (empty($dmy2)) $dmy2 = "0";
+       $sent += $dmy2; $clicks += $dmy;
+}
+
+define('user_stats', ($nmails + $bmails));
+define('sent'      , $sent);
+
+// All clicks
+define ('user_links', abs($sent - $clicks));
+
+$clr = "0.00000";
+if ($sent > 0) $clr = $clicks / $sent * 100;
+define('_clr', TRANSLATE_COMMA($clr)."%");
+
+// Load jackpot
+$result = SQL_QUERY("SELECT points FROM "._MYSQL_PREFIX."_jackpot WHERE ok='ok' LIMIT 1", __FILE__, __LINE__);
+list($jackpot) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+if (empty($jackpot)) $jackpot = "0";
+define('jackpot', TRANSLATE_COMMA($jackpot));
+
+// Total referral link clicks, total logins
+$result = SQL_QUERY("SELECT DISTINCT SUM(d.ref_clicks), SUM(d.total_logins)
+FROM "._MYSQL_PREFIX."_user_data AS d", __FILE__, __LINE__);
+list($ref, $logins) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+// Get total points
+$points = MEDIA_GET_ENTRY("total_points");
+
+if (empty($points)) $points = "0";
+if (empty($ref))    $ref    = "0";
+if (empty($logins)) $logins = "0";
+
+define('__TOTAL_POINTS'   , TRANSLATE_COMMA($points));
+define('__TOTAL_REFCLICKS', $ref);
+define('__TOTAL_LOGINS'   , $logins);
+
+// Referral banner
+$result = SQL_QUERY("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_refbanner WHERE visible='Y'", __FILE__, __LINE__);
+list($total) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+$result = SQL_QUERY("SELECT SUM(counter), SUM(clicks) FROM "._MYSQL_PREFIX."_refbanner WHERE visible='Y'", __FILE__, __LINE__);
+list($views, $clicks) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+if (empty($total))  $total  = "0";
+if (empty($views))  $views  = "0";
+if (empty($clicks)) $clicks = "0";
+
+define('__REF_TOTAL' , $total);
+define('__REF_VIEWS' , $views);
+define('__REF_CLICKS', $clicks);
+
+//
+// Extra mediadata depending on installed extensions
+//
+
+// Initialize Variables
+$OUT_EXTRA   = ""; $ROWS_EXTRA   = 2;
+$OUT_POINTS  = ""; $ROWS_POINTS  = 2;
+$OUT_USER    = ""; $ROWS_USER    = 6;
+$OUT_SPECIAL = ""; // We don't need row count here
+
+if (EXT_IS_ACTIVE("beg"))
+{
+       // Clicks on beg links
+       $result = SQL_QUERY("SELECT SUM(beg_clicks) FROM "._MYSQL_PREFIX."_user_data WHERE beg_clicks>0", __FILE__, __LINE__);
+       list($extra) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+       if (empty($extra)) $extra = "0";
+       $content = array(
+               'lang'  => MEDIA_BEG_CLICKS,
+               'value' => $extra
+       );
+       $OUT_EXTRA .= LOAD_TEMPLATE("mediadata_extra_row", true, $content);
+       $ROWS_EXTRA++;
+}
+if (EXT_IS_ACTIVE("doubler"))
+{
+       // Total payed points
+       $result = SQL_QUERY("SELECT COUNT(id), SUM(points) FROM "._MYSQL_PREFIX."_doubler WHERE completed='Y' AND points > 0", __FILE__, __LINE__);
+       list($count1, $points1) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+       $result = SQL_QUERY("SELECT COUNT(id), SUM(points) FROM "._MYSQL_PREFIX."_doubler WHERE completed='N' AND points > 0", __FILE__, __LINE__);
+       list($count2, $points2) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       if (empty($count1))  $count1  = "0";
+       if (empty($count2))  $count2  = "0";
+       if (empty($points1)) $points1 = "0";
+       if (empty($points2)) $points2 = "0";
+
+       // Add header
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_hrow", true, MEDIA_DOUBLER_HEADER);
+
+       // Add first line (count)
+       $content = array(
+               'lang'  => MEDIA_DOUBLER_COUNT,
+               'value' => $count1,
+               'rows'  => "4"
+       );
+       // Add points
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_row2", true, $content);
+       $content = array(
+               'lang'  => MEDIA_DOUBLER_CPOINTS,
+               'value' => TRANSLATE_COMMA($points1)
+       );
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_row", true, $content);
+       $content = array(
+               'lang'  => MEDIA_DOUBLER_WAITING,
+               'value' => TRANSLATE_COMMA($count2)
+       );
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_row", true, $content);
+       $content = array(
+               'lang'  => MEDIA_DOUBLER_WPOINTS,
+               'value' => TRANSLATE_COMMA($points2)
+       );
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_row", true, $content);
+}
+
+if (EXT_IS_ACTIVE("holiday"))
+{
+       // Total holiday requests
+       $result = SQL_QUERY("SELECT DISTINCT COUNT(h.userid)
+FROM "._MYSQL_PREFIX."_user_holidays AS h
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON h.userid=d.userid
+WHERE d.holiday_active='Y'",
+ __FILE__, __LINE__);
+       list($holiday) = SQL_FETCHROW($result);
+       if (empty($holiday)) $holiday = "0";
+       $content = array(
+               'lang'  => MEDIA_HOLIDAY_COUNT,
+               'value' => $holiday
+       );
+       $OUT_USER .= LOAD_TEMPLATE("mediadata_extra_row", true, $content);
+       $ROWS_USER++;
+}
+
+if (EXT_IS_ACTIVE("transfer"))
+{
+       // Statistics for points transfers
+       $result = SQL_QUERY("SELECT DISTINCT COUNT(t.id), SUM(t.points)
+FROM "._MYSQL_PREFIX."_user_transfers_in AS t
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON t.userid=d.userid",
+ __FILE__, __LINE__);
+       list($count_in, $points_in) = SQL_FETCHROW($result);
+       if (empty($count_in))  $count_in  = "0";
+       if (empty($points_in)) $points_in = "0";
+
+       $result = SQL_QUERY("SELECT DISTINCT COUNT(t.id), SUM(t.points)
+FROM "._MYSQL_PREFIX."_user_transfers_out AS t
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON t.userid=d.userid",
+ __FILE__, __LINE__);
+       list($count_out, $points_out) = SQL_FETCHROW($result);
+       if (empty($count_out))  $count_out  = "0";
+       if (empty($points_out)) $points_out = "0";
+
+       // Add header
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_hrow", true, MEDIA_TRANSFER_HEADER);
+       $content = array(
+               'lang'  => MEDIA_TRANSFER_IN_COUNT,
+               'value' => $count_in,
+               'rows'  => "4"
+       );
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_row2", true, $content);
+       $content = array(
+               'lang'  => MEDIA_TRANSFER_IN_POINTS,
+               'value' => TRANSLATE_COMMA($points_in)
+       );
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_row", true, $content);
+       $content = array(
+               'lang'  => MEDIA_TRANSFER_OUT_COUNT,
+               'value' => $count_out
+       );
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_row", true, $content);
+       $content = array(
+               'lang'  => MEDIA_TRANSFER_OUT_POINTS,
+               'value' => TRANSLATE_COMMA($points_out)
+       );
+       $OUT_SPECIAL .= LOAD_TEMPLATE("mediadata_extra_row", true, $content);
+}
+
+define('__EXTRA_MEDIADATA'  , $OUT_EXTRA);
+define('__POINTS_MEDIADATA' , $OUT_POINTS);
+define('__USER_MEDIADATA'   , $OUT_USER);
+define('__SPECIAL_MEDIADATA', $OUT_SPECIAL);
+define('__ROWSPAN_EXTRA'    , $ROWS_EXTRA);
+define('__ROWSPAN_POINTS'   , $ROWS_POINTS);
+define('__ROWSPAN_USER'     , $ROWS_USER);
+
+// Patch level and it's timespamp
+define('__PATCH_LEVEL', $CONFIG['patch_level']);
+define('__PATCH_CTIME', MAKE_DATETIME($CONFIG['patch_ctime'], "2"));
+
+// Load template
+OPEN_TABLE("100%", "guest_content", "center", "top");
+LOAD_TEMPLATE("mediadata");
+CLOSE_TABLE();
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-my_weblog.php b/0.2.1/inc/modules/guest/what-my_weblog.php
new file mode 100644 (file)
index 0000000..b4c6f50
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ================                             Last change: 10/19/2003 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Special file
+require_once (PATH."inc/rdf.class.php");
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OUTPUT_HTML("<DIV style=\"padding-left: 10px; padding-right: 10px\">");
+$rdf = new fase4_rdf;
+$rdf->use_dynamic_display(false);
+$rdf->set_CacheDir(PATH."cache/");
+$rdf->set_salt(SITE_KEY);
+$rdf->set_Options(
+       array(
+               "textinput" => "hidden",
+               "sitelink"  => "http://blog.mxchange.org"
+       )
+);
+$rdf->set_max_item(10);
+$rdf->parse_RDF("http://blog.mxchange.org/feed/");
+$rdf->finish();
+$rdf->clear_cache();
+OUTPUT_HTML("</DIV>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-rallyes.php b/0.2.1/inc/modules/guest/what-rallyes.php
new file mode 100644 (file)
index 0000000..aa1842c
--- /dev/null
@@ -0,0 +1,148 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/29/2004 *
+ * ================                             Last change: 08/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-rallyes.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Ref rallyes                                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ref-Rallyes                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("rallye")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "rallye");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OUTPUT_HTML ("<DIV align=\"center\">");
+
+// Check for possible running rallyes
+$ADMIN = " AND d.is_active='Y'";
+if (IS_ADMIN()) $ADMIN = "";
+
+$result = SQL_QUERY("SELECT DISTINCT d.id, d.admin_id, a.login, d.title, d.descr, d.template, d.start_time, d.end_time, d.min_users, d.min_prices
+FROM "._MYSQL_PREFIX."_rallye_data AS d, "._MYSQL_PREFIX."_admins AS a
+WHERE d.admin_id=a.id".$ADMIN." AND d.notified='Y'
+ORDER BY d.end_time LIMIT 1", __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result) == 1)
+{
+       // Found some (normally one...
+       list($id, $aid, $login, $title, $descr, $templ, $start, $end, $min_users, $min_prices) = SQL_FETCHROW($result);
+
+       $expired = false;
+       if ($end < time())
+       {
+               // Rallye is expired
+               define('__RALLYE_EXTRAS', RALLYE_HAS_EXPIRED);
+               $expired = true;
+       }
+        elseif (time() >= ($end - ONE_DAY))
+       {
+               // Rallye will expire in less one day!
+               define('__RALLYE_EXTRAS', RALLYE_EXPIRE_ONE_DAY);
+       }
+        else
+       {
+               define('__RALLYE_EXTRAS', "<A href=\"".URL."/modules.php?module=index&amp;what=register\">".RALLYE_REGISTER_NOW."</A>");
+       }
+       // Set admin line (currently set to impressum, later to contact form)
+       define('__RALLYE_ADMIN', "<A href=\"".URL."/modules.php?module=index&amp;what=impressum&amp;admin=".$aid."\">".$login."</A>");
+
+       // Set title
+       define('__RALLYE_TITLE', COMPILE_CODE($title));
+
+       // Handle description...
+       if ((empty($descr)) && (!empty($templ)))
+       {
+               // Use description from template
+               define('__RALLYE_DESCR', LOAD_TEMPLATE("rallye_".$templ, true));
+       }
+        else
+       {
+               // Use description from database
+               define('__RALLYE_DESCR', COMPILE_CODE($descr));
+       }
+
+       // Set start and end time
+       define('__RALLYE_START', MAKE_DATETIME($start, "1"));
+       define('__RALLYE_END'  , MAKE_DATETIME($end  , "1"));
+
+       if ($min_users == 0)
+       {
+               // Rallye ends without user limitation
+               define('__RALLYE_MAX_USERS', RALLYE_END_NO_USER_LIMITATION);
+       }
+        else
+       {
+               // Rallye ends when X members are totally in your exchange
+               define('__RALLYE_MAX_USERS', RALLYE_END_USERS_1." ".$min_users." ".RALLYE_END_USERS_2);
+       }
+       if ($min_prices == 0)
+       {
+               // Rallye ends without user limitation
+               define('__RALLYE_MIN_PRICES', RALLYE_END_NO_PRICE_LIMITATION);
+       }
+        else
+       {
+               // Rallye ends when X members are totally in your exchange
+               define('__RALLYE_MIN_PRICES', RALLYE_END_PRICES_1." ".$min_prices." ".RALLYE_END_PRICES_2);
+       }
+
+       if ($expired)
+       {
+               define('__RALLYE_PRICES', RALLYE_LIST_WINNERS($id));
+               define('__RALLYE_TOP_USERS', "<DIV align=\"center\" class=\"big\">".__RALLYE_EXTRAS."</DIV>");
+               define('__RALLYE_CAN_WIN_THIS', RALLYE_OUR_WINNERS_ARE);
+       }
+        else
+       {
+               define('__RALLYE_PRICES', RALLYE_ADD_PRICES($id, "html"));
+               define('__RALLYE_TOP_USERS', RALLYE_ADD_TOPUSERS($id, $GLOBALS['userid']));
+               define('__RALLYE_CAN_WIN_THIS', RALLYE_YOU_CAN_WIN);
+       }
+
+       // And load final template
+       LOAD_TEMPLATE("guest_rallye_show");
+}
+ else
+{
+       // No rallye found so far
+       LOAD_TEMPLATE("guest_no_rallyes");
+}
+//
+OUTPUT_HTML ("</DIV>");
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-register.php b/0.2.1/inc/modules/guest/what-register.php
new file mode 100644 (file)
index 0000000..39f60d1
--- /dev/null
@@ -0,0 +1,486 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/10/2003 *
+ * ===============                              Last change: 11/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-register.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Registration form                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Anmeldeformular                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("register")))
+{
+       if (IS_ADMIN()) {
+               ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "register"));
+       } else {
+               ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "register");
+       }
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OPEN_TABLE("100%", "guest_content_align", "");
+global $CONFIG, $DATA;
+
+// Initialize variables
+$FAILED = false; $SHORT_PASS = false; $cats = 0; $IP_TIMEOUT = false;
+if (!isset($_POST['ok']))          unset($_POST['ok']);
+if (empty($_POST['agree']))        $_POST['agree']        = "";
+if (empty($_POST['addy']))         $_POST['addy']         = "";
+if (empty($_POST['surname']))      $_POST['surname']      = "";
+if (empty($_POST['family_name']))  $_POST['family_name']  = "";
+if (empty($_POST['pass1']))        $_POST['pass1']        = "";
+if (empty($_POST['pass2']))        $_POST['pass2']        = "";
+if (empty($_POST['day']))          $_POST['day']          = "";
+if (empty($_POST['month']))        $_POST['month']        = "";
+if (empty($_POST['year']))         $_POST['year']         = "";
+if (empty($_POST['max_mails']))    $_POST['max_mails']    = "";
+if (empty($_POST['street_nr']))    $_POST['street_nr']    = "";
+if (empty($_POST['zip']))          $_POST['zip']          = "";
+if (empty($_POST['city']))         $_POST['city']         = "";
+if (empty($_POST['cntry']))        $_POST['cntry']        = "";
+if (empty($_POST['country_code'])) $_POST['country_code'] = "1";
+
+if (isset($_POST['ok']))
+{
+       // First we only check the submitted data then we continue... :)
+       //
+       // Did he agree to our Terms Of Usage?
+       if ($_POST['agree'] != "Y")
+       {
+               $_POST['agree'] = "!";
+               $FAILED = true;
+       }
+
+       // Did he enter a valid email address? (we really don't care about
+       // that, he has to click on a confirmation link :P )
+       if ((empty($_POST['addy'])) || (!VALIDATE_EMAIL($_POST['addy'])))
+       {
+               $_POST['addy'] = "!";
+               $FAILED = true;
+       }
+
+       // And what about surname and family's name?
+       if (empty($_POST['surname']))
+       {
+               $_POST['surname'] = "!";
+               $FAILED = true;
+       }
+       if (empty($_POST['family_name']))
+       {
+               $_POST['family_name'] = "!";
+               $FAILED = true;
+       }
+
+       // Check for required fields
+       if (!$FAILED) $FAILED = REGISTER_CHECK_REQUIRED_FIELDS($_POST);
+
+       // Did he enter his password twice?
+       if (((empty($_POST['pass1'])) || (empty($_POST['pass2']))) || (($_POST['pass1'] != $_POST['pass2']) && (!empty($_POST['pass1'])) && (!empty($_POST['pass2']))))
+       {
+               if (($_POST['pass1'] != $_POST['pass2']) && (!empty($_POST['pass1'])) && (!empty($_POST['pass2'])))
+               {
+                       $_POST['pass1'] = "!";
+                       $_POST['pass2'] = "!";
+               }
+                else
+               {
+                       if (empty($_POST['pass1'])) { $_POST['pass1'] = "!"; } else { $_POST['pass1'] = ""; }
+                       if (empty($_POST['pass2'])) { $_POST['pass2'] = "!"; } else { $_POST['pass2'] = ""; }
+               }
+               $FAILED = true;
+       }
+       // Is the password long enouth?
+       if ((strlen($_POST['pass1']) < $CONFIG['pass_len']) && (!$FAILED) && (!IS_ADMIN()))
+       {
+               $SHORT_PASS = true;
+               $FAILED = true;
+       }
+       // Did he select enougth categories?
+       if (!IS_ADMIN())
+       {
+               // Do this check only when no admin is logged in
+               foreach ($_POST['cat'] as $id=>$answer)
+               {
+                       if ($answer == "Y") $cats++;
+               }
+               if ($cats < $CONFIG['least_cats'])
+               {
+                       // ... nope!
+                       $FAILED = true;
+               }
+       }
+       if (($_POST['addy'] != "!") && ($CONFIG['check_double_email'] == "Y") && (!IS_ADMIN()))
+       {
+               // Does the email address already exists in our database?
+               $CHK = SEARCH_EMAIL_USERTAB($_POST['addy']);
+               if ($CHK) { $_POST['addy'] = "?"; $FAILED = true; }
+       }
+
+       // Check his IP number
+       $to = bigintval(time() - $CONFIG['ip_timeout']);
+       $result = SQL_QUERY_ESC("SELECT joined, last_update FROM "._MYSQL_PREFIX."_user_data WHERE REMOTE_ADDR='%s' AND (joined > %s OR last_update > %s) LIMIT 1",
+        array(getenv('REMOTE_ADDR'), $to, $to), __FILE__, __LINE__);
+       if ((SQL_NUMROWS($result) == 1) && (!IS_ADMIN()))
+       {
+               // Same IP in timeout range and different email address entered... Eat this, faker! ;-)
+               // But admins are allowed to fake their own exchange service.
+               $IP_TIMEOUT = true;
+               $FAILED = true;
+       }
+
+       // Test the refid (because some strange hackers... :-P)
+       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($GLOBALS['refid'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Not found so we set your refid!
+               $_POST['refid'] = $CONFIG['def_refid'];
+               @setcookie("refid", $CONFIG['def_refid'], (time() + $CONFIG['online_timeout']), COOKIE_PATH);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+
+if ((isset($_POST['ok'])) && (!$FAILED))
+{
+       // Save the registration
+       if (strlen($_POST['day'])   == 1) $_POST['day']   = "0".$_POST['day'];
+       if (strlen($_POST['month']) == 1) $_POST['month'] = "0".$_POST['month'];
+
+       // Hash = MM-DD-YYYY:IP:USER_AGENT:TIMEMARK
+       $hash = generateHash($_POST['month']."-".$_POST['day']."-".$_POST['year'].":".getenv('SERVER_NAME').":".getenv('REMOTE_ADDR').":".getenv('HTTP_USER_AGENT').":".time());
+
+       // Add design when extension sql_patches is v0.2.7 or greater
+       $ADD1 = ""; $ADD2 = "";
+       if (GET_EXT_VERSION("sql_patches") >= "0.2.7")
+       {
+               // Okay, add design here
+               $ADD1 = ", curr_theme";
+               $ADD2 = ", '".GET_CURR_THEME()."'";
+       }
+
+       // Check if I shall disable sending mail to newly registered members out about active/begging rallye
+       //
+       // First comes first: begging rallye
+       if (GET_EXT_VERSION("beg") >= "0.1.7")
+       {
+               // Okay, shall I disable now?
+               if ($CONFIG['beg_new_mem_notify'] == "N")
+               {
+                       $ADD1 .= ", beg_ral_notify, beg_ral_en_notify";
+                       $ADD2 .= ", UNIX_TIMESTAMP(), UNIX_TIMESTAMP()";
+               }
+       }
+
+       // Second: active rallye
+       if (GET_EXT_VERSION("bonus") >= "0.7.7")
+       {
+               // Okay, shall I disable now?
+               if ($CONFIG['bonus_new_mem_notify'] == "N")
+               {
+                       $ADD1 .= ", bonus_ral_notify, bonus_ral_en_notify";
+                       $ADD2 .= ", UNIX_TIMESTAMP(), UNIX_TIMESTAMP()";
+               }
+       }
+
+       // Write user data to table
+       if (EXT_IS_ACTIVE("country"))
+       {
+               // Save with new selectable country code
+               $countryRow = "country_code";
+               $countryData = bigintval($_POST['country_code']);
+       }
+        else
+       {
+               // Old way with enterable two-char-code
+               $countryRow = "country";
+               $countryData = addslashes(substr($_POST['cntry'], 0, 2));
+       }
+
+       //////////////////////////////
+       // Create user's account... //
+       //////////////////////////////
+       //
+       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_data (sex, surname, family, street_nr, %s, zip, city, email, birth_day, birth_month, birth_year, password, max_mails, receive_mails, refid, status, user_hash, REMOTE_ADDR, joined, last_update".$ADD1.")
+VALUES ('%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', %d, %d, %d, 'UNCONFIRMED', '%s', '%s', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()".$ADD2.")",
+array(
+       $countryRow,
+       addslashes(substr($_POST['sex'], 0, 1)),
+       addslashes($_POST['surname']),
+       addslashes($_POST['family_name']),
+       addslashes($_POST['street_nr']),
+       $countryData,
+       bigintval($_POST['zip']),
+       addslashes($_POST['city']),
+       addslashes($_POST['addy']),
+       bigintval($_POST['day']),
+       bigintval($_POST['month']),
+       bigintval($_POST['year']),
+       generateHash($_POST['pass1']),
+       bigintval($_POST['max_mails']),
+       bigintval($_POST['max_mails']),
+       bigintval($_POST['refid']),
+       $hash,
+       getenv('REMOTE_ADDR'),
+), __FILE__, __LINE__);
+
+       // Get his userid
+       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE user_hash='%s' LIMIT 1",
+        array($hash), __FILE__, __LINE__);
+       list($userid) = SQL_FETCHROW($result);
+
+       // Secure userid (we have a little paranoia ;-) )
+       $userid = bigintval($userid);
+
+       // Write his welcome-points
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_points WHERE userid=%d AND ref_depth=0 LIMIT 1",
+        array(bigintval($userid)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Add only when the line was not found (maybe some more secure?)
+               $locked = "points";
+               if ($CONFIG['ref_payout'] > 0) $locked = "locked_points"; // Pay him later. First he has to confirm some mails!
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_points (userid, ref_depth, ".$locked.") VALUES(%d, 0, '%s')",
+                array(bigintval($userid), $CONFIG['points_register']), __FILE__, __LINE__);
+
+               // Update mediadata as well
+               if ((GET_EXT_VERSION("mediadata") >= "0.0.4") && ($locked == "points")) {
+                       // Update database
+                       MEDIA_UPDATE_ENTRY(array("total_points"), "add", $CONFIG['points_register']);
+               }
+       }
+
+       // Write catgories
+       if ((is_array($_POST['cat'])) && (count($_POST['cat']))) {
+               foreach ($_POST['cat'] as $cat=>$joined) {
+                       if ($joined == "Y") {
+                               // Insert category entry
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_cats (userid, cat_id) VALUES (%d, %d)",
+                                array(bigintval($userid), bigintval($cat)), __FILE__, __LINE__);
+                       }
+               }
+       }
+
+       // Rewrite sex
+       $sex = TRANSLATE_SEX($_POST['sex']);
+
+       // ... rewrite a zero referral ID to the main title
+       if ($_POST['refid'] == "0") $_POST['refid'] = MAIN_TITLE;
+
+       // Prepare data array for the email template
+       // Start with the salutation...
+       $DATA = array(
+               'hash'    => $hash,
+               'uid'     => $userid,
+               'salut'   => $sex,
+               'surname' => $_POST['surname'],
+               'family'  => $_POST['family_name'],
+               'email'   => $_POST['addy'],
+               'street'  => $_POST['street_nr'],
+               'city'    => $_POST['city'],
+               'zip'     => bigintval($_POST['zip']),
+               'country' => $countryData,
+               'refid'   => $_POST['refid'],
+               'pass'    => $_POST['pass1'],
+       );
+
+       // Continue with birthday...
+       switch (GET_LANGUAGE())
+       {
+       case "de":
+               $DATA['birthday'] = $_POST['day'].".".$_POST['month'].".".$_POST['year'];
+               break;
+
+       default:
+               $DATA['birthday'] = $_POST['month']."/".$_POST['day']."/".$_POST['year'];
+               break;
+       }
+
+       // Display information to the user that he got mail and send it away
+       $msg_guest = LOAD_EMAIL_TEMPLATE("register-member", $DATA, $userid);
+
+       // Send mail to user (confirmation link!)
+       $EMAIL = $DATA['email'];
+       SEND_EMAIL ($DATA['email'], GUEST_CONFIRM_LINK, $msg_guest);
+       $DATA['email'] = $EMAIL;
+
+       // Send mail to admin
+       if (GET_EXT_VERSION("admins") >= "0.4.1")
+       {
+               // Use new system
+               SEND_ADMIN_EMAILS_PRO(ADMIN_NEW_ACCOUNT, "register-admin", $DATA, $userid);
+       }
+        else
+       {
+               // Use old system
+               $msg_admin = LOAD_EMAIL_TEMPLATE("register-admin", $DATA, $userid);
+               SEND_ADMIN_EMAILS (ADMIN_NEW_ACCOUNT, $msg_admin);
+       }
+
+       // Output success registration
+       LOAD_TEMPLATE("admin_settings_saved", false, REGISTRATION_DONE);
+}
+ else
+{
+       if ($_POST['agree'] == "!")
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".HAVE_TO_AGREE."</SPAN></STRONG><BR><BR>");
+       }
+       if ($_POST['addy'] == "!")
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".ENTER_EMAIL."</SPAN></STRONG><BR><BR>");
+               $_POST['addy'] = "";
+       }
+        elseif ($_POST['addy'] == "?")
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".EMAIL_ALREADY_DB."</SPAN></STRONG><BR><BR>");
+               $_POST['addy'] = "";
+       }
+       if ($_POST['surname'] == "!")
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".ENTER_SURNAME."</SPAN></STRONG><BR><BR>");
+               $_POST['surname'] = "";
+       }
+       if ($_POST['family_name'] == "!")
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".ENTER_FAMILY."</SPAN></STRONG><BR><BR>");
+               $_POST['family_name'] = "";
+       }
+       if (($_POST['pass1'] == "!") && ($_POST['pass2'] == "!"))
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".ENTER_BOTH_PASSWORDS."</SPAN></STRONG><BR><BR>");
+       }
+        elseif ($_POST['pass1'] == "!")
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".ENTER_PASS1."</SPAN></STRONG><BR><BR>");
+       }
+        elseif ($_POST['pass2'] == "!")
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".ENTER_PASS2."</SPAN></STRONG><BR><BR>");
+       }
+       if ($SHORT_PASS)
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".SHORT_PASS.": ".$CONFIG['pass_len']."</SPAN></STRONG><BR><BR>");
+       }
+       if ($IP_TIMEOUT)
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".REMOTE_ADDR_TIMEOUT."</SPAN></STRONG><BR><BR>");
+       }
+       if ((!empty($cats)) && ($cats < $CONFIG['least_cats']))
+       {
+               OUTPUT_HTML ("<STRONG><SPAN class=\"register_failed\">".CATS_LEAST.": ".$CONFIG['least_cats']."</SPAN></STRONG><BR><BR>");
+       }
+
+       // Generate birthday selection
+       switch (GET_LANGUAGE())
+       {
+       case "de": // German date format
+               define('BIRTHDAY_SELECTION', ADD_SELECTION("day", $_POST['day']).ADD_SELECTION("month", $_POST['month']).ADD_SELECTION("year", $_POST['year']));
+               break;
+
+       default: // Default is the US date format... :)
+               break;
+       }
+
+       // Adds a table for the guests with all visible categories
+       define ('CATEGORY_SELECTION', REGISTER_ADD_CATEGORY_TABLE("guest", true));
+
+       // Adds maximum receiveable mails list... :)
+       define ('MAX_RECEIVE_LIST', ADD_MAX_RECEIVE_LIST("guest", "", true));
+
+       // Check if nickname extension is active and get state if nickname is selected or userid
+       $nick = false;
+       if (EXT_IS_ACTIVE("nickname")) $nick = NICKNAME_IS_ACTIVE($GLOBALS['refid']);
+
+       // Is the nickname valid?
+       if (!$nick) {
+               // Nope, disable it
+               if (GET_EXT_VERSION("sql_patches") != "") {
+                       // Use default refid
+                       $GLOBALS['refid'] = $CONFIG['def_refid'];
+               } else {
+                       // Set zero
+                       $GLOBALS['refid'] = 0;
+               }
+       }
+
+       // Shall I display the refid or shall I make it editable?
+       if ($CONFIG['display_refid'] == "Y") {
+               // Load template to enter it
+               define('REFID_CONTENT', LOAD_TEMPLATE("guest_register_refid", true, $GLOBALS['refid']));
+       } else {
+               // Load "hide" form template
+               define ('REFID_CONTENT', LOAD_TEMPLATE("guest_register_refid_hide", true, $GLOBALS['refid']));
+       }
+
+       // You may want to modify the register_header.tpl.xx file and not this script when you add your scripts etc. :-)
+       define('REGISTER_HEADER_CONTENT', LOAD_TEMPLATE("register_header", true));
+
+       // Please select at least x categories
+       define('LEAST_CATS_VALUE', $CONFIG['least_cats']);
+
+       // Other values
+       define('__SURNAME', $_POST['surname']);   define('__FAMILY',  $_POST['family_name']);
+       define('__STREET',  $_POST['street_nr']); define('__COUNTRY', $_POST['cntry']);
+       define('__ZIP',     $_POST['zip']);       define('__CITY',    $_POST['city']);
+       define('__ADDY',    $_POST['addy']);
+
+       // Shall I add a counrty selection box or the old input box?
+       if (EXT_IS_ACTIVE("country"))
+       {
+               // New variant, good!
+               $OUT  = "<SELECT name=\"country_code\" class=\"guest_select\" size=\"1\">\n";
+               $WHERE = "WHERE is_active='Y'";
+               if (IS_ADMIN()) $WHERE = "";
+               $OUT .= ADD_OPTION_LINES("countries", "id", "descr", $_POST['country_code'], "code", $WHERE);
+               $OUT .= "</SELECT>";
+               define('__COUNTRY_CONTENT', $OUT);
+       }
+        else
+       {
+               // Old out-dated variant
+               define('__COUNTRY_CONTENT', "<INPUT type=\"text\" name=\"cntry\" class=\"guest_normal\" size=\"2\" maxlength=\"3\" value=\"".__COUNTRY."\">");
+       }
+
+       // Set MUST_??? constants
+       if ((EXT_IS_ACTIVE("register")) && (GET_EXT_VERSION("register") > "0.0")) REGISTER_FILL_MUST_CONSTANTS();
+
+       // Display registration form
+       LOAD_TEMPLATE("guest_register");
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-stats.php b/0.2.1/inc/modules/guest/what-stats.php
new file mode 100644 (file)
index 0000000..523fb8a
--- /dev/null
@@ -0,0 +1,229 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/14/2003 *
+ * ================                             Last change: 08/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-stats.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Statistics                                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Statistiken                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+// Derterminate which stats we want and set mode and title for the link below stats block
+if (!isset($_GET['mode'])) $_GET['mode'] = strtolower($CONFIG['guest_stats']);
+switch ($_GET['mode'])
+{
+       case "members": $CONFIG['guest_stats'] = "MEMBERS"; $lmode = "modules"; $ltitle = GUEST_STATS_MODULES; break;
+       case "modules": $CONFIG['guest_stats'] = "MODULES"; $lmode = "members"; $ltitle = GUEST_STATS_MEMBERS; break;
+}
+
+OPEN_TABLE("100%", "guest_content", "center", "top");
+switch ($CONFIG['guest_stats'])
+{
+case "MEMBERS": // Statistics about your members
+       // Members yesterday / today online
+       $ymem = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE last_online >= ".START_YDAY." AND last_online < ".START_TDAY." AND status='CONFIRMED'", __FILE__, __LINE__));
+       $tmem = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE last_online >= ".START_TDAY." AND status='CONFIRMED'", __FILE__, __LINE__));
+
+       // Yesterday / today registered
+       $yreg = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE joined >= ".START_YDAY." AND joined < ".START_TDAY, __FILE__, __LINE__));
+       $treg = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE joined >= ".START_TDAY, __FILE__, __LINE__));
+
+       // Only males / females
+       $male   = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE sex='M' AND status='CONFIRMED'", __FILE__, __LINE__));
+       $female = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE sex='F' AND status='CONFIRMED'", __FILE__, __LINE__));
+
+       // Unconfirmed accounts
+       $unconfirmed = SQL_NUMROWS(SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status != 'CONFIRMED'", __FILE__, __LINE__));
+
+       // Total members
+       $total = $male + $female;
+
+       // List every month
+       $months = array();
+       for ($idx = 1; $idx < 13; $idx++)
+       {
+               $month = $idx; if ($idx < 10) $month = "0".$idx;
+               $months[$month] = SQL_NUMROWS(SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE birth_month=%d AND status='CONFIRMED'",
+                array(bigintval($month)), __FILE__, __LINE__));
+       }
+
+       // Members in categories
+       $result = SQL_QUERY("SELECT id, cat FROM "._MYSQL_PREFIX."_cats WHERE visible='Y' ORDER BY id", __FILE__, __LINE__);
+
+       // Load categories first
+       $cats = array(); $cat_cnt = array();
+       while (list($id, $cat) = SQL_FETCHROW($result))
+       {
+               // Simple...
+               $cats[$id] = $cat;
+       }
+
+       // Now we have all categories loaded, count members
+       foreach ($cats as $id=>$dummy)
+       {
+               // We only need id and nothing more to count...
+               $cat_cnt[$id] = SQL_NUMROWS(SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_cats WHERE cat_id=%d",
+                array(bigintval($id)), __FILE__, __LINE__));
+       }
+
+       // Prepare data for the template
+       define('__TOTAL_USERS' , $total);
+       define('__UNCONFIRMED' , $unconfirmed);
+       define('__MALE_COUNT'  , $male);
+       define('__FEMALE_COUNT', $female);
+       define('__TMEM_COUNT'  , $tmem);
+       define('__YMEM_COUNT'  , $ymem);
+       define('__TREG_COUNT'  , $treg);
+       define('__YREG_COUNT'  , $yreg);
+       define('__LMODE_VALUE' , $lmode);
+       define('__LINK_TITLE'  , $ltitle);
+
+       // Generate monthly stats
+       $SW = 2; $r2 = " right2"; $l = "ll"; $r = "lr"; $OUT = "";
+       foreach ($months as $month=>$cnt)
+       {
+               if ($SW == 2) $OUT .= "<TR>\n";
+
+               // Prepare data for template
+               $content = array(
+                       'l_class'  => $l,
+                       'm_descr'  => $MONTH_DESCR[$month],
+                       'r_class'  => $r,
+                       'r2_class' => $r2,
+                       'cnt'      => $cnt
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("guest_stats_month_row", true, $content);
+
+               if ($SW == 2)
+               {
+                       $r2 = "";
+                       $l = "rl"; $r = "rr";
+               }
+                else
+               {
+                       $OUT .= "</TR>\n";
+                       $r2 = " right2";
+                       $l = "ll"; $r = "lr";
+               }
+               $SW = 3 - $SW;
+       }
+       define('__MONTH_STATS_ROWS', $OUT);
+
+       // Generate category stats
+       $SW = 2; $OUT = "";
+       foreach ($cat_cnt as $id=>$cnt)
+       {
+               // Prepare data for the template
+               $content = array(
+                       'sw'  => $SW,
+                       'cat' => $cats[$id],
+                       'cnt' => $cnt,
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("guest_stats_cats_row", true, $content);
+               $SW = 3 - $SW;
+       }
+       define('__CATS_STATS_ROWS', $OUT);
+
+       // Load final template
+       LOAD_TEMPLATE("guest_stats_member");
+       break;
+
+case "MODULES": // TOP10 module clicks
+       $AND = "";
+       if (!IS_ADMIN()) $AND = " AND locked='N' AND visible='Y'";
+       $guest_t10 = SQL_QUERY("SELECT counter, title FROM "._MYSQL_PREFIX."_guest_menu WHERE counter > 0".$AND." ORDER BY counter DESC LIMIT 0,10", __FILE__, __LINE__);
+       $mem_t10   = SQL_QUERY("SELECT counter, title FROM "._MYSQL_PREFIX."_member_menu WHERE counter > 0".$AND." ORDER BY counter DESC LIMIT 0,10", __FILE__, __LINE__);
+       if ((SQL_NUMROWS($guest_t10) > 0) || (SQL_NUMROWS($mem_t10) > 0))
+       {
+               // Output header
+               OUTPUT_HTML ("<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"guest_table dashed\" width=\"310\">
+<TR>
+  <TD align=\"center\" class=\"guest_stats_title bottom2\" colspan=\"2\"><STRONG>".GUEST_TOPTEN_STATS."</STRONG></TD>
+</TR>");
+       }
+
+       if (SQL_NUMROWS($guest_t10) > 0)
+       {
+               // Guest clicks
+               OUTPUT_HTML ("<TR>
+  <TD align=\"center\" class=\"guest_title2 bottom2\" colspan=\"2\">".GUEST_TOP_GUEST_STATS."</TD>
+</TR>");
+               $SW = 2;
+               while (list($clicks, $title) = SQL_FETCHROW($guest_t10))
+               {
+                       OUTPUT_HTML ("<TR>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"right\" width=\"250\">".$title."&nbsp;</TD>
+  <TD class=\"switch_sw".$SW." bottom2\" width=\"50\">&nbsp;".$clicks."</TD>
+</TR>");
+                       $SW = 3 - $SW;
+               }
+       }
+       if (SQL_NUMROWS($guest_t10) > 0)
+       {
+               // Guest clicks
+               OUTPUT_HTML ("<TR>
+  <TD align=\"center\" class=\"guest_title2 bottom2\" colspan=\"2\">".GUEST_TOP_MEMBER_STATS."</TD>
+</TR>");
+               $SW = 2;
+               while (list($clicks, $title) = SQL_FETCHROW($mem_t10))
+               {
+                       OUTPUT_HTML ("<TR>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"right\" width=\"250\">".$title."&nbsp;</TD>
+  <TD class=\"switch_sw".$SW." bottom2\" width=\"50\">&nbsp;".$clicks."</TD>
+</TR>");
+                       $SW = 3 - $SW;
+               }
+       }
+       if ((SQL_NUMROWS($guest_t10) > 0) || (SQL_NUMROWS($mem_t10) > 0))
+       {
+               // Output footer
+               OUTPUT_HTML ("<TR>
+  <TD align=\"center\" class=\"guest_stats_footer\" colspan=\"2\"><A href=\"".URL."/modules.php?module=index&amp;what=stats&amp;mode=".$lmode."\">".$ltitle."</A></TD>
+</TR>
+</TABLE>");
+       }
+       break;
+
+case "INACTIVE": // Deactivated stats
+       LOAD_TEMPLATE("admin_settings_saved", false, "<STRONG>".GUEST_STATS_DEACTIVATED."</STRONG>");
+       break;
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-top10.php b/0.2.1/inc/modules/guest/what-top10.php
new file mode 100644 (file)
index 0000000..9360b69
--- /dev/null
@@ -0,0 +1,208 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/24/2004 *
+ * ================                             Last change: 11/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-top10.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : TOP logins / best earner etc.                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : TOP-Logins / Bestverdiener usw.                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("top10")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "top10");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+//// TOP logins
+$ADD = "userid";
+if (EXT_IS_ACTIVE("nickname")) $ADD = "nickname";
+$result = SQL_QUERY_ESC("SELECT userid, ".$ADD.", total_logins, last_online
+FROM "._MYSQL_PREFIX."_user_data
+WHERE total_logins>0 AND status='CONFIRMED' ORDER BY total_logins DESC LIMIT %s",
+ array($CONFIG['top10_max']), __FILE__, __LINE__);
+
+$OUT = ""; $SW = 2; $cnt = 1;
+while(list($uid, $nick, $logins, $last) = SQL_FETCHROW($result))
+{
+       $nick2 = "---";
+       if (($nick != $uid) && (!empty($nick))) $nick2 = $nick;
+
+       // Prepare data for template
+       $content = array(
+               'sw'     => $SW,
+               'cnt'    => $cnt,
+               'uid'    => $uid,
+               'nick'   => $nick2,
+               'logins' => $logins,
+               'points' => TRANSLATE_COMMA(GET_TOTAL_DATA($uid, "user_points", "points")),
+               'last'   => MAKE_DATETIME($last, "3"),
+       );
+
+       // Load row template
+       $OUT .= LOAD_TEMPLATE("guest_top10_row_login", true, $content);
+
+       // Switch colors and count one up
+       $SW = 3 - $SW; $cnt++;
+}
+if ($cnt < $CONFIG['top10_max'])
+{
+       // Add more "blank" rows
+       for ($i = $cnt; $i <= $CONFIG['top10_max']; $i++)
+       {
+               // Prepare data for template
+               $content = array(
+                       'sw'  => $SW,
+                       'idx' => $i
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("guest_top10_empty5", true, $content);
+               $SW = 3 - $SW;
+       }
+}
+define('__TOP_LOGINS_ROWS', $OUT);
+
+//// TOP earners
+$result = SQL_QUERY_ESC("SELECT DISTINCT p.userid, d.".$ADD.", (SUM(p.points) - d.used_points) AS tpoints, d.last_online
+FROM "._MYSQL_PREFIX."_user_points AS p
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON p.userid=d.userid
+WHERE p.points > 0 AND d.status='CONFIRMED'
+GROUP BY p.userid
+ORDER BY tpoints DESC, d.last_online DESC
+LIMIT %s",
+ array($CONFIG['top10_max']), __FILE__, __LINE__);
+
+$OUT = ""; $SW = 2; $cnt = 1;
+while(list($uid, $nick, $points, $last) = SQL_FETCHROW($result))
+{
+       $nick2 = "---";
+       if (($nick != $uid) && (!empty($nick))) $nick2 = $nick;
+
+       // Prepare data for template
+       $content = array(
+               'sw'     => $SW,
+               'cnt'    => $cnt,
+               'uid'    => bigintval($uid),
+               'nick'   => $nick2,
+               'points' => TRANSLATE_COMMA($points),
+               'last'   => MAKE_DATETIME($last, "3")
+       );
+
+       // Load row template
+       $OUT .= LOAD_TEMPLATE("guest_top10_row_earner", true, $content);
+
+       // Switch colors and count one up
+       $SW = 3 - $SW; $cnt++;
+}
+if ($cnt < $CONFIG['top10_max'])
+{
+       // Add more "blank" rows
+       for ($i = $cnt; $i <= $CONFIG['top10_max']; $i++)
+       {
+               // Prepare data for template
+               $content = array(
+                       'sw'  => $SW,
+                       'idx' => $i
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("guest_top10_empty4", true, $content);
+               $SW = 3 - $SW;
+       }
+}
+define('__TOP_POINTS_ROWS', $OUT);
+
+//// TOP referral "hunter"
+$result = SQL_QUERY_ESC("SELECT DISTINCT r.userid, d.".$ADD.", SUM(r.counter) AS refs, d.last_online
+FROM "._MYSQL_PREFIX."_refsystem AS r
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON r.userid=d.userid
+WHERE r.counter > 0 AND d.status='CONFIRMED'
+GROUP BY r.userid
+ORDER BY refs DESC, d.last_online DESC
+LIMIT %s",
+ array($CONFIG['top10_max']), __FILE__, __LINE__);
+
+$OUT = ""; $SW = 2; $cnt = 1;
+while(list($uid, $nick, $refs, $last) = SQL_FETCHROW($result))
+{
+       $nick2 = "---";
+       if (($nick != $uid) && (!empty($nick))) $nick2 = $nick;
+
+       // Prepare data for template
+       $content = array(
+               'sw'     => $SW,
+               'cnt'    => $cnt,
+               'uid'    => bigintval($uid),
+               'refs'   => $refs,
+               'nick'   => $nick2,
+               'points' => TRANSLATE_COMMA(GET_TOTAL_DATA($uid, "user_points", "points")),
+               'last'   => MAKE_DATETIME($last, "3")
+       );
+
+       // Load row template
+       $OUT .= LOAD_TEMPLATE("guest_top10_row_refs", true, $content);
+
+       // Switch colors and count one up
+       $SW = 3 - $SW; $cnt++;
+}
+if ($cnt < $CONFIG['top10_max'])
+{
+       // Add more "blank" rows
+       for ($i = $cnt; $i <= $CONFIG['top10_max']; $i++)
+       {
+               // Prepare data for template
+               $content = array(
+                       'sw'  => $SW,
+                       'idx' => $i
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("guest_top10_empty5", true, $content);
+               $SW = 3 - $SW;
+       }
+}
+define('__TOP_REFERRAL_ROWS', $OUT);
+
+// Remember other values in constants
+define('__TOP10_MAX', $CONFIG['top10_max']);
+
+// Load final template
+LOAD_TEMPLATE("guest_top10");
+
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-welcome.php b/0.2.1/inc/modules/guest/what-welcome.php
new file mode 100644 (file)
index 0000000..808a4f1
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/10/2003 *
+ * ===============                              Last change: 03/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-welcome.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Welcome page                                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Willkommensseite                                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OPEN_TABLE("100%", "guest_content_align", "");
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/guest/what-wernis_portal.php b/0.2.1/inc/modules/guest/what-wernis_portal.php
new file mode 100644 (file)
index 0000000..7cd8ea8
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ================                             Last change: 10/19/2003 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Special file
+require_once (PATH."inc/rdf.class.php");
+
+// Add description as navigation point
+ADD_DESCR("guest", basename(__FILE__));
+
+OUTPUT_HTML("<DIV style=\"padding-left: 10px; padding-right: 10px\">");
+$rdf = new fase4_rdf;
+$rdf->use_dynamic_display(false);
+$rdf->set_CacheDir(PATH."cache/");
+$rdf->set_salt(SITE_KEY);
+$rdf->set_Options(
+       array(
+               "textinput" => "hidden",
+               "sitelink"  => "http://www.wds66.com",
+               "refid"     => "10437",
+               "reflink"   => "/ref.php?refid=",
+       )
+);
+$rdf->set_max_item(10);
+$rdf->parse_RDF("http://www.wds66.com/rss.xml");
+$rdf->finish();
+$rdf->clear_cache();
+OUTPUT_HTML("</DIV>");
+
+//
+?>
diff --git a/0.2.1/inc/modules/index.php b/0.2.1/inc/modules/index.php
new file mode 100644 (file)
index 0000000..afccd22
--- /dev/null
@@ -0,0 +1,140 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/23/2003 *
+ * ===============                              Last change: 03/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : index.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Entrance page                                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Eingangsseite                                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!EXT_IS_ACTIVE("sql_patches", true))
+{
+       // The extension "sql_patches" *MUST* be activated or you have lot's of problems!
+       LOAD_URL(URL."/modules.php?module=admin");
+}
+
+// When the frameset is active redirect the user :)
+if (frameset_active)
+{
+       LOAD_URL(URL."/modules.php?module=frameset");
+}
+
+// Load adverstising template
+define('__GUEST_ADVERT', LOAD_TEMPLATE("guest_advert", true));
+
+// Generate a tableset for the menu title and content
+LOAD_TEMPLATE("guest_header");
+
+// Add message here
+if (!empty($_GET['msg']))
+{
+       switch ($_GET['msg'])
+       {
+               case CODE_LOGOUT_DONE      : $msg = LOGOUT_DONE; break;
+               case CODE_LOGOUT_FAILED    : $msg = "<SPAN class=\"guest_failed\">".LOGOUT_FAILED."</SPAN>"; break;
+               case CODE_DATA_INVALID     : $msg = MAIL_DATA_INVALID; break;
+               case CODE_POSSIBLE_INVALID : $msg = MAIL_POSSIBLE_INVALID; break;
+               case CODE_ACCOUNT_LOCKED   : $msg = MEMBER_ACCOUNT_LOCKED_UNC; break;
+               case CODE_USER_404         : $msg = USER_NOT_FOUND; break;
+               case CODE_STATS_404        : $msg = MAIL_STATS_404; break;
+               case CODE_ALREADY_CONFIRMED: $msg = MAIL_ALREADY_CONFIRMED; break;
+               case CODE_ERROR_MAILID     : if (EXT_IS_ACTIVE("mailid", true)) { $msg = ERROR_CONFIRMING_MAIL; } else { $msg = sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "mailid"); } break;
+               case CODE_EXTENSION_PROBLEM: $msg = sprintf(EXTENSION_PROBLEM_EXT_INACTIVE, "mailid"); break;
+               case CODE_COOKIES_DISABLED : $msg = LOGIN_NO_COOKIES; break;
+               case CODE_BEG_SAME_AS_OWN  : $msg = BEG_SAME_UID_AS_OWN; break;
+               case CODE_LOGIN_FAILED     : $msg = LOGIN_FAILED_GENERAL; break;
+               default                    : $msg = UNKNOWN_MAILID_CODE_1.$_GET['msg'].UNKNOWN_MAILID_CODE_2; break;
+       }
+       LOAD_TEMPLATE("message", false, $msg);
+}
+
+// Some of you needs this to be extracted into a template... ???
+LOAD_TEMPLATE("guest_menu_td");
+
+// When no what value is provided take the "home" value
+if (empty($GLOBALS['what'])) $GLOBALS['what'] = $CONFIG['index_home'];
+
+// Adding the main content module here
+if (empty($GLOBALS['action']))
+{
+       // Get action value from what value
+       $act = GET_ACTION("guest", $GLOBALS['what']);
+}
+ else
+{
+       // Get action value directly from URL
+       $act = COMPILE_CODE($GLOBALS['action']);
+}
+
+// Add the guest's menu here...
+if (($CONFIG['guest_menu'] == "Y") || (!EXT_IS_ACTIVE("sql_patches", true)))
+{
+       // Show only when guest menu is active
+       ADD_MENU("guest", $act, $GLOBALS['what']);
+}
+
+// TDs between menu and content
+LOAD_TEMPLATE("guest_menu_content");
+
+$INC_ACTION = sprintf(PATH."inc/modules/guest/action-%s.php", $act);
+if ((file_exists($INC_ACTION)) && (is_readable($INC_ACTION)) && (VALIDATE_MENU_ACTION("guest", $act, $GLOBALS['what'])))
+{
+       // Requested module is available so we load it
+       require_once($INC_ACTION);
+}
+ else
+{
+       // Invalid module specified or not found...
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+if (($CONFIG['guest_menu'] == "Y") || (!EXT_IS_ACTIVE("sql_patches", true)))
+{
+       // TDs between content and </table>
+       LOAD_TEMPLATE("guest_content_footer");
+
+       // Some advertising stuff?
+       LOAD_TEMPLATE("guest_advert2");
+
+       OUTPUT_HTML ("  </TD>
+</TR>");
+
+       // Goto TOP template
+       LOAD_TEMPLATE("guest_goto_top");
+}
+
+// Footer template (Thanx to Mr. Glaus!)
+LOAD_TEMPLATE("guest_footer");
+
+//
+?>
diff --git a/0.2.1/inc/modules/loader.php b/0.2.1/inc/modules/loader.php
new file mode 100644 (file)
index 0000000..a75bdbd
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/29/2003 *
+ * ===============                              Last change: 04/17/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : loader.php                                       *
+ * -------------------------------------------------------------------- *
+ * Short description : De-referrer page                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Referrer neu setzen                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+if (!empty($_GET['url']))
+{
+       $url = base64_decode(urldecode(COMPILE_CODE($_GET['url'])));
+       if (VALIDATE_URL($url))
+       {
+               // Prepare data for the template
+               define('__URL', $url);
+
+               // Generate a JavaScript that redirects us
+               LOAD_TEMPLATE("loader");
+       }
+        else
+       {
+               // URL invalid
+               LOAD_URL(URL."/index.php");
+       }
+}
+ else
+{
+       // Invalid or no URL entered!
+       LOAD_URL(URL."/index.php");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/login.php b/0.2.1/inc/modules/login.php
new file mode 100644 (file)
index 0000000..e7e2d35
--- /dev/null
@@ -0,0 +1,136 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/15/2003 *
+ * ===============                              Last change: 04/18/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : login.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Login area for members                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Login-Bereich fuer Mitglieder                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif (!IS_LOGGED_IN()) {
+       $URL = URL."/modules.php?module=index";
+       if ($check == "mem_only") $URL .= "&msg=".urlencode(LANG_MEM_ONLY_1.$GLOBALS['module'].LANG_MEM_ONLY_2);
+       LOAD_URL($URL);
+}
+
+if ($status != "CONFIRMED") {
+       // If the status is different than confirmed move the user away from here
+       switch ($status)
+       {
+       case "LOCKED":
+               $ERROR = CODE_ID_LOCKED;
+               break;
+
+       case "UNCONFIRMED":
+               $ERROR = CODE_ID_UNCONFIRMED;
+               break;
+
+       default:
+               $ERROR = CODE_UNKNOWN_STATUS;
+               break;
+       }
+       $URL = URL."/modules.php?module=index&login=".$ERROR;
+       LOAD_URL($URL);
+}
+
+// Recheck if he got logged out because bad cookies
+if (!IS_LOGGED_IN())
+{
+       $URL = URL."/modules.php?module=index";
+       LOAD_URL($URL);
+}
+
+// Load adverstising template
+define('__MEMBER_ADVERT', LOAD_TEMPLATE("member_banner", true));
+
+// Disable block mode by default
+$BLOCK_MODE = false;
+
+// Generate a tableset for the menu title and content
+LOAD_TEMPLATE("member_header");
+
+// Adding your title's template here...
+OUTPUT_HTML ("<TR>
+  <TD class=\"member_menu\">");
+
+// Adding the main content module here
+if (empty($GLOBALS['action']))
+{
+       if (empty($GLOBALS['what'])) $GLOBALS['what'] = "welcome";
+}
+ else
+{
+       $act = SQL_ESCAPE($GLOBALS['action']);
+}
+
+// Add the member's menu here...
+if (($CONFIG['member_menu'] == "Y") || (!EXT_IS_ACTIVE("sql_patches", true)))
+{
+       ADD_MENU("member", GET_ACTION("member", $GLOBALS['what']), $GLOBALS['what']);
+}
+
+OUTPUT_HTML ("   </TD>
+  <TD valign=\"top\" align=\"center\" rowspan=\"3\" class=\"member_content\">");
+
+$INC_ACTION = sprintf(PATH."inc/modules/member/action-%s.php", $act);
+if ((file_exists($INC_ACTION)) && (is_readable($INC_ACTION)) && (VALIDATE_MENU_ACTION("member", GET_ACTION("member", $GLOBALS['what']), $GLOBALS['what'])))
+{
+       // Requested module is available so we load it
+       include ($INC_ACTION);
+}
+ else
+{
+       // Invalid module specified or not found...
+       LOAD_URL("modules.php?module=login");
+}
+
+if (($CONFIG['member_menu'] == "Y") || (!EXT_IS_ACTIVE("sql_patches", true)))
+{
+       OUTPUT_HTML ("  <BR></TD>
+</TR>
+<TR>
+  <TD align=\"center\" valign=\"top\" class=\"member_advert\">");
+
+       // Some advertising stuff?
+       LOAD_TEMPLATE("member_advert");
+}
+
+OUTPUT_HTML ("  </TD>
+</TR>");
+
+// Load same template for "Goto TOP"
+LOAD_TEMPLATE("member_goto_top");
+
+// Footer template (Thanx to Mr. Glaus!)
+LOAD_TEMPLATE("member_footer");
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/.htaccess b/0.2.1/inc/modules/member/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/modules/member/action- b/0.2.1/inc/modules/member/action-
new file mode 100644 (file)
index 0000000..dfd0538
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2006 *
+ * ================                             Last change: 02/12/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-                                          *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-account.php b/0.2.1/inc/modules/member/action-account.php
new file mode 100644 (file)
index 0000000..f302e6d
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2006 *
+ * ================                             Last change: 02/12/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-account.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Account functions                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Accountfunktionen                                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-bank.php b/0.2.1/inc/modules/member/action-bank.php
new file mode 100644 (file)
index 0000000..dc3fdf3
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/27/2004 *
+ * ================                             Last change: 01/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-                                          *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-extras.php b/0.2.1/inc/modules/member/action-extras.php
new file mode 100644 (file)
index 0000000..e84cc78
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2006 *
+ * ================                             Last change: 02/12/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-extras.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Extra functionality                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Extra-Funktionen                                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-logout.php b/0.2.1/inc/modules/member/action-logout.php
new file mode 100644 (file)
index 0000000..7b2df51
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/18/2003 *
+ * ===============                              Last change: 02/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-logout.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Logout menu                                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ausloggenmenue                                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-main.php b/0.2.1/inc/modules/member/action-main.php
new file mode 100644 (file)
index 0000000..a62393a
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/16/2003 *
+ * ===============                              Last change: 02/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-main.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Main menu                                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Hauptauwahl                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-order.php b/0.2.1/inc/modules/member/action-order.php
new file mode 100644 (file)
index 0000000..76ea1db
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2006 *
+ * ================                             Last change: 02/12/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-order.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Different types of mail orders                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verschiedene Typen von Mailbuchungen             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-rals.php b/0.2.1/inc/modules/member/action-rals.php
new file mode 100644 (file)
index 0000000..6c4b857
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2006 *
+ * ================                             Last change: 02/12/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-rals.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : All rallyes together                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Rallyes zusammen                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-stats.php b/0.2.1/inc/modules/member/action-stats.php
new file mode 100644 (file)
index 0000000..618e1fe
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2006 *
+ * ================                             Last change: 02/12/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-stats.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Misc statistics                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verschiedene Statistiken                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ($BLOCK_MODE)
+{
+       // Block mode detected
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load the include file
+$INC_WHAT = sprintf(PATH."inc/modules/member/what-%s.php", $GLOBALS['what']);
+if (file_exists($INC_WHAT))
+{
+       // Ok, we finally load the member action module
+       include_once($INC_WHAT);
+}
+ else
+{
+       ADD_FATAL(MEMBER_404_ACTION_1.$GLOBALS['what'].MEMBER_404_ACTION_2);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/action-themes.php b/0.2.1/inc/modules/member/action-themes.php
new file mode 100644 (file)
index 0000000..5304394
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/12/2004 *
+ * ================                             Last change: 11/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : action-themes.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Theme selector                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Theme-Auswahl                                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Load all active designs (or all if admin)
+$WHERE = ""; $OUT = "";
+if (!IS_ADMIN()) $WHERE = " WHERE theme_active='Y'";
+$result_themes = SQL_QUERY("SELECT theme_path FROM "._MYSQL_PREFIX."_themes".$WHERE, __FILE__, __LINE__);
+$num_themes = SQL_NUMROWS($result_themes);
+
+if ($num_themes > 1)
+{
+       // If more than 1 is installed output selection box
+       $act = ""; $wht = "";
+       if (!empty($GLOBALS['action'])) $act = SQL_ESCAPE($GLOBALS['action']);
+       if (!empty($GLOBALS['what']))   $wht = SQL_ESCAPE($GLOBALS['what']);
+       $OUT = THEME_SELECTION_BOX("login", $act, $wht, $result_themes);
+}
+ elseif (($num_themes == 1) || ((!IS_ADMIN()) && ($num_themes == 0)))
+{
+       // If there's only one just print it's name
+       global $THEME_NAME;
+       define('__THEME_NAME', $THEME_NAME);
+       $OUT = LOAD_TEMPLATE("theme_one", true);
+}
+ elseif (IS_ADMIN())
+{
+       // If there is no theme installed and there's an admin notify him!
+       $OUT = LOAD_TEMPLATE("admin_settings_saved", true, "<FONT class=\"admin_note\">".ADMIN_NO_THEME_INSTALLED_WARNING."</FONT>");
+}
+
+// Remember
+define('__THEME_SELECTION_CONTENT', $OUT);
+
+// Free memory
+SQL_FREERESULT($result_themes);
+
+// Load final box template
+LOAD_TEMPLATE("theme_select_box");
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what- b/0.2.1/inc/modules/member/what-
new file mode 100644 (file)
index 0000000..684c6dc
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 01/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Loads the name-matching template
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-bank_create.php b/0.2.1/inc/modules/member/what-bank_create.php
new file mode 100644 (file)
index 0000000..e57fa9d
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 01/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Loads the name-matching template
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-bank_deposit.php b/0.2.1/inc/modules/member/what-bank_deposit.php
new file mode 100644 (file)
index 0000000..e57fa9d
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 01/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Loads the name-matching template
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-bank_infos.php b/0.2.1/inc/modules/member/what-bank_infos.php
new file mode 100644 (file)
index 0000000..e57fa9d
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 01/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Loads the name-matching template
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-bank_output.php b/0.2.1/inc/modules/member/what-bank_output.php
new file mode 100644 (file)
index 0000000..e57fa9d
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 01/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Loads the name-matching template
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-bank_withdraw.php b/0.2.1/inc/modules/member/what-bank_withdraw.php
new file mode 100644 (file)
index 0000000..e57fa9d
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 01/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Loads the name-matching template
+LOAD_TEMPLATE(substr(basename(__FILE__), 5, -4));
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-beg.php b/0.2.1/inc/modules/member/what-beg.php
new file mode 100644 (file)
index 0000000..871de0c
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/09/2005 *
+ * ================                             Last change: 01/09/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-beg.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Beg link                                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bettel-Link                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("beg")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "beg");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+$uid = $GLOBALS['userid'];
+if (EXT_IS_ACTIVE("nickname"))
+{
+       // Load nickname
+       $data = "nickname";
+}
+ else
+{
+       // Load userid
+       $data = "userid";
+}
+
+// Run SQL command
+$result = SQL_QUERY_ESC("SELECT ".$data.", beg_clicks FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", array($uid), __FILE__, __LINE__);
+list($uid, $clicks) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+// Set User-ID when no nickname was found
+$nickname = true;
+if (empty($uid)) { $uid = $GLOBALS['userid']; $nickname = false; }
+
+// Prepare constants
+define('__BEG_UID'       , $uid);
+define('__BEG_CLICKS'    , $clicks);
+define('__BEG_POINTS'    , TRANSLATE_COMMA($CONFIG['beg_points']));
+define('__BEG_POINTS_MAX', TRANSLATE_COMMA($CONFIG['beg_points_max']));
+
+if (function_exists('CREATE_FANCY_TIME'))
+{
+       define('__BEG_TIMEOUT'    , CREATE_FANCY_TIME($CONFIG['beg_timeout']));
+       define('__BEG_UID_TIMEOUT', CREATE_FANCY_TIME($CONFIG['beg_uid_timeout']));
+}
+ else
+{
+       define('__BEG_TIMEOUT '   , round($CONFIG['beg_timeout']     / 60)." ".MINUTES);
+       define('__BEG_UID_TIMEOUT', round($CONFIG['beg_uid_timeout'] / 60)." ".MINUTES);
+}
+
+// Load template
+LOAD_TEMPLATE("member_".substr(basename(__FILE__), 5, -4));
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-beg2.php b/0.2.1/inc/modules/member/what-beg2.php
new file mode 100644 (file)
index 0000000..1d34c43
--- /dev/null
@@ -0,0 +1,109 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/22/2005 *
+ * ===============                              Last change: 10/22/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-beg2.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : List all begging members                         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle moeglichen Gewinner der Bettel-Rallye aufl. *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php[5~?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("beg")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "beg");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR>");
+
+// Autopurge installed?
+$LAST = "%s"; $ONLINE = "";
+if (EXT_IS_ACTIVE("autopurge"))
+{
+       // Use last online timestamp to keep inactive members away from here
+       $LAST   = " AND last_online >= %s";
+       $ONLINE = bigintval(time() - $CONFIG['ap_in_since']);
+}
+
+// Let's check if there are some points left we can "pay"...
+$result = SQL_QUERY_ESC("SELECT userid, beg_points AS beg, last_online FROM "._MYSQL_PREFIX."_user_data
+WHERE beg_points > 0 AND status='CONFIRMED'".$LAST."
+ORDER BY beg_points DESC, last_online DESC, userid LIMIT %s",
+ array($ONLINE, $CONFIG['beg_ranks']), __FILE__, __LINE__);
+
+// Reset temporary variable and check for users
+$OUT = "";
+if (SQL_NUMROWS($result) > 0)
+{
+       // Load our winners...
+       $SW = 2; $cnt = 1;
+       while(list($uid, $turbo, $last) = SQL_FETCHROW($result))
+       {
+               // Prepare data for the template
+               $content = array(
+                       'sw'     => $SW,
+                       'cnt'    => $cnt,
+                       'uid'    => bigintval($uid),
+                       'points' => TRANSLATE_COMMA($turbo),
+                       'last'   => MAKE_DATETIME($last, "2"),
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("member_list_beg_row", true, $content);
+
+               // Count one up and switch colors
+               $cnt++;$SW = 3 - $SW;
+       }
+}
+ else
+{
+       // No one is interested in our "active rallye" ! :-(
+       $OUT = LOAD_TEMPLATE("member_beg_404", true);
+}
+
+// Free memory
+SQL_FREERESULT($result);
+
+// Remeber row(s) for the template
+define('__BEG_ROWS', $OUT);
+
+// Load final template
+LOAD_TEMPLATE("member_list_beg");
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-bonus.php b/0.2.1/inc/modules/member/what-bonus.php
new file mode 100644 (file)
index 0000000..57b238c
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 11/19/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-bonus.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Bonus pages for some extra points                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bonusseiten fuer ein paar Extrapunkte            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php[5~?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("bonus")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "bonus");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR>");
+
+if (GET_EXT_VERSION("bonus") >= "0.6.9")
+{
+       // Add more bonus points here
+       $USE = "(0";
+       if ($CONFIG['bonus_click_yn'] == "Y") $USE .= " + turbo_bonus";
+       if ($CONFIG['bonus_login_yn'] == "Y") $USE .= " + login_bonus";
+       if ($CONFIG['bonus_order_yn'] == "Y") $USE .= " + bonus_order";
+       if ($CONFIG['bonus_stats_yn'] == "Y") $USE .= " + bonus_stats";
+       if ($CONFIG['bonus_ref_yn']   == "Y") $USE .= " + bonus_ref";
+       $USE .= ")";
+}
+ else
+{
+       // Old version ???
+       $USE = "turbo_bonus";
+}
+
+// Autopurge installed?
+$LAST = "%s"; $ONLINE = "";
+if (EXT_IS_ACTIVE("autopurge"))
+{
+       // Use last online timestamp to keep inactive members away from here
+       $LAST   = " AND last_online >= %s";
+       $ONLINE = bigintval(time() - $CONFIG['ap_in_since']);
+}
+
+// Let's check if there are some points left we can "pay"...
+$result = SQL_QUERY_ESC("SELECT userid, ".$USE." AS active_bonus, last_online FROM "._MYSQL_PREFIX."_user_data
+WHERE ".$USE." > 0 AND status='CONFIRMED'".$LAST."
+ORDER BY active_bonus DESC, last_online DESC, userid LIMIT %s",
+ array($ONLINE, $CONFIG['bonus_ranks']), __FILE__, __LINE__);
+
+// Reset temporary variable and check for users
+$OUT = "";
+if (SQL_NUMROWS($result) > 0)
+{
+       // Load our winners...
+       $SW = 2; $cnt = 1;
+       while(list($uid, $turbo, $last) = SQL_FETCHROW($result))
+       {
+               // Prepare data for the template
+               $content = array(
+                       'sw'     => $SW,
+                       'cnt'    => $cnt,
+                       'uid'    => bigintval($uid),
+                       'points' => TRANSLATE_COMMA($turbo),
+                       'last'   => MAKE_DATETIME($last, "2"),
+               );
+
+               // Load row template
+               $OUT .= LOAD_TEMPLATE("member_bonus_row", true, $content);
+
+               // Count one up and switch colors
+               $cnt++;$SW = 3 - $SW;
+       }
+}
+ else
+{
+       // No one is interested in our "active rallye" ! :-(
+       $OUT = LOAD_TEMPLATE("member_bonus_404", true);
+}
+
+// Free memory
+SQL_FREERESULT($result);
+
+// Remeber row(s) for the template
+define('__BONUS_ROWS', $OUT);
+
+// Load final template
+LOAD_TEMPLATE("member_bonus");
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-categories.php b/0.2.1/inc/modules/member/what-categories.php
new file mode 100644 (file)
index 0000000..13e6523
--- /dev/null
@@ -0,0 +1,173 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 06/30/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-categories.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : Select or unselect categories                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Kategorien ab- bzw. anwaehlen                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php[13~?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+$UID = $GLOBALS['userid'];
+$WHERE = " WHERE visible='Y'";
+if (IS_ADMIN()) $WHERE = "";
+
+$result = SQL_QUERY("SELECT id, cat FROM "._MYSQL_PREFIX."_cats".$WHERE." ORDER BY sort", __FILE__, __LINE__);
+$cats = SQL_NUMROWS($result);
+
+if ($cats > 0)
+{
+       $LEAST = false;
+       if (isset($_POST['ok']))
+       {
+               $cnt = 0;
+               foreach ($_POST['cat'] as $cat=>$joined)
+               {
+                       if ($joined == "N") $cnt++;
+               }
+               if (($cats - $cnt) < $CONFIG['least_cats'])
+               {
+                       unset($_POST['ok']);
+                       $LEAST = true;
+               }
+       }
+       if (isset($_POST['ok']))
+       {
+               foreach ($_POST['cat'] as $cat=>$joined)
+               {
+                       switch ($joined)
+                       {
+                               case "Y":
+                                       $sql = "";
+                                       $result_user = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_cats WHERE userid=%d AND cat_id=%d LIMIT 1",
+                                        array($UID, bigintval($cat)), __FILE__, __LINE__);
+
+                                       if (SQL_NUMROWS($result_user) == 0)
+                                       {
+                                               $sql = "INSERT INTO "._MYSQL_PREFIX."_user_cats (userid, cat_id) VALUES ('%s', '%s')";
+                                       }
+                                        else
+                                       {
+                                               // Free memory
+                                               SQL_FREERESULT($result_user);
+                                       }
+                                       break;
+
+                               case "N":
+                                       $sql = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_cats WHERE userid=%d AND cat_id=%d LIMIT 1";
+                                       break;
+                       }
+                       if (!empty($sql))
+                       {
+                               // Run SQL command
+                               $result = SQL_QUERY_ESC(trim($sql), array($UID, bigintval($cat)), __FILE__, __LINE__);
+                       }
+               }
+               // Categories saved...
+               LOAD_TEMPLATE("admin_settings_saved", true, MEMBER_CATS_SAVED);
+       }
+        else
+       {
+               if ($LEAST)
+               {
+                       // Also here we have to secure it... :(
+                       LOAD_TEMPLATE("admin_settings_saved", true, CATS_LEAST.": ".$CONFIG['least_cats']);
+               }
+               // Put some data into constants for the template
+               define('__ROWS', ($cats*2+4));
+
+               // Load header template
+               LOAD_TEMPLATE("member_cats_header");
+
+               // Start switching colors and load all visible categories
+               $SW = 2;
+               while (list($id, $cat) = SQL_FETCHROW($result))
+               {
+                       // Default he has not joined
+                       $JOINED_N = " checked"; $JOINED_Y = "";
+
+                       // Check category selection
+                       $result_user = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_cats WHERE userid=%d AND cat_id=%d LIMIT 1",
+                        array($UID, bigintval($id)), __FILE__, __LINE__);
+
+                       // When we found an entry don't read it, just change the JOINED_x variables
+                       if (isset($_POST['cat']))
+                       {
+                               if ($_POST['cat'][$id] =="Y") { $JOINED_Y = " checked"; $JOINED_N = ""; }
+                       }
+                        else
+                       {
+                               if (SQL_NUMROWS($result_user) == 1)
+                               {
+                                       $JOINED_Y = " checked"; $JOINED_N = "";
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result_user);
+                       }
+
+                       // Prepare data for the template
+                       $content = array(
+                               'sw'  => $SW,
+                               'id'  => $id,
+                               'cat' => $cat,
+                               'jy'  => $JOINED_Y,
+                               'jn'  => $JOINED_N,
+                       );
+
+                       // Load row template and switch colors
+                       LOAD_TEMPLATE("member_cat_row", false, $content);
+                       $SW = 3 - $SW;
+               }
+
+               // Load footer template
+               LOAD_TEMPLATE("member_cats_footer");
+       }
+}
+ else
+{
+       // No cateogries are defined yet
+       LOAD_TEMPLATE("admin_settings_saved", true, MEMBER_NO_CATS);
+}
+
+SQL_FREERESULT($result);
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-doubler.php b/0.2.1/inc/modules/member/what-doubler.php
new file mode 100644 (file)
index 0000000..5819281
--- /dev/null
@@ -0,0 +1,117 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/17/2005 *
+ * ================                             Last change: 02/17/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-doubler.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : General doubling informations                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Allgemeine Informationen zum Verdoppen           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php[5~?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("doubler")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "doubler");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Percent values etc.
+define('__CHARGE_VALUE', TRANSLATE_COMMA($CONFIG['doubler_charge'] * 100));
+define('__REF_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_ref'] * 100));
+define('__TOTAL_VALUE' , TRANSLATE_COMMA($CONFIG['doubler_points']));
+define('__MIN_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_min']));
+define('__MAX_VALUE'   , TRANSLATE_COMMA($CONFIG['doubler_max']));
+
+// Transfer referral ID
+if (EXT_IS_ACTIVE("nickname"))
+{
+       // Load nickname from DB
+       $nick = NICKNAME_GET_NICK($GLOBALS['userid']);
+
+       if (!empty($nick))
+       {
+               // Set nickname
+               define('__USERID', $nick);
+       }
+        else
+       {
+               // Use direct userid
+               define('__USERID', $GLOBALS['userid']);
+       }
+}
+ else
+{
+       // Use direct userid
+       define('__USERID', $GLOBALS['userid']);
+}
+
+// Usage counter
+define('__DOUBLER_COUNTER', $CONFIG['doubler_counter']);
+
+// Which mail-send-mode did the admin setup?
+switch ($CONFIG['doubler_send_mode'])
+{
+case "DIRECT":
+       define('DOUBLER_PAYOUT_TIME', DOUBLER_PAYOUT_TIME_DIRECT);
+       break;
+
+case "RESET":
+       define('DOUBLER_PAYOUT_TIME', DOUBLER_PAYOUT_TIME_RESET);
+       break;
+}
+
+// Generate table with already payed out doubles
+define('__DOUBLER_PAYOUT_HISTORY', DOUBLER_GENERATE_TABLE($GLOBALS['userid'], "Y", "N", "DESC"));
+
+// Generate table with next-to-run payouts
+define('__DOUBLER_PAYOUT_NEXT', DOUBLER_GENERATE_TABLE($GLOBALS['userid']));
+
+// Generate table with refferal payouts
+define('__DOUBLER_PAYOUT_REF', DOUBLER_GENERATE_TABLE($GLOBALS['userid'], "N", "Y", "DESC"));
+
+// Generate timemark
+define('__TIMEOUT_MARK', CREATE_FANCY_TIME($CONFIG['doubler_timeout']));
+
+// Points left to double
+define('__LEFT_VALUE', DOUBLER_GET_TOTAL_POINTS_LEFT());
+
+// Load template
+LOAD_TEMPLATE("member_doubler");
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-guest.php b/0.2.1/inc/modules/member/what-guest.php
new file mode 100644 (file)
index 0000000..d6f565e
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/04/2004 *
+ * ================                             Last change: 04/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-guest.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Redirects back to the guest menu                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Simply redirect...
+LOAD_URL (URL."/modules.php?module=index");
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-holiday.php b/0.2.1/inc/modules/member/what-holiday.php
new file mode 100644 (file)
index 0000000..ac0a54d
--- /dev/null
@@ -0,0 +1,291 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 07/24/2004 *
+ * ================                             Last change: 07/31/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-holiday.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Holiday requests                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Urlaubsschaltungen                               *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("holiday")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "holiday");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Check for running mail orders in pool
+$result1 = SQL_QUERY_ESC("SELECT timestamp FROM "._MYSQL_PREFIX."_pool
+WHERE sender=%d ORDER BY timestamp DESC LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+
+// Check for sent mail orders in stats
+$result2 = SQL_QUERY_ESC("SELECT timestamp_ordered FROM "._MYSQL_PREFIX."_user_stats
+WHERE userid=%d ORDER BY timestamp_ordered DESC LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+
+if ((SQL_NUMROWS($result1) == 1) || (SQL_NUMROWS($result2) == 1))
+{
+       // Mail order found!
+       list($stamp1) = SQL_FETCHROW($result1);
+       list($stamp2) = SQL_FETCHROW($result2);
+       if (empty($stamp1)) $stamp1 = 0;
+       if (empty($stamp2)) $stamp2 = 0;
+
+       if ((($stamp1 + $CONFIG['holiday_lock']) > time()) || (($stamp2 + $CONFIG['holiday_lock']) > time()))
+       {
+               // Mail order is to close away!
+               unset($_POST['ok']);
+               unset($_POST['stop']);
+
+               if (($stamp1 + $CONFIG['holiday_lock']) > time())
+               {
+                       // Mail found in pool
+                       $stamp = $stamp1;
+               }
+                else
+               {
+                       // Mail found in stats
+                       $stamp = $stamp2;
+               }
+
+               // Display message and exit here
+               LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_ORDER_1.MAKE_DATETIME($stamp, "1").HOLIDAY_MEMBER_ORDER_2);
+               return;
+       }
+}
+
+// Free memory
+SQL_FREERESULT($result1);
+SQL_FREERESULT($result2);
+
+if (isset($_POST['ok']))
+{
+       // Check holiday request...
+       $START = mktime(0, 0, 0, $_POST['start_month'], $_POST['start_day'], $_POST['start_year']);
+       $END   = mktime(0, 0, 0, $_POST['end_month']  , $_POST['end_day']  , $_POST['end_year']  );
+
+       // Test both values
+       $TEST = $END - $START;
+       if (($TEST < 0) || ($TEST > (ONE_DAY * $CONFIG['holiday_max'])) || ($START < time()) || ($END < time()))
+       {
+               // Time test failed
+               unset($_POST['ok']);
+       }
+        else
+       {
+               // Everything went okay so let's store his request and send mails
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_holidays (userid, holiday_start, holiday_end, comments) VALUES ('%s', '%s', '%s', '%s')",
+                array($GLOBALS['userid'], $START, $END, $_POST['comments']), __FILE__, __LINE__);
+
+               // Activate holiday system
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data
+SET holiday_active='N', holiday_activated=UNIX_TIMESTAMP()
+WHERE userid=%d LIMIT 1",
+                array($GLOBALS['userid']), __FILE__, __LINE__);
+
+               // Prepare constants
+               define('_START_DAY'  , $_POST['start_day']);
+               define('_START_MONTH', $MONTH_DESCR[$_POST['start_month']]);
+               define('_START_YEAR' , $_POST['start_year']);
+               define('_END_DAY'    , $_POST['end_day']);
+               define('_END_MONTH'  , $MONTH_DESCR[$_POST['end_month']]);
+               define('_END_YEAR'   , $_POST['end_year']);
+
+               // Send mail to member
+               $msg = LOAD_EMAIL_TEMPLATE("member_holiday_request", $_POST['comments'], $GLOBALS['userid']);
+               SEND_EMAIL($GLOBALS['userid'], HOLIDAY_MEMBER_SUBJECT, $msg);
+
+               // Send mail to all admins
+               $msg = LOAD_EMAIL_TEMPLATE("admin_holiday_request", $_POST['comments'], $GLOBALS['userid']);
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(HOLIDAY_ADMIN_SUBJECT, "admin_holiday_request", $_POST['comments'], $GLOBALS['userid']);
+               }
+                else
+               {
+                       SEND_ADMIN_EMAILS(HOLIDAY_ADMIN_SUBJECT, $msg);
+               }
+
+               // Create task
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (userid, assigned_admin, status, task_type, subject, text, task_created) VALUES ('%s', '0', 'NEW', 'HOLIDAY_REQUEST', '%s', '%s', UNIX_TIMESTAMP())",
+                array($GLOBALS['userid'], HOLIDAY_ADMIN_SUBJECT, addslashes($msg)), __FILE__, __LINE__);
+
+               // Display message
+               LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_IS_ACTIVATED_NOW);
+       }
+}
+
+// Holiday shall be ended now
+if (isset($_POST['stop']))
+{
+       // Okay, end the holiday here...
+       $result = SQL_QUERY_ESC("SELECT holiday_active, holiday_activated FROM "._MYSQL_PREFIX."_user_data
+WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($active, $locked) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       if (($active == "Y") && (($locked + $CONFIG['holiday_lock']) < time()))
+       {
+               // Load data
+               $result = SQL_QUERY_ESC("SELECT holiday_start, holiday_end FROM "._MYSQL_PREFIX."_user_holidays
+WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Data was found
+                       list($start, $end) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+
+                       // Prepare it for the template
+                       define('__HOLIDAY_START', MAKE_DATETIME($start, "3"));
+                       define('__HOLIDAY_END'  , MAKE_DATETIME($end  , "3"));
+
+                       // Deactivate it now
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data
+SET holiday_active='N', holiday_activated='0'
+WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+
+                       // Remove entry
+                       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_holidays
+WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+
+                       // Send email to admin
+                       if (GET_EXT_VERSION("admins") >= "0.4.1")
+                       {
+                               SEND_ADMIN_EMAILS_PRO(HOLIDAY_ADMIN_DEAC_SUBJ, "admin_holiday_deactivated", "", $GLOBALS['userid']);
+                       }
+                        else
+                       {
+                               $msg = LOAD_EMAIL_TEMPLATE("admin_holiday_deactivated", "", $GLOBALS['userid']);
+                               SEND_ADMIN_EMAILS(HOLIDAY_ADMIN_DEAC_SUBJ, $msg);
+                       }
+
+                       // Display message to user
+                       LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_DEACTIVATED_NOW);
+               }
+                else
+               {
+                       // Display message to user
+                       LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_CANNOT_DEACTIVATE);
+               }
+       }
+        elseif ($active == "Y")
+       {
+               // To fast!
+               LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_LOCKED);
+       }
+}
+
+// If something is wrong or link in menu is just clicked display form
+if ((!isset($_POST['ok'])) && (!isset($_POST['stop'])))
+{
+       // Check if user is in holiday...
+       $result = SQL_QUERY_ESC("SELECT holiday_active, holiday_activated FROM "._MYSQL_PREFIX."_user_data
+WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($active, $locked) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Check for lock
+       if (($locked + $CONFIG['holiday_lock']) < time())
+       {
+               // User can deactivate his holiday request
+               switch ($active)
+               {
+               case "Y": // Display deactivation form
+                       // Load starting and ending date
+                       $result = SQL_QUERY_ESC("SELECT holiday_start, holiday_end FROM "._MYSQL_PREFIX."_user_holidays
+WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Data was found
+                               list($start, $end) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               // Prepare it for the template
+                               define('__HOLIDAY_START', MAKE_DATETIME($start , "3"));
+                               define('__HOLIDAY_END'  , MAKE_DATETIME($end   , "3"));
+                               define('__HOLIDAY_LOCK' , MAKE_DATETIME($locked, "1"));
+
+                               // Load template
+                               LOAD_TEMPLATE("member_holiday_deactivate");
+                       }
+                        else
+                       {
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // Remove entry and reload URL
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data
+SET holiday_active='N'
+WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+                               LOAD_URL(URL."/modules.php?module=login&amp;what=holiday");
+                               return;
+                       }
+                       break;
+
+               case "N": // Display activation form
+                       // Starting day
+                       define('_START_DAY'  , ADD_SELECTION("day"  , date("d", (time() + ONE_DAY)), "start"));
+                       define('_START_MONTH', ADD_SELECTION("month", date("m", (time() + ONE_DAY)), "start"));
+                       define('_START_YEAR' , ADD_SELECTION("year" , date("Y", (time() + ONE_DAY)), "start"));
+
+                       // Calcualte ending date
+                       $D = date("d", time() + ONE_DAY + (ONE_DAY * $CONFIG['holiday_max']));
+                       $M = date("m", time() + ONE_DAY + (ONE_DAY * $CONFIG['holiday_max']));
+                       $Y = date("Y", time() + ONE_DAY + (ONE_DAY * $CONFIG['holiday_max']));
+
+                       // Ending day
+                       define('_END_DAY'  , ADD_SELECTION("day"  , $D, "end"));
+                       define('_END_MONTH', ADD_SELECTION("month", $M, "end"));
+                       define('_END_YEAR' , ADD_SELECTION("year" , $Y, "end"));
+
+                       // Copy value from configuration
+                       define('__HOLIDAY_MAX', $CONFIG['holiday_max']);
+
+                       // Output form
+                       LOAD_TEMPLATE("member_holiday_form");
+                       break;
+               }
+       }
+        else
+       {
+               // To fast!
+               LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_LOCKED);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-html_mail.php b/0.2.1/inc/modules/member/what-html_mail.php
new file mode 100644 (file)
index 0000000..2baa95b
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/25/2004 *
+ * ================                             Last change: 04/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-html_mail.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : HTML mails                                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : HTML-Mails                                       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("html_mail")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "html_mail");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Class was found and loaded
+if (isset($_POST['ok']))
+{
+       // Save settings
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET html='%s' WHERE userid=%d LIMIT 1",
+        array($_POST['html'], $GLOBALS['userid']), __FILE__, __LINE__);
+       LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_SETTINGS_SAVED);
+}
+ else
+{
+       // Load template for changing settings
+       $result = SQL_QUERY_ESC("SELECT html FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($mode) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       if ($mode == "Y")
+       {
+               define('HTML_Y', " checked");
+               define('HTML_N', "");
+       }
+        else
+       {
+               define('HTML_N', " checked");
+               define('HTML_Y', "");
+       }
+       LOAD_TEMPLATE("member_html_mail_settings");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-logout.php b/0.2.1/inc/modules/member/what-logout.php
new file mode 100644 (file)
index 0000000..de2afdf
--- /dev/null
@@ -0,0 +1,73 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/16/2003 *
+ * ===============                              Last change: 04/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-logout.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Logout from member's area                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Aus dem Mitgliesbereich ausloggen                *
+ * -------------------------------------------------------------------- *
+ *         Logout_mod: new from 15.01.04 / Fixed Reset of Cooks         *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Base URL for redirection (both cases)
+$URL = URL."/modules.php?module=index";
+
+// Patched by Robert Niedziela: cookies won't (?) be deleted on some newer IE versions
+
+// NEW: Fixed the Set of Cookies, you mus add right TimeSet, if you changed it in What_login.php! (eg. time()- cookieTime
+
+
+if (@setcookie("userid", "", time() - 3600, COOKIE_PATH) && @setcookie("u_hash", "", time() - 3600, COOKIE_PATH) && @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH))
+{
+       // Remove theme cookie as well
+       @setcookie("mxchange_theme", "", time() - 3600, COOKIE_PATH);
+
+       // Logout completed
+       $URL .= "&msg=".CODE_LOGOUT_DONE;
+
+       // Destroy session here
+       @session_destroy();
+}
+ else
+{
+       // Cannot logout! :-(
+       $URL .= "&msg=".CODE_LOGOUT_FAILED;
+}
+
+//
+LOAD_URL($URL);
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-mydata.php b/0.2.1/inc/modules/member/what-mydata.php
new file mode 100644 (file)
index 0000000..1c51e6e
--- /dev/null
@@ -0,0 +1,341 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/16/2003 *
+ * ===============                              Last change: 06/30/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-mydata.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Members can edit their profile data here         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Mitglieder koennen hier ihre Profildaten aendern *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("mydata")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "mydata");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+OPEN_TABLE("100%", "member_content member_content_align", "");
+define('UID_VALUE', $GLOBALS['userid']); $URL = "";
+
+// Detect what the member wants to do
+$MODE = "show"; // Show his data
+if (!empty($_POST['save']))   $MODE = "save";   // Save entered data
+if (isset($_POST['edit']))   $MODE = "edit";   // Edit data
+if (!empty($_POST['notify'])) $MODE = "notify"; // Switch off notification
+
+switch ($MODE)
+{
+case "show": // Show his data
+       if (EXT_IS_ACTIVE("country", true))
+       {
+               // New way                         0        1         2          3         4     5     6        7           8            9       10      11           12           13
+               $result = SQL_QUERY_ESC("SELECT surname, family, street_nr, country_code, zip, city, email, birth_day, birth_month, birth_year, sex, max_mails, receive_mails, last_update FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array(UID_VALUE), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Old way                         0        1         2        3      4     5     6        7           8            9       10      11           12           13
+               $result = SQL_QUERY_ESC("SELECT surname, family, street_nr, country, zip, city, email, birth_day, birth_month, birth_year, sex, max_mails, receive_mails, last_update FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array(UID_VALUE), __FILE__, __LINE__);
+       }
+       $DATA = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Translate / add some things
+       $DATA[10] = TRANSLATE_SEX($DATA[10]);
+       $DATA[13] = MAKE_DATETIME($DATA[13], "0");
+
+       // How far is last change on his profile away from now?
+       if ((($DATA[13] + $CONFIG['profile_lock']) > time()) && (!IS_ADMIN()) && ($CONFIG['profile_lock'] > 0))
+       {
+               // You cannot change your account
+               define('CHANGE', "<FONT class=\"member_failed\">".MEMBER_PROFILE_LOCKED_1.MAKE_DATETIME($DATA[13] + $CONFIG['profile_lock'], "0").MEMBER_PROFILE_LOCKED_2."</FONT>");
+       }
+        else
+       {
+               // He is allowed to change his profile
+               define('CHANGE', LOAD_TEMPLATE("member_mydata_button", true));
+       }
+       if (strlen($DATA[7]) == 1) $DATA[7] = "0".$DATA[7];
+       if (strlen($DATA[8]) == 1) $DATA[8] = "0".$DATA[8];
+       switch (GET_LANGUAGE())
+       {
+               case "de": define ('DOB', $DATA[7].".".$DATA[8].".".$DATA[9]); break;
+               default  : define ('DOB', $DATA[8]."-".$DATA[7]."-".$DATA[9]); break;
+       }
+
+       if (EXT_IS_ACTIVE("country"))
+       {
+               // Load country's description and code
+               $DATA[3] = COUNTRY_GENERATE_INFO($DATA[3]);
+       }
+
+       // Load template
+       LOAD_TEMPLATE("member_mydata_overview");
+       break;
+
+case "edit": // Edit data
+       if (EXT_IS_ACTIVE("country", true))
+       {
+               // New way                         0        1         2          3         4     5     6        7           8            9       10      11           12           13
+               $result = SQL_QUERY_ESC("SELECT surname, family, street_nr, country_code, zip, city, email, birth_day, birth_month, birth_year, sex, max_mails, receive_mails, last_update
+FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array(UID_VALUE), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Old way                         0        1         2        3      4     5     6        7           8            9       10      11           12           13
+               $result = SQL_QUERY_ESC("SELECT surname, family, street_nr, country, zip, city, email, birth_day, birth_month, birth_year, sex, max_mails, receive_mails, last_update
+FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array(UID_VALUE), __FILE__, __LINE__);
+       }
+
+       $DATA = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+       $DATA[13] = $DATA[12] + $CONFIG['profile_lock'];
+
+       // How far is last change on his profile away from now?
+       if (($DATA[13] > time()) && (!IS_ADMIN()) && ($CONFIG['profile_lock'] > 0))
+       {
+               $DATA[13] = MAKE_DATETIME($DATA[13] + $CONFIG['profile_lock'], "0");
+               // You cannot change your account
+               LOAD_TEMPLATE("member_mydata_locked");
+       }
+        else
+       {
+               // He is allowed to change his profile
+               switch ($DATA[10])
+               {
+               case "M":
+                       define('M_DEFAULT', " selected=\"selected\"");
+                       define('F_DEFAULT', "");
+                       define('C_DEFAULT', "");
+                       break;
+
+               case "F":
+                       define('M_DEFAULT', "");
+                       define('F_DEFAULT', " selected=\"selected\"");
+                       define('C_DEFAULT', "");
+                       break;
+
+               case "C":
+                       define('M_DEFAULT', "");
+                       define('F_DEFAULT', "");
+                       define('C_DEFAULT', " selected=\"selected\"");
+                       break;
+               }
+               $DOB = "";
+               switch (GET_LANGUAGE())
+               {
+               case "de": // German date format
+                       // Day
+                       $DOB .= ADD_SELECTION("day", $DATA[7]);
+
+                       // Month
+                       $DOB .= ADD_SELECTION("month", $DATA[8]);
+
+                       // Year
+                       $DOB .= ADD_SELECTION("year", $DATA[9]);
+                       break;
+
+               default: // Default is the US date format... :)
+                       break;
+               }
+               define('DOB', $DOB);
+               define('MAX_REC_LIST', ADD_MAX_RECEIVE_LIST("member", $DATA[11], true));
+
+               if (EXT_IS_ACTIVE("country"))
+               {
+                       // Generate selection box
+                       $OUT  = "<SELECT name=\"country_code\" class=\"member_select\" size=\"1\">\n";
+                       $WHERE = "WHERE is_active='Y'";
+                       if (IS_ADMIN()) $WHERE = "";
+                       $OUT .= ADD_OPTION_LINES("countries", "id", "descr", $DATA[3], "code", $WHERE);
+                       $OUT .= "</SELECT>";
+                       define('__COUNTRY_CONTENT', $OUT);
+               }
+                else
+               {
+                       // Ouput default input box
+                       define('__COUNTRY_CONTENT', "<INPUT type=\"text\" name=\"cntry\" class=\"member_normal\" size=\"2\" maxlength=\"3\" value=\"".$DATA[3]."\">");
+               }
+
+               // Load template
+               LOAD_TEMPLATE("member_mydata_edit");
+       }
+       break;
+
+case "save": // Save entered data
+       // Load old email / password:      0        1          2
+       $result = SQL_QUERY_ESC("SELECT email, password, last_update FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(UID_VALUE), __FILE__, __LINE__);
+       $DATA = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+       $DATA[3] = $DATA[2] + $CONFIG['profile_lock'];
+
+       // How far is last change on his profile away from now?
+       if (($DATA[3] > time()) && (!IS_ADMIN()) && ($CONFIG['profile_lock'] > 0))
+       {
+               $DATA[3] = MAKE_DATETIME($DATA[3] + $CONFIG['profile_lock'], "0");
+               // You cannot change your account
+               LOAD_TEMPLATE("member_mydata_locked");
+       }
+        elseif (!VALIDATE_EMAIL($_POST['addy']))
+       {
+               // Invalid email address!
+               LOAD_TEMPLATE("admin_settings_saved", false, INVALID_EMAIL_ADDRESS_ENTERED);
+       }
+        else
+       {
+               // Secure every submitted variable
+               foreach ($_POST as $key=>$value)
+               {
+                       $_POST[$key] = addslashes($value);
+               }
+
+               $hash = generateHash($_POST['pass1'], substr($DATA[1], 0, -40));
+               if ((($hash == $DATA[1]) || ($_POST['pass1'] == $_POST['pass2'])) && (!empty($_POST['pass1'])))
+               {
+                       // Only on simple changes normal mode is active = no email or password changed
+                       $MODE = "normal"; $AND = "";
+
+                       // Did the user changed the password?
+                       if ($hash != $DATA[1]) { $AND = ", password='".$hash."'"; $MODE = "pass"; }
+
+                       // Or did he changed his password?
+                       if ($_POST['addy'] != $DATA[0])
+                       {
+                               // Jupp
+                               if ($MODE == "normal") { $MODE = "email"; } else { $MODE .= ";email"; }
+                               $_POST['old_addy'] = $DATA[0];
+                       }
+
+                       // Update member's profile
+                       if (EXT_IS_ACTIVE("country"))
+                       {
+                               // New way
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET
+sex='%s', surname='%s', family='%s',
+street_nr='%s',
+country_code=%d, zip=%d, city='%s',
+email='%s',
+birth_day=%d, birth_month=%d, birth_year=%d,
+max_mails=%d,
+last_update=UNIX_TIMESTAMP()".$AND.",
+notified='N',
+last_profile_sent=UNIX_TIMESTAMP()
+WHERE userid=%d AND password='%s' LIMIT 1",
+ array(
+  $_POST['sex'],
+  $_POST['surname'],
+  $_POST['family_name'],
+  $_POST['street_nr'],
+  bigintval($_POST['country_code']),
+  bigintval($_POST['zip']),
+  $_POST['city'],
+  $_POST['addy'],
+  bigintval($_POST['day']),
+  bigintval($_POST['month']),
+  bigintval($_POST['year']),
+  bigintval($_POST['max_mails']),
+  UID_VALUE,
+  $_COOKIE['u_hash']
+ ), __FILE__, __LINE__);
+                       }
+                        else
+                       {
+                               // Old way
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET
+sex='%s', surname='%s', family='%s',
+street_nr='%s',
+country='%s', zip=%d, city='%s',
+email='%s',
+birth_day=%d, birth_month=%d, birth_year=%d,
+max_mails='%s',
+last_update=UNIX_TIMESTAMP()".$AND.",
+notified='N',
+last_profile_sent=UNIX_TIMESTAMP()
+WHERE userid=%d AND password='%s' LIMIT 1",
+ array(
+  $_POST['sex'],
+  $_POST['surname'],
+  $_POST['family_name'],
+  $_POST['street_nr'],
+  $_POST['cntry'],
+  bigintval($_POST['zip']),
+  $_POST['city'],
+  $_POST['addy'],
+  bigintval($_POST['day']),
+  bigintval($_POST['month']),
+  bigintval($_POST['year']),
+  bigintval($_POST['max_mails']),
+  UID_VALUE,
+  $_COOKIE['u_hash']
+ ), __FILE__, __LINE__);
+                       }
+
+                       // Get all modes ...
+                       $modes = explode(";", $MODE);
+
+                       // ... and run them through
+                       SEND_MODE_MAILS ("mydata", $modes);
+               }
+                else
+               {
+                       // Entered wrong pass for updating profile
+                       LOAD_TEMPLATE("admin_settings_saved", false, MEBER_UPDATE_PWD_WRONG);
+               }
+       }
+       break;
+
+case "notify": // Switch off notfication
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET notified='N', last_update=UNIX_TIMESTAMP() WHERE userid=%d LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+       $URL = URL."/modules.php?module=login&amp;what=welcome&msg=".urlencode(PROFILE_UPDATED);
+       break;
+}
+CLOSE_TABLE();
+
+if (!empty($URL))
+{
+       // Load generated URL
+       LOAD_URL($URL);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-newsletter.php b/0.2.1/inc/modules/member/what-newsletter.php
new file mode 100644 (file)
index 0000000..af06409
--- /dev/null
@@ -0,0 +1,123 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/12/2004 *
+ * ================                             Last change: 01/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-                                            *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("newsletter")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "newsletter");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load status
+$result = SQL_QUERY_ESC("SELECT nl_receive, nl_until, nl_timespan FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+list($status, $until, $span) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+// Remember charge value
+define('__CHARGE_VALUE', TRANSLATE_COMMA($CONFIG['nl_charge']));
+
+if ((isset($_POST['ok'])) && ($status == "Y") && ($span == "0"))
+{
+       // Save request
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET nl_timespan='".(ONE_DAY * 30)."' WHERE userid=%d LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+
+       // Load admin message
+       $admin_msg = LOAD_EMAIL_TEMPLATE("admin_newsletter_request", "", $GLOBALS['userid']);
+
+       // Add task
+       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, status, task_type, subject, text, task_created, userid)
+VALUES ('0', 'NEW', 'NL_UNSUBSCRIBE', '".ADMIN_NL_SUBJECT."', '".addslashes($admin_msg)."', UNIX_TIMESTAMP(), '%s')", array($GLOBALS['userid']), __FILE__, __LINE__);
+
+       // Send mail to member
+       $msg = LOAD_EMAIL_TEMPLATE("member_newsletter_request", "", $GLOBALS['userid']);
+       SEND_EMAIL($GLOBALS['userid'], NL_MEMBER_SUBJECT, $msg);
+
+       // Send mail to all admins
+       if (GET_EXT_VERSION("admins") >= "0.4.1")
+       {
+               SEND_ADMIN_EMAILS_PRO(NL_ADMIN_SUBJECT, "admin_newsletter_request", "", $GLOBALS['userid']);
+       }
+        else
+       {
+               SEND_ADMIN_EMAILS(NL_ADMIN_SUBJECT, $admin_msg);
+       }
+
+       // Display message
+       LOAD_TEMPLATE("admin_settings_saved", false, NL_MEMBER_REQUEST_DONE);
+}
+ elseif ($span > 0)
+{
+       // Already ordered
+       LOAD_TEMPLATE("admin_settings_saved", false, NL_MEMBER_REQUEST_ALREADY);
+}
+ else
+{
+       // Load template for the note
+       define('NL_MEMBER_NOTE', LOAD_TEMPLATE("member_newsletter_note", true));
+
+       // Set status message and submit button
+       switch ($status)
+       {
+       case "Y": // Receives the newsletter
+               define('__STATUS_VALUE', NL_MEMBER_ON);
+               define('__UNTIL_VALUE', "");
+               define('NL_SUBMIT', NL_MEMBER_SUBMIT_OFF);
+               break;
+
+       case "N": // Does not receive the newsletter
+               define('__STATUS_VALUE', NL_MEMBER_OFF);
+               define('__UNTIL_VALUE', MAKE_DATETIME($until, "2"));
+               define('NL_SUBMIT', NL_MEMBER_SUBMIT_ON);
+               break;
+       }
+
+       // Load template and member settings
+       LOAD_TEMPLATE("member_newsletter");
+}
+//
+?>
+
diff --git a/0.2.1/inc/modules/member/what-nickname.php b/0.2.1/inc/modules/member/what-nickname.php
new file mode 100644 (file)
index 0000000..2d4643f
--- /dev/null
@@ -0,0 +1,108 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/19/2004 *
+ * ================                             Last change: 07/24/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-nickname.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Nickname instead of the ID                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Nickname anstelle der ID                         *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("nickname")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "nickname");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+$VALID = false;
+
+if (isset($_POST['ok']))
+{
+       // Nickname was submitted so let's check if it is not already in use
+       if (!empty($_POST['nickname']))
+       {
+               // Check if nickname is valid
+               $PATTERN = "[".__NICKNAME_PATTERN."]{".__NICKNAME_LENGTH.",}";
+               if (ereg($PATTERN, $_POST['nickname'], $array))
+               {
+                       // Entered nickname is valid?
+                       if ($array[0] == $_POST['nickname']) $VALID = true;
+               }
+       }
+}
+
+if ($VALID)
+{
+       // Look for nickname in database (we only need just one entry so don't worry about the "LIMIT 1" !
+       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' AND userid != '%s' LIMIT 1",
+        array($_POST['nickname'], $GLOBALS['userid']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Nickname not in use, so set it now
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET nickname='%s' WHERE userid=%d LIMIT 1",
+                array($_POST['nickname'], $GLOBALS['userid']), __FILE__, __LINE__);
+               $content = NICKNAME_SAVED;
+       }
+        else
+       {
+               // Free result
+               SQL_FREERESULT($result);
+
+               // Nickname already in use!
+               $content = NICKNAME_ALREADY_IN_USE;
+       }
+
+       // Load template
+       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+}
+ else
+{
+       // Load current nickname
+       define('__NICKNAME', NICKNAME_GET_NICK($GLOBALS['userid']));
+
+       // Do we have already submit the form?
+       if (!empty($_POST['nickname']))
+       {
+               OUTPUT_HTML ("<STRONG class=\"member_failed\">".NICKNAME_IS_INVALID."</STRONG><P></P>");
+       }
+
+       // Load Template
+       LOAD_TEMPLATE("member_nickname_form");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-order.php b/0.2.1/inc/modules/member/what-order.php
new file mode 100644 (file)
index 0000000..fd48a1b
--- /dev/null
@@ -0,0 +1,818 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 08/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-order.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Order mails here                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Hier koennen Ihre Mitglieder Mails buchen        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("order")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "order");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+$URL = ""; $id = 0;
+$WHERE = " WHERE visible='Y'";
+
+// Set undefined array elements
+if (empty($_GET['msg']))       $_GET['msg']       = "";
+if (empty($_POST['zip']))      $_POST['zip']      = "";
+if (empty($_POST['html']))     $_POST['html']     = "";
+if (empty($_POST['receiver'])) $_POST['receiver'] = "";
+if (is_admin()) $WHERE = "";
+
+// Add slashes to every value
+foreach($_POST as $key=>$value)
+{
+       // Skip submit buttons
+       if (($key != "data") && ($key != "frametester")) $_POST[$key] = addslashes($value);
+}
+
+// Minimum mails / order
+define('__MIN_VALUE', $CONFIG['order_min']);
+
+// Count unconfirmed mails
+$result_links = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_links WHERE userid=%d",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+$links = SQL_NUMROWS($result_links);
+SQL_FREERESULT($result_links);
+
+// Does the user has more than 0 mails per day set?
+$HOLIDAY="userid";
+if (GET_EXT_VERSION("holiday") >= "0.1.3")
+{
+       // Fetch also holiday activation data
+       $HOLIDAY = "holiday_active";
+}
+
+$result_mmails = SQL_QUERY_ESC("SELECT userid, receive_mails, mail_orders, ".$HOLIDAY."
+FROM "._MYSQL_PREFIX."_user_data
+WHERE userid=%d AND max_mails > 0 LIMIT 1",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+
+$mmails = SQL_NUMROWS($result_mmails);
+list($DMY, $MAXI, $ORDERS, $HOLIDAY) = SQL_FETCHROW($result_mmails);
+SQL_FREERESULT($result_mmails);
+if ($HOLIDAY == $DMY) $HOLIDAY="N";
+
+$ALLOWED = $MAXI - $ORDERS;
+if ($CONFIG['order_max'] == "MAX") $ALLOWED = $MAXI;
+
+// Check HTML extension
+$HTML_EXT = EXT_IS_ACTIVE("html_mail");
+
+// Now check his points amount
+$result_p = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_user_points WHERE userid=%d",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+
+$TOTAL = "0";
+if (SQL_NUMROWS($result_p) > 0)
+{
+       // Load points
+       list($TOTAL) = SQL_FETCHROW($result_p);
+       SQL_FREERESULT($result_p);
+
+       // And subtract his used points...
+       $result_p = SQL_QUERY_ESC("SELECT used_points FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+
+       list($p) = SQL_FETCHROW($result_p);
+       SQL_FREERESULT($result_p);
+       $TOTAL -= $p;
+
+       // Add (maybe) missing three zeros
+       if (!ereg(".", $TOTAL)) $TOTAL .= ".00000";
+}
+
+if (($HOLIDAY == "Y") && (GET_EXT_VERSION("holiday") >= "0.1.3"))
+{
+       // Holiday is active!
+       SQL_FREERESULT($result_p);
+       LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_ORDER_NOT_POSSIBLE);
+}
+ elseif ((!empty($_POST['frametester'])) && ($ALLOWED > 0) && ($_POST['receiver'] > 0))
+{
+       // Continue with the frametester, we first need to store the data temporary in the pool
+       //
+       // First we would like to store the data and get it's pool position back...
+       $result = SQL_QUERY_ESC("SELECT id, data_type FROM "._MYSQL_PREFIX."_pool WHERE sender=%d AND url='%s' AND timestamp > %d LIMIT 1",
+        array($GLOBALS['userid'], $_POST['url'], bigintval(time() - $CONFIG['url_tlock'])), __FILE__, __LINE__);
+
+       $type = "TEMP"; $id = "0";
+       if (SQL_NUMROWS($result) == 1)
+       {
+               list($id, $type) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+       if ($type == "TEMP")
+       {
+               // No entry found, so we need to check out the stats table as well... :)
+               // We have to add that suff here, now we continue WITHOUT checking and check the text and subject against some filters
+               $URL = "";
+               if ($CONFIG['test_text'] == "Y")
+               {
+                       // Test submitted text against some filters (length, URLs in text etc.)
+                       if ((strpos(strtolower($_POST['text']), "https://") > -1) || (strpos(strtolower($_POST['text']), "http://") > -1) || (strpos(strtolower($_POST['text']), "www") > -1))
+                       {
+                               // URL found!
+                               $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_URL_FOUND;
+                       }
+                       $TEST = str_replace("\n", "", str_replace("\r", "", addslashes($_POST['text'])));
+                       if (strlen($TEST) > $CONFIG['max_tlength'])
+                       {
+                               // Text is too long!
+                               $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_OVERLENGTH;
+                       }
+               }
+               // Shall I test the subject line against URLs?
+               if ($CONFIG['test_subj'] == "Y")
+               {
+                       // Check the subject line for issues
+                       $_POST['subject'] = str_replace("\\", "[nl]", substr($_POST['subject'], 0, 200));
+                       if ((strpos(strtolower($_POST['subject']), "http://") > -1) || (strpos(strtolower($_POST['subject']), "www") > -1))
+                       {
+                               // URL in subject found
+                               $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_SUBJ_URL;
+                       }
+               }
+               // And shall I check that his URL is not in the black list?
+               if ($CONFIG['url_blacklist'] == "Y")
+               {
+                       // Ok, I do that for you know...
+                       $result = SQL_QUERY_ESC("SELECT timestamp FROM "._MYSQL_PREFIX."_url_blist WHERE url='%s' LIMIT 1",
+                        array($_POST['url']), __FILE__, __LINE__);
+
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Jupp, we got one listed
+                               list($blist) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+                               $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_BLIST_URL."&blist=".$blist;
+                       }
+               }
+               if (($_POST['receiver'] < $CONFIG['order_min']) && (!IS_ADMIN()))
+               {
+                       // Less than allowed receivers entered!
+                       $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_MORE_RECEIVERS3;
+               }
+
+               // Validate URL
+               if (!VALIDATE_URL($_POST['url']))
+               {
+                       // URL is invalid!
+                       $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_INVALID_URL;
+               }
+
+               // Probe for HTML extension
+               if ($HTML_EXT)
+               {
+                       if ($_POST['html'] == "Y")
+                       {
+                               // Chek for valid HTML tags
+                               $_POST['text'] = HTML_CHECK_TAGS($_POST['text']);
+
+                               // Maybe invalid tags found?
+                               if (empty($_POST['text'])) $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_INVALID_TAGS."&id=".$id;
+                       }
+                        else
+                       {
+                               // Remove any HTML code
+                               $_POST['text'] = str_replace("<", "{OPEN_HTML}", str_replace(">", "{CLOSE_HTML}", $_POST['text']));
+                       }
+               }
+       }
+        elseif (!IS_ADMIN())
+       {
+               // He has already sent a mail within a specific time
+               $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_URL_TLOCK."&id=".$id;
+       }
+       if (empty($URL))
+       {
+               // Check if category and number of receivers is okay
+               $ADD = "";
+               if (($CONFIG['order_multi_page'] == "Y") && (!empty($_POST['zip']))) $ADD = "AND d.zip LIKE '".bigintval($_POST['zip'])."{PER}'";
+
+               // Check for userids
+               $result = SQL_QUERY_ESC("SELECT DISTINCT c.userid FROM "._MYSQL_PREFIX."_user_cats AS c
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON c.userid=d.userid
+WHERE c.cat_id=%d AND c.userid != '%s' AND d.status='CONFIRMED' AND d.receive_mails > 0
+".$ADD."
+ORDER BY d.%s %s",
+ array(
+       bigintval($_POST['cat']),
+       $GLOBALS['userid'],
+       $CONFIG['order_select'],
+       $CONFIG['order_mode'],
+ ), __FILE__, __LINE__);
+
+               // Do we enougth receivers left?
+               if (SQL_NUMROWS($result) >= $_POST['receiver'])
+               {
+                       // Check for holiday extensions
+                       $HOLIDAY = false;
+                       if (GET_EXT_VERSION("holiday") >= "0.1.3")
+                       {
+                               // Include checking for users in holiday
+                               $HOLIDAY = true;
+                       }
+
+                       // Load receivers from database
+                       $TEST = array(); $cnt = 0;
+                       while (list($REC) = SQL_FETCHROW($result))
+                       {
+                               if ($HOLIDAY)
+                               {
+                                       // Check for his holiday status
+                                       $result_holiday = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_holidays
+WHERE userid=%d AND holiday_start < ".time()." AND holiday_end > ".time()." LIMIT 1",
+ array(bigintval($REC)), __FILE__, __LINE__);
+                                       if (SQL_NUMROWS($result_holiday) == 1) $REC = 0; // Exclude user who are in holiday
+
+                                       // Free memory
+                                       SQL_FREERESULT($result_holiday);
+                               }
+
+                               if ($REC > 0)
+                               {
+                                       // Add receiver
+                                       $TEST[] = $REC;
+                                       $cnt++;
+                               }
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+
+                       // Implode array into string for the sending pool
+                       $RECEIVER = implode($TEST, ";");
+
+                       // Count array for maximum sent
+                       $MAX_SEND = count($TEST);
+
+                       // Update receiver list
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET receive_mails=receive_mails-1 WHERE userid IN (%s) LIMIT %s",
+                        array(str_replace(";", ", ", $RECEIVER), $MAX_SEND), __FILE__, __LINE__);
+
+                       // Is calculated max receivers larger than wanted receivers then reset it
+                       if ($MAX_SEND > $_POST['receiver']) $MAX_SEND = $_POST['receiver'];
+
+                       // Calculate used points
+                       $USED = $MAX_SEND * GET_PAY_POINTS(bigintval($_POST['type']));
+
+                       // Check if he has enougth points for this order and selected more than 0 receivers
+                       if (($USED > 0) && ($USED <= $TOTAL) && ($MAX_SEND > 0))
+                       {
+                               // Gettings points is okay, so we can add $USED later from
+                               $TIME = time();
+                               if (($id == "0") || ($type != "TEMP"))
+                               {
+                                       // New order
+                                       $id = 0;
+                                       if ($HTML_EXT)
+                                       {
+                                               // HTML extension is active
+                                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_pool (sender, subject, text, receivers, payment_id, data_type, timestamp, url, cat_id, target_send, zip, html_msg)
+ VALUES ('%s', '%s', '%s', '%s', '%s', 'TEMP', '%s', '%s', '%s', '%s', '%s', '%s')",
+array(
+       $GLOBALS['userid'],
+       addslashes($_POST['subject']),
+       addslashes($_POST['text']),
+       $RECEIVER,
+       bigintval($_POST['type']),
+       $TIME,
+       $_POST['url'],
+       bigintval($_POST['cat']),
+       $MAX_SEND,
+       bigintval($_POST['zip']),
+       $_POST['html']
+), __FILE__, __LINE__);
+                                       }
+                                        else
+                                       {
+                                               // No HTML extension is active
+                                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_pool (sender, subject, text, receivers, payment_id, data_type, timestamp, url, cat_id, target_send, zip)
+ VALUES ('%s', '%s', '%s', '%s', '%s', 'TEMP', '%s', '%s', '%s', '%s', '%s')",
+array(
+       $GLOBALS['userid'],
+       addslashes($_POST['subject']),
+       addslashes($_POST['text']),
+       $RECEIVER,
+       bigintval($_POST['type']),
+       $TIME,
+       $_POST['url'],
+       bigintval($_POST['cat']),
+       $MAX_SEND,
+       bigintval($_POST['zip']),
+), __FILE__, __LINE__);
+                                       }
+                               }
+                                else
+                               {
+                                       // Change current order
+                                       if ($HTML_EXT)
+                                       {
+                                               // HTML extension is active
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET
+subject='%s',
+text='%s',
+receivers='%s',
+payment_id=%d,
+timestamp=UNIX_TIMESTAMP(),
+url='%s',
+cat_id=%d,
+target_send=%d,
+zip=%d,
+html_msg='%s'
+WHERE id=%d LIMIT 1",
+array(
+       $_POST['subject'],
+       $_POST['text'],
+       $RECEIVER,
+       bigintval($_POST['type']),
+       $_POST['url'],
+       bigintval($_POST['cat']),
+       $MAX_SEND,
+       bigintval($_POST['zip']),
+       $_POST['html'],
+       bigintval($id)
+), __FILE__, __LINE__);
+                                       }
+                                        else
+                                       {
+                                               // No HTML extension is active
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET
+subject='%s',
+text='%s',
+receivers='%s',
+payment_id=%d,
+timestamp=UNIX_TIMESTAMP(),
+url='%s',
+cat_id=%d,
+target_send=%d,
+zip=%d
+WHERE id=%d LIMIT 1",
+array(
+       $_POST['subject'],
+       $_POST['text'],
+       $RECEIVER,
+       bigintval($_POST['type']),
+       $_POST['url'],
+       bigintval($_POST['cat']),
+       $MAX_SEND,
+       bigintval($_POST['zip']),
+       bigintval($id)
+), __FILE__, __LINE__);
+                                       }
+                               }
+
+                               // Do we need to get the ID number?
+                               if ($id == 0) {
+                                       // Order is placed as temporary. We need to get it's id for the frametester
+                                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_pool WHERE sender=%d AND subject='%s' AND payment_id=%d AND data_type='TEMP' AND timestamp=%d LIMIT 1",
+                                       array(
+                                               $GLOBALS['userid'],
+                                               $_POST['subject'],
+                                               bigintval($_POST['type']),
+                                               $TIME
+                                       ), __FILE__, __LINE__);
+
+                                       list($id) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+                               }
+
+                               // ID is received so we can redirect the user, used points will be added when he send's out the mail
+                               $URL = URL."/modules.php?module=frametester&amp;order=".$id."";
+                       }
+                        elseif ($MAX_SEND == 0)
+                       {
+                               // Not enougth receivers found which can receive mails
+                               $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_MORE_RECEIVERS2;
+                       }
+                        else
+                       {
+                               // No enougth points left!
+                               $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_MORE_POINTS;
+                       }
+               }
+                else
+               {
+                       // Ordered more mails than he can send in this category
+                       $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_NO_RECS_LEFT;
+               }
+       }
+}
+ elseif ($_POST['receiver'] == "0")
+{
+       // Not enougth receivers selected
+       $URL = URL."/modules.php?module=login&amp;what=order&amp;msg=".CODE_MORE_RECEIVERS1;
+}
+ elseif (($ALLOWED == 0) && ($CONFIG['order_max'] == "ORDER"))
+{
+       // No more mail orders allowed
+       LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_ORDER_ALLOWED_EXHAUSTED);
+}
+ elseif (($links < $CONFIG['unconfirmed']) && ($mmails == "1"))
+{
+       // Display order form
+       $result_cats = SQL_QUERY("SELECT id, cat FROM "._MYSQL_PREFIX."_cats".$WHERE." ORDER BY sort", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_cats) > 0)
+       {
+               if ($TOTAL > 0)
+               {
+                       // Initialize array...
+                       $CATS = array(
+                               'id'   => array(),
+                               'name' => array(),
+                               'uids' => array()
+                       );
+
+                       // Enable HTML checking
+                       $HTML = ""; $HOLIDAY = false; $HOL_STRING = "";
+                       if (($HTML_EXT) && ($_POST['html'] == "Y")) $HTML = " AND html='Y'";
+                       if (GET_EXT_VERSION("holiday") >= "0.1.3")
+                       {
+                               // Extension's version is fine
+                               $HOLIDAY = true; $HOL_STRING = " AND holiday_active='N'";
+                       }
+
+                       // ... and begin loading stuff
+                       while (list($id, $cat) = SQL_FETCHROW($result_cats))
+                       {
+                               $CATS['id'][]   = bigintval($id);
+                               $CATS['name'][] = $cat;
+
+                               // Select users in current category
+                               $result_uids = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_cats WHERE cat_id=%d AND userid != '%s' ORDER BY userid",
+                                array(bigintval($id), $GLOBALS['userid']), __FILE__, __LINE__);
+
+                               $uid_cnt = "0";
+                               while (list($ucat) = SQL_FETCHROW($result_uids))
+                               {
+                                       // Check for holiday system
+                                       $HOL_ACTIVE = false;
+                                       if ($HOLIDAY)
+                                       {
+                                               // Check user's holiday status
+                                               $result_holiday = SQL_QUERY_ESC("SELECT DISTINCT d.userid FROM "._MYSQL_PREFIX."_user_data AS d
+LEFT JOIN "._MYSQL_PREFIX."_user_holidays AS h
+ON d.userid=h.userid
+WHERE d.userid=%d AND d.receive_mails > 0 AND d.status='CONFIRMED' AND d.holiday_active='Y'
+AND h.holiday_start < ".time()." AND h.holiday_end > ".time()."
+LIMIT 1", array(bigintval($ucat)), __FILE__, __LINE__);
+                                               if (SQL_NUMROWS($result_holiday) == 1)
+                                               {
+                                                       // Holiday is active!
+                                                       $HOL_ACTIVE = true;
+                                               }
+
+                                               // Free memory
+                                               SQL_FREERESULT($result_holiday);
+                                       }
+
+                                       if (!$HOL_ACTIVE)
+                                       {
+                                               // Check if the user want's to receive mails?
+                                               $result_ver = SQL_QUERY_ESC("SELECT zip FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d".$HTML." AND receive_mails > 0 AND status='CONFIRMED' LIMIT 1",
+                                                array(bigintval($ucat)), __FILE__, __LINE__);
+
+                                               if ((SQL_NUMROWS($result_ver) == 1) && (!empty($_POST['zip'])) && ($CONFIG['order_multi_page'] == "Y"))
+                                               {
+                                                       list($zip) = SQL_FETCHROW($result_ver);
+                                                       SQL_FREERESULT($result_ver);
+                                                       if (substr($zip, 0, strlen($_POST['zip'])) == $_POST['zip'])
+                                                       {
+                                                               // Ok, ZIP part is found
+                                                               $uid_cnt++;
+                                                       }
+                                               }
+                                                else
+                                               {
+                                                       // Count numbers up!
+                                                       $uid_cnt += SQL_NUMROWS($result_ver);
+                                               }
+                                       }
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result_uids);
+                               $CATS['uids'][] = $uid_cnt;
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result_cats);
+
+                       // Now we need to load the mail types...
+                       $result = SQL_QUERY("SELECT id, price, payment, mail_title FROM "._MYSQL_PREFIX."_payments ORDER BY payment", __FILE__, __LINE__);
+
+                       $TYPES = array();
+                       if (SQL_NUMROWS($result) > 0)
+                       {
+                               // Check for message ID in URL
+                               $MSG = "";
+                               switch ($_GET['msg'])
+                               {
+                               case CODE_URL_TLOCK:
+                                       $result = SQL_QUERY_ESC("SELECT timestamp FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+                                        array(bigintval($_GET['id'])), __FILE__, __LINE__);
+
+                                       // Load timestamp from last order
+                                       list($LORDER) = SQL_FETCHROW($result);
+                                       $LORDER = MAKE_DATETIME($LORDER, "1");
+
+                                       // Free memory
+                                       SQL_FREERESULT($result);
+
+                                       // Calculate hours...
+                                       $STD = round($CONFIG['url_tlock'] / 60 / 60);
+
+                                       // Minutes...
+                                       $MIN = round(($CONFIG['url_tlock'] - $STD * 60 * 60) / 60);
+
+                                       // And seconds
+                                       $SEC = $CONFIG['url_tlock'] - $STD * 60 * 60 - $MIN * 60;
+
+                                       // Finally contruct the message
+                                       $MSG = MEMBER_URL_TIME_LOCK."<BR>".CONFIG_URL_TLOCK." ".$STD." ".
+                                               HOURS.", ".$MIN." ".MINS." "._AND." ".$SEC." ".SECS."<BR>".
+                                               MEMBER_LAST_TLOCK.": ".$LORDER;
+                                       break;
+
+                               case CODE_OVERLENGTH:
+                                       $MSG = MEMBER_TEXT_OVERLENGTH;
+                                       break;
+
+                               case CODE_URL_FOUND:
+                                       $MSG = MEMBER_TEXT_CONTAINS_URL;
+                                       break;
+
+                               case CODE_SUBJ_URL:
+                                       $MSG = MEMBER_SUBJ_CONTAINS_URL;
+                                       break;
+
+                               case CODE_BLIST_URL:
+                                       $MSG = MEMBER_URL_BLACK_LISTED."<BR>
+".MEMBER_BLIST_TIME.": ".MAKE_DATETIME($_GET['blist'], "0");
+                                       break;
+
+                               case CODE_NO_RECS_LEFT:
+                                       $MSG = MEMBER_SELECTED_MORE_RECS;
+                                       break;
+
+                               case CODE_INVALID_TAGS:
+                                       $MSG = MEMBER_HTML_INVALID_TAGS;
+                                       break;
+
+                               case CODE_MORE_POINTS:
+                                       $MSG = MEMBER_MORE_POINTS_NEEDED;
+                                       break;
+
+                               case CODE_MORE_RECEIVERS1:
+                                       $MSG = MEMBER_ENTER_MORE_RECEIVERS;
+                                       break;
+
+                               case CODE_MORE_RECEIVERS2:
+                                       $MSG = MEMBER_NO_MORE_RECEIVERS_FOUND;
+                                       break;
+
+                               case CODE_MORE_RECEIVERS3:
+                                       $MSG = MEMBER_ENTER_MORE_MIN_RECEIVERS_1.$CONFIG['order_min'].MEMBER_ENTER_MORE_MIN_RECEIVERS_2;
+                                       break;
+
+                               case CODE_INVALID_URL:
+                                       $MSG = MEMBER_ENTER_INVALID_URL;
+                                       break;
+
+                               case "": // When no error code is included in the URL we do not need to output an error message as well...
+                                       break;
+
+                               default:
+                                       $MSG = UNKNOWN_CODE_1.$_GET['msg'].UNKNOWN_CODE_2;
+                                       break;
+                               }
+                               if (!empty($MSG))
+                               {
+                                       // We got system message so we drop it out to the user
+                                       LOAD_TEMPLATE("admin_settings_saved", false, $MSG);
+                               }
+
+                               // Load all email types...
+                               while ($TYPES[] = SQL_FETCHROW($result))
+                               {
+                                       // Nothing to do here... ;-)
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+
+                               // Output user's points
+                               $TOTAL = TRANSLATE_COMMA($TOTAL);
+
+                               // Check how many mail orders he has placed today and how many he's allowed to send
+                               switch ($CONFIG['order_max'])
+                               {
+                               case "MAX": // He is allowed to send as much as possible
+                                       define('ORDER_MAX_VALUE', ORDER_ALLOED_MAX);
+                                       break;
+
+                               case "ORDER": // He is allowed to send as much as he setup the receiving value
+                                       define('ORDER_MAX_VALUE', ORDER_ALLOWED_RECEIVE_1.$ALLOWED.ORDER_ALLOWED_RECEIVE_2.$MAXI.ORDER_ALLOWED_RECEIVE_3);
+                                       break;
+                               }
+
+                               // Load final template
+                               LOAD_TEMPLATE("member_order_points", false, $TOTAL);
+
+                               // Reset variables
+                               $OLD_ORDER = false; $subject = ""; $text = ""; $target = "";
+
+                               // Check if we already have an order placed and make it editable
+                               $result = SQL_QUERY_ESC("SELECT subject, text, payment_id, timestamp, url, target_send, cat_id, zip FROM "._MYSQL_PREFIX."_pool WHERE sender=%d AND data_type='TEMP' LIMIT 1",
+                                array($GLOBALS['userid']), __FILE__, __LINE__);
+
+                               if (SQL_NUMROWS($result) == 1)
+                               {
+                                       // Old order found
+                                       list($subject, $text, $payment, $tstamp, $url, $target, $cat, $zip) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+
+                                       // Fix max receivers when it is too much
+                                       if ($target > $CATS['uids'][$cat]) $target = $CATS['uids'][$cat];
+
+                                       // Old order is grabbed
+                                       $OLD_ORDER = true;
+                               }
+                                else
+                               {
+                                       // Default output for that your members don't forget it...
+                                       $url = "http://";
+                               }
+
+                               // 01      2                       21    12                             2    23         443    3          3210
+                               if ((!empty($_POST['data'])) || (($CONFIG['order_multi_page'] == "N") && ((!IS_ADMIN()) && (!$HTML_EXT))))
+                               {
+                                       // Pre-output categories
+                                       $CAT = "";
+                                       foreach ($CATS['id'] as $key=>$value)
+                                       {
+                                               $CAT .= "      <OPTION value=\"".$value."\"";
+                                               if (($OLD_ORDER) && ($cat == $value)) $CAT .= " selected=\"selected\"";
+                                               $CAT .= ">".$CATS['name'][$key]." (".$CATS['uids'][$key]." ".USER_IN_CAT.")</OPTION>\n";
+                                       }
+                                       // Mail type
+                                       $TYPE = "";
+                                       foreach ($TYPES as $key=>$value)
+                                       {
+                                               $P = TRANSLATE_COMMA($TYPES[$key][1]);
+                                               if (is_array($value))
+                                               {
+                                                       // Output option line
+                                                       $TYPE .= "      <OPTION value=\"".$TYPES[$key][0]."\"";
+                                                       if (($OLD_ORDER) && ($payment == $TYPES[$key][0])) $TYPE .= " selected=\"selected\"";
+                                                       $TYPE .= ">".$P." ".PER_MAIL." - ".$TYPES[$key][3]." - ".round($TYPES[$key][2])." ".PAYMENT."</OPTION>\n";
+                                               }
+                                       }
+
+                                       // Put all in constants for the template
+                                       define('CATEGORY_SELECTION', $CAT);
+                                       define('TYPE_SELECTION', $TYPE);
+                                       define('TARGET', $target);
+                                       define('SUBJECT', $subject);
+                                       define('TEXT', COMPILE_CODE($text));
+                                       define('T_URL', $url);
+
+                                       if (!empty($_POST['zip']))
+                                       {
+                                               // Output entered ZIP code
+                                               define('ZIP_OUTPUT', LOAD_TEMPLATE("member_order-zip2", true, $_POST['zip']));
+                                       }
+                                        else
+                                       {
+                                               define('ZIP_OUTPUT', "<TR><TD colspan=\"5\" height=\"5\" class=\"seperator\">&nbsp;</TD></TR>");
+                                       }
+                                       // HTML extension
+                                       if (($HTML_EXT) && ($_POST['html'] == "Y"))
+                                       {
+                                               // Extension is active so output valid HTML tags
+                                               define('MEMBER_HTML_EXTENSION', LOAD_TEMPLATE("member_order-html_ext", true, HTML_ADD_VALID_TAGS()));
+                                       }
+                                        else
+                                       {
+                                               // Extension not active and/or class not uploaded
+                                               define('MEMBER_HTML_EXTENSION', "<TR><TD colspan=\"5\"><INPUT type=\"hidden\" name=\"html\" value=\"N\"></TD></TR>");
+                                       }
+
+                                       // Output form for page 2
+                                       LOAD_TEMPLATE("member_order_page2");
+                               }
+                                else
+                               {
+                                       // Remember maybe entered ZIP code in constant
+                                       $ADD = "";
+                                       if ($HTML_EXT)
+                                       {
+                                               // Add some content when html extension is active
+                                               if (($CONFIG['order_multi_page'] == "Y") || (IS_ADMIN())) $ADD = "<TR><TD colspan=\"2\" class=\"seperator bottom2\" height=\"5\">&nbsp;</TD></TR>\n";
+                                               define('MEMBER_HTML_EXTENSION', LOAD_TEMPLATE("member_order-html_intro", true));
+                                       }
+                                        else
+                                       {
+                                               // No HTML extension installed
+                                               define('MEMBER_HTML_EXTENSION', "<TR><TD colspan=\"2\"><INPUT type=\"hidden\" name=\"html\" value=\"N\"></TD></TR>");
+                                       }
+                                       // Do we want ZIP code or not?
+                                       if (($CONFIG['order_multi_page'] == "Y") || (IS_ADMIN()))
+                                       {
+                                               // Yes
+                                               $content = array(
+                                                       'zip' => $_POST['zip'],
+                                                       'add' => $ADD
+                                               );
+                                               define('MEMBER_ZIP_CONTENT', LOAD_TEMPLATE("member_order-zip1", true, $content));
+                                       }
+                                        else
+                                       {
+                                               // No
+                                               define('MEMBER_ZIP_CONTENT', "");
+                                       }
+
+                                       // Output form for page 1 (ZIP code or HTML)
+                                       LOAD_TEMPLATE("member_order_page1");
+                               }
+                       }
+                        else
+                       {
+                               // No mail types defined
+                               OUTPUT_HTML ("<STRONG><SPAN class=\"member_failed\">".MEMBER_NO_PAYMENTS."</SPAN></STRONG>");
+                       }
+               }
+                else
+               {
+                       // No points left!
+                       OUTPUT_HTML ("<STRONG><SPAN class=\"member_failed\">".MEMBER_NO_POINTS."</SPAN></STRONG>");
+               }
+       }
+        else
+       {
+               // No cateogries are defined yet
+               OUTPUT_HTML ("<STRONG><SPAN class=\"member_failed\">".MEMBER_NO_CATS."</SPAN></STRONG>");
+       }
+}
+ elseif ($mmails == "0")
+{
+       // Please set more than 0 mails per day!
+       LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_HAS_ZERO_MMAILS);
+}
+ else
+{
+       // Please confirm some mails first!
+       LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_LINKS_LEFT_1.$links.MEMBER_LINKS_LEFT_2.$CONFIG['unconfirmed'].MEMBER_LINKS_LEFT_3);
+}
+
+if (!empty($URL))
+{
+       // Redirect to requested URL
+       LOAD_URL($URL);
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-payout.php b/0.2.1/inc/modules/member/what-payout.php
new file mode 100644 (file)
index 0000000..0431f0e
--- /dev/null
@@ -0,0 +1,308 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/12/2004 *
+ * ================                             Last change: 12/01/2008 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-payout.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Payout requests                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auszahlungsanfragen                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
+       // Don't call this directly!
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif (!IS_LOGGED_IN()) {
+       // Not logged in
+       LOAD_URL(URL."/modules.php?module=index");
+} elseif ((!EXT_IS_ACTIVE("payout")) && (!IS_ADMIN())) {
+       // Extension "payout" is not active
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "payout");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+$result_depths = SQL_QUERY("SELECT level, percents FROM "._MYSQL_PREFIX."_refdepths ORDER BY level", __FILE__, __LINE__);
+$TPTS = "0";
+while (list($lvl, $per) = SQL_FETCHROW($result_depths))
+{
+       // Load referral points
+       $result_points = SQL_QUERY_ESC("SELECT points FROM "._MYSQL_PREFIX."_user_points WHERE userid=%d AND ref_depth='%s' LIMIT 1",
+        array($GLOBALS['userid'], bigintval($lvl)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_points) == 1)
+       {
+               list($POINTS) = SQL_FETCHROW($result_points);
+               SQL_FREERESULT($result_points);
+               $TPTS += $POINTS;
+       }
+}
+
+// Free memory
+SQL_FREERESULT($result_depths);
+
+$result = SQL_QUERY_ESC("SELECT used_points FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+list($USED) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+// Translate point into comma
+$TPTS = TRANSLATE_COMMA($TPTS - $USED);
+
+// Sanity check...
+if (empty($TPTS)) $TPTS = "0.00000";
+
+if (empty($_GET['payout']))
+{
+       // Load payout types
+       $result = SQL_QUERY_ESC("SELECT id, type, rate, min_points, allow_url
+FROM "._MYSQL_PREFIX."_payout_types
+WHERE %d >= min_points
+ORDER BY type", array(str_replace(",", ".", $TPTS)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Check for his payouts
+               $result_payouts = SQL_QUERY_ESC("SELECT DISTINCT p.id, p.payout_total, p.target_account, p.target_bank, t.type, p.payout_timestamp, p.status, t.allow_url AS allow, p.target_url AS url, p.link_text AS alt, p.banner_url AS bannerm
+FROM "._MYSQL_PREFIX."_user_payouts AS p
+LEFT JOIN "._MYSQL_PREFIX."_payout_types AS t
+ON p.payout_id = t.id
+WHERE p.userid = %d
+ORDER BY p.payout_timestamp DESC",
+                array($GLOBALS['userid']), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result_payouts) > 0)
+               {
+                       // List all his requests
+                       $SW = 2; $OUT = "";
+                       while (list($pid, $total, $account, $bank, $type, $tstamp, $status, $allow, $url, $alt, $banner) = SQL_FETCHROW($result_payouts))
+                       {
+                               // Translate status
+                               $evl = "\$status = PAYOUT_MEMBER_STATUS_".strtoupper($status).";";
+                               eval($evl);
+                               $status = "<FONT class=\"member_failed\">".$status."</FONT>";
+
+                               // Nothing entered must be secured in member/what-payputs.php !
+                               if ($allow == "Y")
+                               {
+                                       // Banner/Textlink views/clicks request
+                                       if (!empty($banner))
+                                       {
+                                               // Banner
+                                               $account = "<IMG src=\"".$banner."\" alt=\"".$alt."\" title=\"".$alt."\" border=\"0\">";
+                                       }
+                                        else
+                                       {
+                                               // Textlink
+                                               $account = $alt;
+                                       }
+                                       $bank = "<A href=\"".DEREFERER($url)."\" target=\"_blank\">".CLICK_HERE."</A>";
+                               }
+                                else
+                               {
+                                       // e-currency payout request
+                                       if (empty($account)) $account = "---";
+                                       if (empty($bank))    $bank    = "---";
+                               }
+
+                               // Prepare data for the template
+                               $content = array(
+                                       'sw'     => $SW,
+                                       'acc'    => $account,
+                                       'points' => TRANSLATE_COMMA($total)." ".COMPILE_CODE($type),
+                                       'bank'   => $bank,
+                                       'stamp'  => MAKE_DATETIME($tstamp, "2"),
+                                       'status' => $status
+                               );
+                               // Load row template and switch colors
+                               $OUT .= LOAD_TEMPLATE("member_payout_row", true, $content);
+                               $SW = 3 - $SW;
+                       }
+
+                       // Remember rows in constant
+                       define('__PAYOUT_ROWS', $OUT);
+
+                       // Load template
+                       LOAD_TEMPLATE("member_payout");
+               }
+
+               // Free memory
+               SQL_FREERESULT($result_payouts);
+
+               // Output payout list
+               PAYOUT_OUTPUT_PAYOUT_LIST($TPTS);
+       }
+}
+ else
+{
+       // Chedk if he can get paid by selected type
+       $result = SQL_QUERY_ESC("SELECT type, rate, min_points, allow_url FROM "._MYSQL_PREFIX."_payout_types WHERE id=%d LIMIT 1",
+        array(bigintval($_GET['payout'])), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // ID is valid
+               list($type, $rate, $min, $allow) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Calculate maximum value
+               $max = round($TPTS * $rate - 0.5);
+
+               // Calulcate points from submitted amount
+               $PAYOUT = 0;
+               if (!empty($_POST['payout']))
+               {
+                       $PAYOUT  = bigintval($_POST['payout']) / $rate;
+                       $PAY_MAX = $max / $rate;
+               }
+
+               // Move variables into constants for templates
+               define('PAYOUT_MAX_VALUE' , $max);
+               define('PAYOUT_TYPE_VALUE', COMPILE_CODE($type));
+
+               if (str_replace(",", ".", $TPTS) >= $min)
+               {
+                       // Ok, he can get be paid
+                       if ((isset($_POST['ok'])) && ($PAYOUT <= $PAY_MAX) && ($PAYOUT >= $min))
+                       {
+                               // Calculate exact value
+                               define('PAYOUT_POINTS_VALUE', $PAYOUT);
+
+                               // Subtract points from member's account
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+                                array($PAYOUT, $GLOBALS['userid']), __FILE__, __LINE__);
+
+                               // Update mediadata as well
+                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                               {
+                                       // Update database
+                                       MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $PAYOUT);
+                               }
+
+                               // Add entry to his tranfer history
+                               if ($allow == "Y")
+                               {
+                                       // Banner/textlink ordered
+                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_payouts (userid, payout_total, payout_id, payout_timestamp, status, target_url, link_text, banner_url)
+VALUES (%d, %d, %d, UNIX_TIMESTAMP(), 'NEW', '%s', '%s', '%s')",
+ array(
+       $GLOBALS['userid'],
+       bigintval($_POST['payout']),
+       bigintval($_GET['payout']),
+       $_POST['turl'],
+       $_POST['alt'],
+       $_POST['banner']
+), __FILE__, __LINE__);
+
+                                       // Load templates
+                                       $msg_mem = LOAD_EMAIL_TEMPLATE("member_payout_request_banner", "", $GLOBALS['userid']);
+                                       if (GET_EXT_VERSION("admins") >= "0.4.1")
+                                       {
+                                               $adm_tpl = "admin_payout_request_banner";
+                                       }
+                                        else
+                                       {
+                                               $msg_adm = addslashes(LOAD_EMAIL_TEMPLATE("admin_payout_request_banner", "", $GLOBALS['userid']));
+                                       }
+                               }
+                                else
+                               {
+                                       // e-currency payout requested
+                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_payouts (userid, payout_total, target_account, target_bank, payout_id, payout_timestamp, status, password)
+VALUES (%d, %d, %d, '%s', %d, UNIX_TIMESTAMP(), 'NEW', '%s')",
+ array(
+       $GLOBALS['userid'],
+       bigintval($_POST['payout']),
+       bigintval($_POST['account']),
+       $_POST['bank'],
+       bigintval($_GET['payout']),
+       $_POST['pass']
+), __FILE__, __LINE__);
+
+                                       // Load templates
+                                       $msg_mem = LOAD_EMAIL_TEMPLATE("member_payout_request", "", $GLOBALS['userid']);
+                                       $msg_adm = addslashes(LOAD_EMAIL_TEMPLATE("admin_payout_request", "", $GLOBALS['userid']));
+                                       $admin_tpl = "";
+                                       if (GET_EXT_VERSION("admins") >= "0.4.1")
+                                       {
+                                               $admin_tpl = "admin_payout_request";
+                                       }
+                               }
+
+                               // Generate task
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, status, task_type, subject, text, task_created, userid)
+VALUES (0, 'NEW', 'PAYOUT_REQUEST', '[payout:] ".PAYOUT_REQUEST_ADMIN."', '%s', UNIX_TIMESTAMP(), %d)",
+ array(
+       $msg_adm,
+       $GLOBALS['userid']
+), __FILE__, __LINE__);
+
+                               // Send out mails
+                               SEND_EMAIL($GLOBALS['userid'], PAYOUT_REQUEST_MEMBER, $msg_mem);
+
+                               // To admin(s)
+                               if (GET_EXT_VERSION("admins") >= "0.4.1")
+                               {
+                                       // Use new method
+                                       SEND_ADMIN_EMAILS_PRO(PAYOUT_REQUEST_ADMIN, $admin_tpl, "", $GLOBALS['userid']);
+                               }
+                                else
+                               {
+                                       // Use old method
+                                       SEND_ADMIN_EMAILS(PAYOUT_REQUEST_ADMIN, $msg_adm);
+                               }
+
+                               // Load template and output it
+                               LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_REQUEST_SENT);
+                       }
+                        elseif ($allow == "Y")
+                       {
+                               // Generate banner order form
+                               LOAD_TEMPLATE("member_payout_form_banner");
+                       }
+                        else
+                       {
+                               // Generate normal form
+                               LOAD_TEMPLATE("member_payout_form");
+                       }
+               }
+                else
+               {
+                       // Not enougth points
+                       LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_POINTS_NOT_ENOUGTH);
+               }
+       }
+        else
+       {
+               // ID is invalid
+               LOAD_TEMPLATE("admin_settings_saved", false, PAYOUT_ID_INVALID);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-points.php b/0.2.1/inc/modules/member/what-points.php
new file mode 100644 (file)
index 0000000..c094e51
--- /dev/null
@@ -0,0 +1,234 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 11/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-points.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : All your collected points...                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle Ihrer gesammelten Punkte                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+OPEN_TABLE("100%", "member_content member_content_align", "");
+$result_depths = SQL_QUERY("SELECT level, percents FROM "._MYSQL_PREFIX."_refdepths ORDER BY level", __FILE__, __LINE__);
+$depths = SQL_NUMROWS($result_depths);
+
+// Add many more rows for the login/turbo/ref/order bonus
+if (!EXT_IS_ACTIVE("bonus")) $depths += 1;
+if (GET_EXT_VERSION("bonus") >= "0.2.2") $depths += 6;
+if (GET_EXT_VERSION("bonus") >= "0.4.4") $depths += 4;
+
+// Remember row count in constant
+define('__ROWS_VALUE', ($depths*2+15));
+
+// Init some vars...
+$TPTS = "0"; $TREF = "0"; $TLOCK = "0"; $OUT = "";
+
+// Load ref levels
+while (list($lvl, $per) = SQL_FETCHROW($result_depths))
+{
+       // Initialize ref-count
+       $REFS = "0";
+
+       // Load referral points
+       $result_points = SQL_QUERY_ESC("SELECT points, locked_points FROM "._MYSQL_PREFIX."_user_points WHERE userid=%d AND ref_depth='%s' LIMIT 1", array($GLOBALS['userid'], bigintval($lvl)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_points) == 1)
+       {
+               list($POINTS, $LOCKED) = SQL_FETCHROW($result_points);
+               SQL_FREERESULT($result_points);
+               // Also count locked points
+               $TPTS += $POINTS; $TLOCK += $LOCKED;
+       }
+        else
+       {
+               $POINTS = "0.00000"; $LOCKED = "0.00000";
+       }
+
+       // Load referral counts
+       $result_refs = SQL_QUERY_ESC("SELECT counter FROM "._MYSQL_PREFIX."_refsystem WHERE userid=%d AND level='%s' LIMIT 1", array($GLOBALS['userid'], bigintval($lvl)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_refs) == 1)
+       {
+               list($REFS) = SQL_FETCHROW($result_refs);
+               SQL_FREERESULT($result_refs);
+               $TREF += $REFS;
+       }
+        else
+       {
+               $REFS = "0";
+       }
+
+       // Transfer data to array for template
+       $content = array(
+               'lvl'    => $lvl,
+               'per'    => $per,
+               'points' => TRANSLATE_COMMA($POINTS),
+               'refs'   => $REFS,
+       );
+
+       // Output row
+       $OUT .= LOAD_TEMPLATE("member_points_row", true, $content);
+}
+
+// Free memory
+SQL_FREERESULT($result_depths);
+
+// Put rows to constant for the main template
+define('__REF_LEVEL_ROWS', $OUT);
+
+$result = SQL_QUERY_ESC("SELECT used_points, ref_payout FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+list($USED, $PAY) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+// Initialize variables
+$CONFIRMED = "---"; $SENT = "---"; $RECEIVED = "---";
+
+// Only user >= v0.1.2: Fetch confirmed mails counter
+if (GET_EXT_VERSION("user") >= "0.1.2")
+{
+       $ADD = "";
+       if (GET_EXT_VERSION("user") >= "0.1.4")
+       {
+               $ADD = ", emails_sent, emails_received";
+       }
+       $result = SQL_QUERY_ESC("SELECT mails_confirmed".$ADD." FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($CONFIRMED, $SENT, $RECEIVED) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Please update the user extension if you see 3 dashes
+       if (empty($SENT))     $SENT     = "---";
+       if (empty($RECEIVED)) $RECEIVED = "---";
+}
+ else
+{
+       // Please update!
+       $CONFIRMED = "---";
+}
+
+// If TLOCK is 0 add 3 zeros for floating
+if ($TLOCK == "0") $TLOCK = "0.00000";
+
+// Remember several values in constants
+define('__USED_VALUE' , TRANSLATE_COMMA($USED));
+define('__TPTS_VALUE' , TRANSLATE_COMMA($TPTS - $USED));
+define('__TREF_VALUE' , $TREF);
+define('__TLOCK_VALUE', TRANSLATE_COMMA($TLOCK));
+
+// Fixes a bug when there is no bonus extension installed
+if (GET_EXT_VERSION("bonus") < "0.4.4") $CONFIG['bonus_active'] = "X";
+
+// Display login bonus and turbo-click bonus
+if ((GET_EXT_VERSION("bonus") >= "0.2.2") && (EXT_IS_ACTIVE("bonus")) && ($CONFIG['bonus_active'] == "Y"))
+{
+       $ADD = ", 0, 0, 0";
+       if (GET_EXT_VERSION("bonus") >= "0.4.4") $ADD = ", bonus_ref, bonus_order, bonus_stats";
+
+       // Load data
+       $result = SQL_QUERY_ESC("SELECT login_bonus, turbo_bonus".$ADD." FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+
+       // We don't add this points now. This will be done after each month
+       list($login, $turbo, $ref, $order, $stats) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Prepare constants
+       define('__TURBO_VALUE',  TRANSLATE_COMMA($turbo));
+       define('__LOGIN_VALUE',  TRANSLATE_COMMA($login));
+
+       if (GET_EXT_VERSION("bonus") >= "0.4.4")
+       {
+               // Add referral, stats and order bonys
+               define('__REF_VALUE'  ,  TRANSLATE_COMMA($ref));
+               define('__ORDER_VALUE',  TRANSLATE_COMMA($order));
+               define('__STATS_VALUE',  TRANSLATE_COMMA($stats));
+       }
+
+       // Total bonus points
+       define('__TTOTAL_VALUE', TRANSLATE_COMMA($turbo + $login + $ref + $order + $stats));
+
+       // Output rows
+       define('__SPECIAL_ROWS', LOAD_TEMPLATE("member_points_bonus_rows", true));
+}
+ elseif ($CONFIG['bonus_active'] == "N")
+{
+       // Bonus active rallye deactivated
+       define('__SPECIAL_ROWS', LOAD_TEMPLATE("member_points_bonus_disabled", true));
+}
+ elseif ((IS_ADMIN()) && (GET_EXT_VERSION("bonus") < "0.2.2") && (EXT_IS_ACTIVE("bonus")))
+{
+       // Please upgrade your bonus extension to v0.2.2 or newer!
+       define('__SPECIAL_ROWS', LOAD_TEMPLATE("member_points_upgrade"));
+}
+ else
+{
+       // Members shall see no special rows here
+       define('__SPECIAL_ROWS', "");
+}
+
+// Remeber values for the final template
+define('__PAY_VALUE'      , $PAY);
+define('__CONFIRMED_VALUE', $CONFIRMED);
+define('__RECEIVE_VALUE'  , $RECEIVED);
+define('__SENT_VALUE'     , $SENT);
+
+// Load final template
+if (EXT_IS_ACTIVE("user")) {
+       // Load template when required extension is there
+       LOAD_TEMPLATE("member_points");
+} elseif (IS_ADMIN()) {
+       // Missing extension
+       ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "user"));
+} else {
+       // Message for user
+       LOAD_TEMPLATE("admin_settings_saved", false, PROBLEM_POINTS_OVERVIEW_UNAVAILABLE);
+}
+
+if (EXT_IS_ACTIVE("payout"))
+{
+       // Payput extension is installed and active so we can check if the user has enougth points
+       PAYOUT_OUTPUT_PAYOUT_LIST(str_replace(",", ".", ($TPTS - $USED)));
+}
+if (EXT_IS_ACTIVE("wernis"))
+{
+       // Payput extension is installed and active so we can check if the user has enougth points
+       WERNIS_OUTPUT_WERNIS_LIST(str_replace(",", ".", ($TPTS - $USED)));
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-rallyes.php b/0.2.1/inc/modules/member/what-rallyes.php
new file mode 100644 (file)
index 0000000..14a9597
--- /dev/null
@@ -0,0 +1,152 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 06/29/2004 *
+ * ================                             Last change: 08/22/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-rallyes.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Ref rallyes                                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Ref-Rallyes                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("rallye")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "rallye");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+OUTPUT_HTML ("<DIV align=\"center\">");
+
+// Check for possible running rallyes
+$ADMIN = " AND d.is_active='Y'";
+if (IS_ADMIN()) $ADMIN = "";
+$result = SQL_QUERY("SELECT DISTINCT d.id, d.admin_id, a.login, d.title, d.descr, d.template, d.start_time, d.end_time, d.min_users, d.min_prices
+ FROM "._MYSQL_PREFIX."_rallye_data AS d, "._MYSQL_PREFIX."_admins AS a
+ WHERE d.admin_id=a.id".$ADMIN." AND d.notified='Y'
+ ORDER BY d.end_time LIMIT 1", __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result) == 1)
+{
+       // Found some (normally one...
+       list($id, $aid, $login, $title, $descr, $templ, $start, $end, $min_users, $min_prices) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       $expired = false;
+       if ($end < time())
+       {
+               // Rallye is expired
+               define('__RALLYE_EXTRAS', RALLYE_HAS_EXPIRED);
+               $expired = true;
+       }
+        elseif (time() >= ($end - ONE_DAY))
+       {
+               // Rallye will expire in less one day!
+               define('__RALLYE_EXTRAS', RALLYE_EXPIRE_ONE_DAY);
+       }
+        else
+       {
+               define('__RALLYE_EXTRAS', "<A href=\"".URL."/modules.php?module=login&amp;what=reflinks\">".RALLYE_GET_REFLINK."</A>");
+       }
+       // Set admin line (currently set to impressum, later to contact form)
+       define('__RALLYE_ADMIN', "<A href=\"".URL."/modules.php?module=index&amp;what=impressum&amp;admin=".$aid."\">".$login."</A>");
+
+       // Set title
+       define('__RALLYE_TITLE', COMPILE_CODE($title));
+
+       // Handle description...
+       if ((empty($descr)) && (!empty($templ)))
+       {
+               // Use description from template
+               define('__RALLYE_DESCR', LOAD_TEMPLATE("rallye_".$templ, true));
+       }
+        else
+       {
+               // Use description from database
+               define('__RALLYE_DESCR', COMPILE_CODE($descr));
+       }
+
+       if ($min_users == 0)
+       {
+               // Rallye ends without user limitation
+               define('__RALLYE_MAX_USERS', RALLYE_END_NO_USER_LIMITATION);
+       }
+        else
+       {
+               // Rallye ends when X members are totally in your exchange
+               define('__RALLYE_MAX_USERS', RALLYE_END_USERS_1." ".$min_users." ".RALLYE_END_USERS_2);
+       }
+       if ($min_prices == 0)
+       {
+               // Rallye ends without user limitation
+               define('__RALLYE_MIN_PRICES', RALLYE_END_NO_PRICE_LIMITATION);
+       }
+        else
+       {
+               // Rallye ends when X members are totally in your exchange
+               define('__RALLYE_MIN_PRICES', RALLYE_END_PRICES_1." ".$min_prices." ".RALLYE_END_PRICES_2);
+       }
+
+       // Set start and end time
+       define('__RALLYE_START', MAKE_DATETIME($start, "1"));
+       define('__RALLYE_END'  , MAKE_DATETIME($end  , "1"));
+
+       if ($expired)
+       {
+               define('__RALLYE_PRICES', RALLYE_LIST_WINNERS($id));
+               define('__RALLYE_TOP_USERS', "<DIV align=\"center\" class=\"big\">".__RALLYE_EXTRAS."</DIV>");
+               define('__RALLYE_CAN_WIN_THIS', RALLYE_OUR_WINNERS_ARE);
+       }
+        else
+       {
+               define('__RALLYE_PRICES', RALLYE_ADD_PRICES($id, "html"));
+               define('__RALLYE_TOP_USERS', RALLYE_ADD_TOPUSERS($id, $GLOBALS['userid']));
+               define('__RALLYE_CAN_WIN_THIS', RALLYE_YOU_CAN_WIN);
+       }
+
+       // And load final template
+       LOAD_TEMPLATE("guest_rallye_show");
+}
+ else
+{
+       // No rallye found so far
+       LOAD_TEMPLATE("guest_no_rallyes");
+}
+//
+OUTPUT_HTML ("</DIV>");
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-reflinks.php b/0.2.1/inc/modules/member/what-reflinks.php
new file mode 100644 (file)
index 0000000..6b925bb
--- /dev/null
@@ -0,0 +1,144 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 09/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-reflinks.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Referral links                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Referral-Links                                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+OPEN_TABLE("90%", "member_table member_content_align", "");
+
+// Load current referral clicks
+$result = SQL_QUERY_ESC("SELECT ref_clicks FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+
+list($c) = SQL_FETCHROW($result);
+SQL_FREERESULT($result);
+
+OUTPUT_HTML ("<FONT class=\"tiny\">".YOUR_PERSONAL_REFLINK.":<BR>
+<STRONG><A href=\"".URL."/ref.php?ref=".$GLOBALS['userid']."\" target=\"_blank\">".URL."/ref.php?ref=".$GLOBALS['userid']."</A></STRONG><BR>
+<BR>");
+
+if (EXT_IS_ACTIVE("nickname"))
+{
+       // Add nickname link when nickname is entered
+       $nick = NICKNAME_GET_NICK($GLOBALS['userid']);
+
+       if (!empty($nick))
+       {
+               // Display nickname link
+               OUTPUT_HTML (NICKNAME_YOUR_REFLINK.":<BR>
+<STRONG><A href=\"".URL."/ref.php?ref=".$nick."\" target=\"_blank\">".URL."/ref.php?ref=".$nick."</A></STRONG><BR>
+<BR>");
+       }
+        else
+       {
+               // Display link to nickname form
+               OUTPUT_HTML ("<STRONG class=\"guest_note\">".NO_NICKNAME_SET."</STRONG><BR>
+<A class=\"tiny\" href=\"".URL."/modules.php?module=login&amp;what=nickname\">".PLEASE_CLICK_NICKNAME_FORM."</A>");
+       }
+}
+
+// Clicks on your reflink
+OUTPUT_HTML (YOUR_REFCLICKS.": <STRONG>".$c."</STRONG> ".CLICKS."</FONT><BR><BR>");
+$WHERE = " WHERE visible='Y'";
+if (IS_ADMIN()) $WHERE = "";
+$result = SQL_QUERY("SELECT id, url, alternate, counter, clicks FROM "._MYSQL_PREFIX."_refbanner", __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result) > 0)
+{
+       // List available ref banners
+       $SW = 2; $OUT = "";
+       while (list($id, $url, $alt, $count, $clks) = SQL_FETCHROW($result))
+       {
+               $test = str_replace(URL, PATH, $url); $size = 0;
+               if ($test == $url)
+               {
+                       // Download banner (I hope you keep the banner on same server???)
+                       $fp = @file($url); $file = "";
+                       if ((!empty($fp)) && (is_array($fp)) && (count($fp) > 0))
+                       {
+                               // Loads only found banner, when there is a 404 error this foreach() command
+                               // will cause an "Invalid argument supplied for foreach()" error
+                               foreach ($fp as $f)
+                               {
+                                       $file .= $f;
+                               }
+                       }
+                       $size = strlen($file);
+               }
+                elseif (file_exists($test))
+               {
+                       $size = filesize($test);
+               }
+               if ($size > 0) $alt .= " (".TRANSLATE_COMMA(round($size/102.4)/10)." ".KBYTES.")";
+
+               // Load banner data
+               $content = array(
+                       'sw'  => $SW,
+                       'url' => $url,
+                       'alt' => $alt,
+                       'cnt' => $count,
+                       'cks' => $clks,
+                       'uid' => $GLOBALS['userid'],
+                       'id'  => $id,
+               );
+
+               // Add row
+               $OUT .= LOAD_TEMPLATE("member_reflinks_row", true, $content);
+
+               // Switchcolors
+               $SW = 3 - $SW;
+       }
+
+       define('__REFLINKS_ROWS', $OUT);
+
+       // Load final template
+       LOAD_TEMPLATE("member_reflinks_table", false, $GLOBALS['userid']);
+}
+
+// Free result
+SQL_FREERESULT($result);
+
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-stats.php b/0.2.1/inc/modules/member/what-stats.php
new file mode 100644 (file)
index 0000000..f71f622
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/09/2003 *
+ * ===============                              Last change: 04/21/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-stats.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Statistics over send mails                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Statistik ueber gesendete Mails                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+//                               0     1         2         3      4            5            6            7           8
+$result = SQL_QUERY_ESC("SELECT id, cat_id, payment_id, subject, url, timestamp_ordered, max_rec, timestamp_send, clicks
+FROM "._MYSQL_PREFIX."_user_stats
+WHERE userid=%d ORDER BY timestamp_ordered DESC",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result) > 0)
+{
+       // Mail orders are in pool so we can display them
+       $SW = 2; $OUT = "";
+       while ($pool = SQL_FETCHROW($result))
+       {
+               // Prepare data for the template
+               $content = array(
+                       'sw'    => $SW,
+                       'cat'   => GET_CATEGORY(bigintval($pool[1])),
+                       'pay'   => GET_PAYMENT(bigintval($pool[2])),
+                       'subj'  => COMPILE_CODE($pool[3]),
+                       'url'   => DEREFERER($pool[4]),
+                       'stamp' => MAKE_DATETIME($pool[5], "0"),
+                       'recs'  => $pool[6],
+                       'sent'  => MAKE_DATETIME($pool[7], "0"),
+                       'clix'  => $pool[8],
+                       'perc'  => COMPILE_CODE($pool[8] / $pool[6] * 100)."%",
+               );
+
+               // Load row template and switch colors
+               $OUT .= LOAD_TEMPLATE("member_stats_row", true, $content);
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Remember rows in template
+       define('__STATS_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("member_stats_table");
+}
+ else
+{
+       // No mail orders fond
+       LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_NO_MAILS_IN_POOL);
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-support.php b/0.2.1/inc/modules/member/what-support.php
new file mode 100644 (file)
index 0000000..5a6dd3f
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/29/2004 *
+ * ================                             Last change: 04/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-support.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Contact support                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Support kontaktieren                             *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("support")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "support");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+if ((!isset($_POST['ok'])) || (empty($_POST['qsummary'])))
+{
+       // Output form
+       LOAD_TEMPLATE("member_support_form");
+}
+ else
+{
+       // Load mail template based on your member's decision
+       if (GET_EXT_VERSION("admins") >= "0.4.1")
+       {
+               $a_tpl = "admin_support-".$_POST['qsummary'];
+       }
+        else
+       {
+               $msg_a = LOAD_EMAIL_TEMPLATE("admin_support-".$_POST['qsummary'], $_POST['qdetails'], $GLOBALS['userid']);
+       }
+       $msg_m = LOAD_EMAIL_TEMPLATE("member_support-".$_POST['qsummary'], $_POST['qdetails'], $GLOBALS['userid']);
+
+       // Select right subject
+       switch ($_POST['qsummary'])
+       {
+               case "ordr"       : $subj_a = SUPPORT_SUBJ_ADMIN_ORDER;       $subj_m = SUPPORT_SUBJ_MEMBER_ORDER;       break;
+               case "reflink"    : $subj_a = SUPPORT_SUBJ_ADMIN_REFLINK;     $subj_m = SUPPORT_SUBJ_MEMBER_REFLINK;     break;
+               case "unconfirmed": $subj_a = SUPPORT_SUBJ_ADMIN_UNCONFIRMED; $subj_m = SUPPORT_SUBJ_MEMBER_UNCONFIRMED; break;
+       }
+
+       // Send mails away
+       if (GET_EXT_VERSION("admins") >= "0.4.1")
+       {
+               SEND_ADMIN_EMAILS_PRO($subj_a, $a_tpl, $_POST['qdetails'], $GLOBALS['userid']);
+       }
+        else
+       {
+               SEND_ADMIN_EMAILS($subj_a, $msg_a);
+       }
+
+       SEND_EMAIL($GLOBALS['userid'], $subj_m, $msg_m);
+
+       // Drop a message in the admin's area
+       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (userid, assigned_admin, status, task_type, subject, text, task_created) VALUES ('%s', '0', 'NEW', 'SUPPORT_MEMBER', '%s', '%s', UNIX_TIMESTAMP())",
+        array($GLOBALS['userid'], addslashes($subj_a), addslashes($_POST['qsummary'].":".$_POST['qdetails'])), __FILE__, __LINE__);
+
+       // Form sent
+       LOAD_TEMPLATE("member_support_contcted");
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-themes.php b/0.2.1/inc/modules/member/what-themes.php
new file mode 100644 (file)
index 0000000..fe74c42
--- /dev/null
@@ -0,0 +1,146 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/20/2005 *
+ * ================                             Last change: 03/20/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-themes.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Theme selection for members                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Design-Auswahl fuer Mitglieder                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+if (!empty($_POST['member_theme']))
+{
+       // Save theme to member's profile
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET curr_theme='%s' WHERE userid=%d LIMIT 1",
+         array($_POST['member_theme'], $GLOBALS['userid']), __FILE__, __LINE__);
+
+       // Set new theme for guests
+       $NewTheme = $_POST['member_theme'];
+
+       // Change to new theme
+       @setcookie("mxchange_theme", $NewTheme, (time() + 60*60*24*365), COOKIE_PATH);
+       $_COOKIE['mxchange_theme'] = $NewTheme;
+
+       // Theme saved!
+       LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_THEME_SAVED);
+}
+
+// Initialize array
+$THEMES = array(
+       'theme_unix'   => array(), // Unix name from filesystem
+       'theme_name'   => array(), // Title
+       'theme_author' => array(), // Theme author's name
+       'theme_email'  => array(), // Author's email address
+       'theme_url'    => array(), // URL were you can download it from
+       'theme_ver'    => array(), // Version number of theme
+);
+
+// Read directory "themes"
+$handle = opendir(PATH."theme/") or mxchange_die("Cannot read themes dir!");
+while ($dir = readdir($handle))
+{
+       // Construct absolute theme.php file name
+       $theme = PATH."theme/".$dir."/"."theme.php";
+
+       // Test it...
+       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' AND theme_active='Y' LIMIT 1",
+        array($dir), __FILE__, __LINE__);
+
+       if (($dir != ".") && ($dir != "..") && (file_exists($theme)) && (is_readable($theme)) && (SQL_NUMROWS($result) == 1))
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Found a valid directory so let's load it's theme.php file
+               include($theme);
+
+               // Add found theme to array
+               $THEMES['theme_unix'][]   = $dir;
+               $THEMES['theme_name'][]   = $THEME_NAME;
+               $THEMES['theme_author'][] = $THEME_AUTHOR;
+               $THEMES['theme_email'][]  = $THEME_EMAIL;
+               $THEMES['theme_url'][]    = $THEME_URL;
+               $THEMES['theme_ver'][]    = $THEME_VERSION;
+       }
+}
+closedir($handle);
+
+// Sort array by Uni* name
+array_pk_sort($THEMES, array("theme_name"));
+
+// Generate output lines for the template
+$OUT = ""; $SW = 2;
+foreach ($THEMES['theme_unix'] as $key=>$unix)
+{
+       $default = "";
+       if ($_COOKIE['mxchange_theme'] == $unix) $default = " checked selected";
+
+       // Add row
+       $OUT .= "<TR>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\" height=\"30\">
+    <INPUT type=\"radio\" name=\"member_theme\" class=\"member_normal\" value=\"".$unix."\"".$default.">
+  </TD>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">".$THEMES['theme_name'][$key]."</TD>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">
+    <A href=\"mailto:".$THEMES['theme_email'][$key]."?Subject=[Theme:] ".$THEMES['theme_name'][$key]." (".$unix.")"."\">".$THEMES['theme_author'][$key]."</A>
+  </TD>
+  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">
+    <A href=\"".DEREFERER($THEMES['theme_url'][$key])."\" target=\"_blank\">".$THEMES['theme_url'][$key]."</A>
+  </TD>
+  <TD class=\"switch_sw".$SW." bottom2\" align=\"center\">v".$THEMES['theme_ver'][$key]."</TD>
+</TR>\n";
+       $SW = 3 - $SW;
+}
+if (empty($OUT))
+{
+       // No themes found???
+       $OUT = "<TR>
+  <TD colspan=\"5\" class=\"bottom2\" height=\"80\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, MEMBER_NO_THEMES_FOUND)."
+  </TD>
+</TR>\n";
+}
+define('__THEME_LIST', $OUT);
+
+// Load template
+LOAD_TEMPLATE("member_themes");
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-transfer.php b/0.2.1/inc/modules/member/what-transfer.php
new file mode 100644 (file)
index 0000000..27f4b77
--- /dev/null
@@ -0,0 +1,627 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/07/2004 *
+ * ================                             Last change: 10/07/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-transfer.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Point transfers                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Punktetransfers                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+ elseif ((!EXT_IS_ACTIVE("transfer")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "transfer");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Load data
+$result = SQL_QUERY_ESC("SELECT opt_in FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+list($opt_in) = SQL_FETCHROW($result);
+
+// Free memory
+SQL_FREERESULT($result);
+
+$MODE = "";
+if (!empty($_GET['mode'])) $MODE = $_GET['mode'];
+
+// Check for "faker"
+if (($opt_in == "N") && ($MODE == "new")) $MODE = "";
+
+switch ($MODE)
+{
+case "new": // Start new transfer
+       // Get total points and subtract the balance amount from it = maximum transferable points
+       $result = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_user_points WHERE userid=%d AND points > 0",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($total) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Get totally used points and password
+       $result = SQL_QUERY_ESC("SELECT used_points, password FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($used, $pass) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       // Remember maximum value for template
+       define('__TRANSFER_MAX_VALUE', round($total - $used - $CONFIG['transfer_balance'] - 0.5));
+
+       if (isset($_POST['ok']))
+       {
+               // Add new transfer
+               if ($CONFIG['transfer_code'] > 0)
+               {
+                       // Check for code
+                       $code = GEN_RANDOM_CODE($CONFIG['transfer_code'], $_POST['code_chk'], $GLOBALS['userid'], __TRANSFER_MAX_VALUE);
+                       $valid_code = ($code == $_POST['code']);
+               }
+                else
+               {
+                       // Zero length (= disabled) is always valid!
+                       $valid_code = true;
+               }
+
+               // Test password
+               $valid_pass = ($pass == generateHash($_POST['password'], $pass));
+
+               // Test transfer amount
+               $valid_amount = ((!empty($_POST['points'])) && ($_POST['points'] <= __TRANSFER_MAX_VALUE));
+
+               // Test reason for transfer
+               $valid_reason = (!empty($_POST['reason']));
+
+               // Test if a recipient is selected
+               $valid_recipient = ($_POST['to_uid'] > 0);
+
+               // Check for nickname extension and set additional data
+               $nick = false; $ADD = ", userid";
+               if (EXT_IS_ACTIVE("nickname"))
+               {
+                       $ADD = ", nickname";
+                       $nick = true;
+               }
+               // Re-check receivers and own personal data
+               $result = SQL_QUERY_ESC("SELECT userid, sex, surname, family, email".$ADD." FROM "._MYSQL_PREFIX."_user_data WHERE userid IN ('%s', '%s') AND status='CONFIRMED' ORDER BY userid LIMIT 2",
+                array($GLOBALS['userid'], bigintval($_POST['to_uid'])), __FILE__, __LINE__);
+               $valid_data = (SQL_NUMROWS($result) == 2);
+
+               if ($valid_code && $valid_pass && $valid_amount && $valid_reason && $valid_recipient)
+               {
+                       // Let's start the transfer and load user data
+                       list($uid1, $sex1, $sname1, $fname1, $email1, $nick1) = SQL_FETCHROW($result);
+                       list($uid2, $sex2, $sname2, $fname2, $email2, $nick2) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       if ($uid1 == $GLOBALS['userid'])
+                       {
+                               // Data row 1 is sender's data
+                               define('__SENDER_SEX'     , TRANSLATE_SEX($sex1));
+                               define('__SENDER_NICK'    , $nick1);
+                               define('__SENDER_SNAME'   , $sname1);
+                               define('__SENDER_FNAME'   , $fname1);
+                               define('__SENDER_EMAIL'   , $email1);
+                               // Data row 2 is recpient's data
+                               define('__RECIPIENT_SEX'  , TRANSLATE_SEX($sex2));
+                               define('__RECIPIENT_NICK' , $nick2);
+                               define('__RECIPIENT_SNAME', $sname2);
+                               define('__RECIPIENT_FNAME', $fname2);
+                               define('__RECIPIENT_EMAIL', $email2);
+
+                               // Prepare variables for testing
+                               $TEST_NICK_SENDER = $nick1;
+                               $TEST_NICK_REC = $nick2;
+                       }
+                        else
+                       {
+                               // Data row 2 is sender's data
+                               define('__SENDER_SEX'     , TRANSLATE_SEX($sex2));
+                               define('__SENDER_NICK'    , $nick2);
+                               define('__SENDER_SNAME'   , $sname2);
+                               define('__SENDER_FNAME'   , $fname2);
+                               define('__SENDER_EMAIL'   , $email2);
+                               // Data row 1 is recpient's data
+                               define('__RECIPIENT_SEX'  , TRANSLATE_SEX($sex1));
+                               define('__RECIPIENT_NICK' , $nick1);
+                               define('__RECIPIENT_SNAME', $sname1);
+                               define('__RECIPIENT_FNAME', $fname1);
+                               define('__RECIPIENT_EMAIL', $email1);
+
+                               // Prepare variables for testing
+                               $TEST_NICK_SENDER = $nick2;
+                               $TEST_NICK_REC = $nick1;
+                       }
+                       // Sender's UID is always currently stored in cookie userid...
+                       define('__SENDER_UID'     , $GLOBALS['userid']);
+                       define('__RECIPIENT_UID'  , $_POST['to_uid']);
+
+                       $SENDER = __SENDER_UID;
+                       $RECIPIENT = __RECIPIENT_UID;
+                       if ($nick)
+                       {
+                               if (($TEST_NICK_SENDER != __SENDER_UID) && (!empty($TEST_NICK_SENDER)))
+                               {
+                                       $SENDER = __SENDER_NICK;
+                               }
+                               if (($TEST_NICK_REC != __RECIPIENT_UID) && (!empty($TEST_NICK_REC)))
+                               {
+                                       $RECIPIENT = __RECIPIENT_NICK;
+                               }
+                       }
+
+                       // Remember transfer reason and fancy date/time in constants
+                       define('__TRANSFER_REASON', $_POST['reason']);
+                       if (function_exists('CREATE_FANCY_TIME'))
+                       {
+                               define('__TRANSFER_EXPIRES', CREATE_FANCY_TIME($CONFIG['transfer_age']));
+                       }
+                        else
+                       {
+                               define('__TRANSFER_EXPIRES', round($CONFIG['transfer_age']/60/60/24)." ".DAYS);
+                       }
+
+                       // Generate tranafer id
+                       define('__TRANS_ID', bigintval(GEN_RANDOM_CODE("10", rand(0, 99999), $GLOBALS['userid'], $_POST['reason'])));
+
+                       // Add entries to both tables
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_transfers_in (userid, from_uid, points, reason, time_trans, trans_id) VALUES ('%s', '%s', '%s', '%s', UNIX_TIMESTAMP(), '%s')",
+                        array(bigintval($_POST['to_uid']), $GLOBALS['userid'], bigintval($_POST['points']), addslashes($_POST['reason']), __TRANS_ID),
+                        __FILE__, __LINE__);
+                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_transfers_out (userid, to_uid, points, reason, time_trans, trans_id) VALUES ('%s', '%s', '%s', '%s', UNIX_TIMESTAMP(), '%s')",
+                        array($GLOBALS['userid'], bigintval($_POST['to_uid']), bigintval($_POST['points']), addslashes($_POST['reason']), __TRANS_ID),
+                        __FILE__, __LINE__);
+
+                       // Add points to account *directly* ...
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth='0' LIMIT 1",
+                        array(bigintval($_POST['points']), bigintval($_POST['to_uid'])), __FILE__, __LINE__);
+
+                       // ... and add it to current user's used points
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
+                        array(bigintval($_POST['points']), $GLOBALS['userid']), __FILE__, __LINE__);
+
+                       // First send email to recipient
+                       $msg = LOAD_EMAIL_TEMPLATE("member_transfer_recipient", "", __RECIPIENT_UID);
+                       SEND_EMAIL(__RECIPIENT_EMAIL, TRANSFER_MEMBER_RECIPIENT_SUBJ.": ".$SENDER, $msg);
+
+                       // Second send email to sender
+                       $msg = LOAD_EMAIL_TEMPLATE("member_transfer_sender", "", __SENDER_UID);
+                       SEND_EMAIL(__SENDER_EMAIL, TRANSFER_MEMBER_SENDER_SUBJ.": ".$RECIPIENT, $msg);
+
+                       // At last send admin mail(s)
+                       $ADMIN_SUBJ = TRANSFER_ADMIN_SUBJECT." (".$SENDER."->".$RECIPIENT.")";
+                       if (GET_EXT_VERSION("admins") >= "0.4.1")
+                       {
+                               SEND_ADMIN_EMAILS_PRO($ADMIN_SUBJ, "admin_transfer_points");
+                       }
+                        else
+                       {
+                               $msg = LOAD_EMAIL_TEMPLATE("admin_transfer_points");
+                               SEND_ADMIN_EMAILS($ADMIN_SUBJ, $msg);
+                       }
+
+                       // Transfer is completed
+                       OUTPUT_HTML ("<P>");
+                       LOAD_TEMPLATE("admin_settings_saved", false, TRANSFER_COMPLETED."<BR><A href=\"".URL."/modules.php?module=login&amp;what=transfer\">".TRANSFER_CONTINUE_OVERVIEW."</A>");
+                       OUTPUT_HTML ("</P>");
+               }
+                elseif (!$valid_code)
+               {
+                       // Invalid Touring code!
+                       OUTPUT_HTML ("<P><STRONG class=\"member_note\">".TRANSFER_INVALID_CODE."</STRONG></P>");
+                       unset($_POST['ok']);
+               }
+                elseif (!$valid_pass)
+               {
+                       // Wrong password entered
+                       OUTPUT_HTML ("<P><STRONG class=\"member_note\">".TRANSFER_INVALID_PASSWORD."</STRONG></P>");
+                       unset($_POST['ok']);
+               }
+                elseif (!$valid_amount)
+               {
+                       // Too much points entered
+                       OUTPUT_HTML ("<P><STRONG class=\"member_note\">".TRANSFER_INVALID_POINTS."</STRONG></P>");
+                       unset($_POST['ok']);
+               }
+                elseif (!$valid_reason)
+               {
+                       // No transfer reason entered
+                       OUTPUT_HTML ("<P><STRONG class=\"member_note\">".TRANSFER_INVALID_REASON."</STRONG></P>");
+                       unset($_POST['ok']);
+               }
+                elseif (!$valid_recipient)
+               {
+                       // No recipient selected
+                       OUTPUT_HTML ("<P><STRONG class=\"member_note\">".TRANSFER_INVALID_RECIPIENT."</STRONG></P>");
+                       unset($_POST['ok']);
+               }
+                elseif (!$valid_data)
+               {
+                       // No recipient selected
+                       OUTPUT_HTML ("<P><STRONG class=\"member_note\">".TRANSFER_INVALID_DATA."</STRONG></P>");
+                       unset($_POST['ok']);
+               }
+       }
+       if (!isset($_POST['ok']))
+       {
+               // Load member list
+               if (EXT_IS_ACTIVE("nickname"))
+               {
+                       // Load userid and nickname
+                       $result = SQL_QUERY_ESC("SELECT userid, nickname FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND opt_in='Y' AND userid != '%s' ORDER BY userid",
+                        array($GLOBALS['userid']), __FILE__, __LINE__);
+               }
+                else
+               {
+                       // Load only userid
+                       $result = SQL_QUERY_ESC("SELECT userid, userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND opt_in='Y' AND userid != '%s' ORDER BY userid",
+                        array($GLOBALS['userid']), __FILE__, __LINE__);
+               }
+               if (SQL_NUMROWS($result) > 0)
+               {
+                       // Load list
+                       $OUT  = "<SELECT name=\"to_uid\" size=\"1\" class=\"member_select\">
+  <OPTION value=\"0\">".SELECT_NONE."</OPTION>\n";
+                       while (list($uid, $nick) = SQL_FETCHROW($result))
+                       {
+                               $OUT .= "<OPTION value=\"".$uid."\"";
+                               if ((isset($_POST['to_uid'])) && ($_POST['to_uid'] == $uid)) $OUT .= " selected=\"selected\"";
+                               $OUT .= ">";
+                               if (($nick != $uid) && (!empty($nick)))
+                               {
+                                       // Output nickname
+                                       $OUT .= $nick;
+                               }
+                                else
+                               {
+                                       // Output userid
+                                       $OUT .= $uid;
+                               }
+                               $OUT .= "</OPTION>\n";
+                       }
+                       $OUT .= "</SELECT>\n";
+                       define('__TRANSFER_TO_DISABLED', "");
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // No one else is opt-in
+                       $OUT = TRANSFER_NO_ONE_ELSE_OPT_IN;
+                       define('__TRANSFER_TO_DISABLED', " disabled");
+               }
+               // Transfer output to constant for the template
+               define('__TRANSFER_USERID_SELECTION', $OUT);
+
+               // Generate Code
+               if ($CONFIG['transfer_code'] > 0)
+               {
+                       $rand = rand(0, 99999);
+                       $code = GEN_RANDOM_CODE($CONFIG['transfer_code'], $rand, $GLOBALS['userid'], __TRANSFER_MAX_VALUE);
+                       $img = GENERATE_IMAGE($code, false);
+                       define('__TRANSFER_IMAGE_INPUT', "<INPUT type=\"hidden\" name=\"code_chk\" value=\"".$rand."\"><INPUT type=\"text\" name=\"code\" class=\"member_normal\" size=\"5\" maxlength=\"7\"".__TRANSFER_TO_DISABLED.">&nbsp;".$img);
+               }
+                else
+               {
+                       $code = "00000";
+                       define('__TRANSFER_IMAGE_INPUT', TRANSFER_NO_CODE);
+               }
+
+               // Transfer maybe already entered valued'
+               if (isset($_GET['ok'])) {
+                       // Get values from form
+                       define('__TRANSFER_POINTS_VALUE', bigintval($_POST['points']));
+                       define('__TRANSFER_REASON_VALUE', strip_tags($_POST['reason']));
+               } else {
+                       // Set empty values
+                       define('__TRANSFER_POINTS_VALUE', "");
+                       define('__TRANSFER_REASON_VALUE', "");
+               }
+
+               // Output form
+               LOAD_TEMPLATE("member_transfer_new");
+       }
+       break;
+
+case "list_in": // List only incoming transactions
+case "list_out": // List only outgoing transactions
+       // As you can see I put list_in and list_out together. I now do a switch() again on it for the right SQL command
+       switch ($MODE)
+       {
+       case "list_in":
+               $SQL = "SELECT trans_id, from_uid, points, reason, time_trans FROM "._MYSQL_PREFIX."_user_transfers_in WHERE userid=%d ORDER BY time_trans DESC LIMIT ".$CONFIG['transfer_max'];
+               $NOTHING = TRANSFER_NO_INCOMING_TRANSFERS;
+               define('__TRANSFER_SUM', TRANSFER_TOTAL_INCOMING);
+               define('__TRANSFER_TITLE', TRANSFER_LIST_INCOMING);
+               break;
+
+       case "list_out":
+               $SQL = "SELECT trans_id, to_uid, points, reason, time_trans FROM "._MYSQL_PREFIX."_user_transfers_out WHERE userid=%d ORDER BY time_trans DESC LIMIT ".$CONFIG['transfer_max'];
+               $NOTHING = TRANSFER_NO_OUTGOING_TRANSFERS;
+               define('__TRANSFER_SUM', TRANSFER_TOTAL_OUTGOING);
+               define('__TRANSFER_TITLE', TRANSFER_LIST_OUTGOING);
+               break;
+       }
+
+       // Run the SQL command
+       $total = "0";
+       $result = SQL_QUERY_ESC($SQL, array($GLOBALS['userid']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               $OUT = ""; $SW = 2;
+               while (list($tid, $uid, $points, $reason, $stamp) = SQL_FETCHROW($result))
+               {
+                       if ($type == "OUT") $points = "$points-";
+                       $OUT .= "<TR>
+  <TD class=\"transfer_row1 switch_sw".$SW." bottom2 right2\">
+    <FONT class=\"transfer_row1\">".$tid."</FONT>
+  </TD>
+  <TD class=\"transfer_row2 switch_sw".$SW." bottom2 right2\">
+    <FONT class=\"transfer_row2\">".MAKE_DATETIME($stamp, "3")."</FONT>
+  </TD>
+  <TD class=\"transfer_row3 switch_sw".$SW." bottom2 right2\">
+    <FONT class=\"transfer_row3\">".$uid."</FONT>
+  </TD>
+  <TD class=\"transfer_row4 switch_sw".$SW." bottom2 right2\">
+    <FONT class=\"transfer_row4\">".$reason."</FONT>
+  </TD>
+  <TD class=\"transfer_row5 switch_sw".$SW." bottom2\">
+    <FONT class=\"transfer_row5\">".$points."</FONT>
+  </TD>
+</TR>\n";
+                       $total += $points;
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        else
+       {
+               // Nothing for in or out
+               $OUT = "<TR>
+  <TD colspan=\"5\" align=\"center\" class=\"bottom2\" height=\"70\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, $NOTHING)."
+  </TD>
+</TR>";
+       }
+
+       // ... and add them to a constant for the template
+       define('__TRANSFER_ROWS', $OUT);
+
+       // Remeber total amount
+       define('__TRANSFER_TOTAL_VALUE', $total);
+
+       // Load final template
+       LOAD_TEMPLATE("member_transfer_list");
+       break;
+
+case "list_all": // List all transactions
+       // We fill a temporay table with data from both tables. This is much easier
+       // to code and unstand by you as sub-SELECT queries. I know this is not the
+       // fastest way but it shall be fine for now.
+       //
+       // First of all create the temporary table
+       $result = SQL_QUERY("CREATE TEMPORARY TABLE "._MYSQL_PREFIX."_transfers_tmp (
+trans_id varchar(12) not null default '',
+party_uid bigint(20) not null default '0',
+points bigint(20) not null default '0',
+reason varchar(255) not null default '',
+time_trans varchar(10) not null default '0',
+trans_type enum('IN', 'OUT') not null default 'IN',
+KEY(party_uid)
+) TYPE=HEAP", __FILE__, __LINE__);
+
+       // Let's begin with the incoming list
+       $result = SQL_QUERY_ESC("SELECT trans_id, from_uid, points, reason, time_trans FROM "._MYSQL_PREFIX."_user_transfers_in WHERE userid=%d ORDER BY id LIMIT %s",
+array($GLOBALS['userid'], $CONFIG['transfer_max']), __FILE__, __LINE__);
+       while ($DATA = SQL_FETCHROW($result))
+       {
+               $DATA[] = "IN";
+               $DATA = implode("', '", $DATA);
+               $res_temp = SQL_QUERY("INSERT INTO "._MYSQL_PREFIX."_transfers_tmp (trans_id, party_uid, points, reason, time_trans, trans_type) VALUES ('".$DATA."')", __FILE__, __LINE__);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // As the last table transfer data from outgoing table to temporary
+       $result = SQL_QUERY_ESC("SELECT trans_id, to_uid, points, reason, time_trans FROM "._MYSQL_PREFIX."_user_transfers_out WHERE userid=%d ORDER BY id LIMIT %s",
+array($GLOBALS['userid'], $CONFIG['transfer_max']), __FILE__, __LINE__);
+       while ($DATA = SQL_FETCHROW($result))
+       {
+               $DATA[] = "OUT";
+               $DATA = implode("', '", $DATA);
+               $res_temp = SQL_QUERY("INSERT INTO "._MYSQL_PREFIX."_transfers_tmp (trans_id, party_uid, points, reason, time_trans, trans_type) VALUES ('".$DATA."')", __FILE__, __LINE__);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       $total = "0";
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Output rows
+               $OUT = ""; $SW = 2;
+               $result = SQL_QUERY("SELECT party_uid, trans_id, points, reason, time_trans, trans_type FROM "._MYSQL_PREFIX."_transfers_tmp ORDER BY time_trans DESC", __FILE__, __LINE__);
+               while(list($uid, $idx, $points, $reason, $stamp, $type) = SQL_FETCHROW($result))
+               {
+                       if ($type == "OUT") $points = "-$points";
+                       $OUT .= "<TR>
+  <TD class=\"transfer_row1 switch_sw".$SW." bottom2 right2\">
+    <FONT class=\"transfer_row1\">".$idx."</FONT>
+  </TD>
+  <TD class=\"transfer_row2 switch_sw".$SW." bottom2 right2\">
+    <FONT class=\"transfer_row2\">".MAKE_DATETIME($stamp, "3")."</FONT>
+  </TD>
+  <TD class=\"transfer_row3 switch_sw".$SW." bottom2 right2\">
+    <FONT class=\"transfer_row3\">".$uid."</FONT>
+  </TD>
+  <TD class=\"transfer_row4 switch_sw".$SW." bottom2 right2\">
+    <FONT class=\"transfer_row4\">".$reason."</FONT>
+  </TD>
+  <TD class=\"transfer_row5 switch_sw".$SW." bottom2\">
+    <FONT class=\"transfer_row5\">".$points."</FONT>
+  </TD>
+</TR>\n";
+                       $total += $points;
+                       $SW = 3 - $SW;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        else
+       {
+               // Nothing for in and out
+               $OUT = "<TR>
+  <TD colspan=\"5\" align=\"center\" class=\"bottom2\" height=\"70\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, TRANSFER_NO_INOUT_TRANSFERS)."
+  </TD>
+</TR>";
+       }
+
+       // ... and add them to a constant for the template
+       define('__TRANSFER_ROWS', $OUT);
+
+       // Remeber total amount
+       define('__TRANSFER_TOTAL_VALUE', $total);
+
+       // Set title
+       define('__TRANSFER_TITLE', TRANSFER_LIST_ALL);
+
+       // Set "balance" word
+       define('__TRANSFER_SUM', TRANSFER_TOTAL_BALANCE);
+
+       // Load final template
+       LOAD_TEMPLATE("member_transfer_list");
+
+       // At the end we don't need a temporay table in memory
+       $result = SQL_QUERY("DROP TABLE IF EXISTS "._MYSQL_PREFIX."_transfers_tmp", __FILE__, __LINE__);
+
+       // Free some memory...
+       SQL_FREERESULT($result);
+       break;
+
+case "": // Overview page
+       // Check incoming transfers
+       $result = SQL_QUERY_ESC("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_user_transfers_in WHERE userid=%d", array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($dmy) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       $total=$dmy;
+       if ($dmy > 0)
+       {
+               define('__TRANSFER_IN_LINK', "<A href=\"".URL."/modules.php?module=login&amp;what=transfer&amp;mode=list_in\">".$dmy."</A>");
+       }
+        else
+       {
+               define('__TRANSFER_IN_LINK', $dmy);
+       }
+
+       // Check outgoing transfers
+       $result = SQL_QUERY_ESC("SELECT COUNT(id) FROM "._MYSQL_PREFIX."_user_transfers_out WHERE userid=%d", array($GLOBALS['userid']), __FILE__, __LINE__);
+       list($dmy) = SQL_FETCHROW($result);
+       SQL_FREERESULT($result);
+
+       $total+=$dmy;
+       if ($dmy > 0)
+       {
+               define('__TRANSFER_OUT_LINK', "<A href=\"".URL."/modules.php?module=login&amp;what=transfer&amp;mode=list_out\">".$dmy."</A>");
+       }
+        else
+       {
+               define('__TRANSFER_OUT_LINK', $dmy);
+       }
+
+       // Total transactions
+       if ($total > 0)
+       {
+               define('__TRANSFER_ALL_LINK', "<A href=\"".URL."/modules.php?module=login&amp;what=transfer&amp;mode=list_all\">".$total."</A>");
+       }
+        else
+       {
+               define('__TRANSFER_ALL_LINK', $total);
+       }
+
+       if (isset($_POST['ok']))
+       {
+               // Save settings
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET opt_in='%s' WHERE userid=%d LIMIT 1",
+                array($_POST['opt_in'], $GLOBALS['userid']), __FILE__, __LINE__);
+
+               // Rember for next switch() command
+               $opt_in = $_POST['opt_in'];
+
+               // "Settings saved..."
+               OUTPUT_HTML ("<P><STRONG class=\"member_done\">".SETTINGS_SAVED."</STRONG></P>");
+       }
+       switch ($opt_in)
+       {
+       case "Y":
+               define('__TRANSFER_ALLOW_Y', " checked");
+               define('__TRANSFER_ALLOW_N', "");
+               define('__TRANSFER_NEW_LINK', "<A href=\"".URL."/modules.php?module=login&amp;what=transfer&amp;mode=new\">".TRANSFER_NOW_LINK."</A>");
+               break;
+
+       case "N":
+               define('__TRANSFER_ALLOW_Y', "");
+               define('__TRANSFER_ALLOW_N', " checked");
+               define('__TRANSFER_NEW_LINK', TRANSFER_PLEASE_ALLOW_OPT_IN);
+               break;
+       }
+
+       // Check for latest out-transfers
+       $result = SQL_QUERY_ESC("SELECT time_trans FROM "._MYSQL_PREFIX."_user_transfers_out WHERE time_trans > ".(time() - $CONFIG['transfer_timeout'])." AND userid=%d ORDER BY time_trans DESC LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Load template
+               define('__TRANSFER_SETTINGS_CONTENT', LOAD_TEMPLATE("member_transfer_settings", true));
+       }
+        else
+       {
+               // Load newest transaction
+               list($newest) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               define('__TRANSFER_SETTINGS_CONTENT', TRANSFER_LATEST_IS_1.MAKE_DATETIME($newest, "3").TRANSFER_LATEST_IS_2);
+       }
+       // Load template
+       LOAD_TEMPLATE("member_transfer_overview");
+       break;
+}
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-unconfirmed.php b/0.2.1/inc/modules/member/what-unconfirmed.php
new file mode 100644 (file)
index 0000000..bf21124
--- /dev/null
@@ -0,0 +1,153 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/19/2003 *
+ * ===============                              Last change: 07/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-unconfirmed.php                             *
+ * -------------------------------------------------------------------- *
+ * Short description : Unconfirmed mails                                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Unbestaetigte Mails                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+OPEN_TABLE("100%", "member_content member_content_align", "");
+if (EXT_IS_ACTIVE("bonus"))
+{
+       // Load bonus ID
+       $result = SQL_QUERY_ESC("SELECT stats_id, bonus_id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE userid=%d ORDER BY bonus_id DESC",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+}
+ else
+{
+       // Don't load bonus ID
+       $result = SQL_QUERY_ESC("SELECT stats_id, stats_id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE userid=%d ORDER BY stats_id DESC",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+}
+
+if (SQL_NUMROWS($result) > 0)
+{
+       // Please confirm these mails!
+       $sum = "0"; $SW = 2; $OUT = "";
+       while (list($id, $id2, $type) = SQL_FETCHROW($result))
+       {
+               // Load data from stats table...
+               $cat = "";
+               switch ($type)
+               {
+               case "NORMAL":
+                       $result_data = SQL_QUERY_ESC("SELECT subject, subject, timestamp_ordered, cat_id, payment_id, pool_id FROM "._MYSQL_PREFIX."_user_stats WHERE id=%d LIMIT 1",
+                        array(bigintval($id)), __FILE__, __LINE__);
+                       $TYPE = "mailid"; $DATA = $id; $PROBLEM = NORMAL_MAIL_PROBLEM;
+                       break;
+
+               case "BONUS":
+                       $result_data = SQL_QUERY_ESC("SELECT subject, text, timestamp, cat_id, points, id FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+                        array(bigintval($id2)), __FILE__, __LINE__);
+                       $TYPE = "bonusid"; $DATA = $id2; $PROBLEM = BONUS_MAIL_PROBLEM;
+                       break;
+               }
+
+               if (SQL_NUMROWS($result_data) == 1)
+               {
+                       // Mail was found!
+                       list($subject, $text, $timestamp, $cat, $pay, $pool) = SQL_FETCHROW($result_data);
+                       SQL_FREERESULT($result_data);
+                       if ($type == "NORMAL")
+                       {
+                               $pay = GET_PAY_POINTS($pay, "payment");
+                               $result_text = SQL_QUERY_ESC("SELECT text FROM "._MYSQL_PREFIX."_pool WHERE id=%d LIMIT 1",
+                                array(bigintval($pool)), __FILE__, __LINE__);
+                               list($text) = SQL_FETCHROW($result_text);
+                               SQL_FREERESULT($result_text);
+                       }
+                       if (empty($subject)) $subject = DEFAULT_SUBJECT_LINE;
+                       if (empty($text))    $text    = "---";
+                       $subject = COMPILE_CODE($subject);
+
+                       // Prepare data for template
+                       $content = array(
+                               'sw'     => $SW,
+                               'uid'    => $GLOBALS['userid'],
+                               'data'   => $DATA,
+                               'type'   => $TYPE,
+                               'subj'   => $subject,
+                               'text'   => COMPILE_CODE($text),
+                               'stamp'  => MAKE_DATETIME($timestamp, "0"),
+                               'cat'    => GET_CATEGORY($cat),
+                               'points' => TRANSLATE_COMMA($pay),
+                       );
+
+                       // Load row template and count points
+                       $OUT .= LOAD_TEMPLATE("member_unconfirmed_row", true, $content);
+                       $sum += $pay;
+               }
+                else
+               {
+                       // Prepare data for template
+                       $content = array(
+                               'sw'    => $SW,
+                               'data'  => $DATA,
+                               'probl' => $PROBLEM,
+                       );
+
+                       // Problem with mail detected
+                       $OUT .= LOAD_TEMPLATE("member_unconfirmed_404", true, $content);
+               }
+               $SW = 3 - $SW;
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // Remember total points
+       define('__TOTAL_POINTS', TRANSLATE_COMMA($sum));
+
+       // Remember all generated rows in constant for the template
+       define('__UNCONFIRMED_ROWS', $OUT);
+
+       // Load main template
+       LOAD_TEMPLATE("member_unconfirmed_table");
+}
+ else
+{
+       // No mails left to confirm... :)
+       LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_NO_MAILS_TO_CONFIRM);
+}
+CLOSE_TABLE();
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-welcome.php b/0.2.1/inc/modules/member/what-welcome.php
new file mode 100644 (file)
index 0000000..9dc7e4c
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/16/2003 *
+ * ===============                              Last change: 07/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-welcome.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Welcome to the login area!                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Willkommen zum Login-Bereich!                    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif (!IS_LOGGED_IN())
+{
+       LOAD_URL(URL."/modules.php?module=index");
+}
+
+// Add description as navigation point
+ADD_DESCR ("member", basename(__FILE__));
+OUTPUT_HTML ("</FONT><BR>");
+
+// Export data for template
+define('_LAST_ONLINE_VALUE', MAKE_DATETIME($LAST['online']));
+define('_LAST_MODULE_VALUE', GET_MOD_DESCR("member", $LAST['module']));
+
+// Load header template
+LOAD_TEMPLATE("member_welcome_header");
+
+// Chedk if he is returning from a profile update notification
+$result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE notified='Y' AND userid=%d LIMIT 1",
+ array($GLOBALS['userid']), __FILE__, __LINE__);
+
+if ((SQL_NUMROWS($result) == 1) && (EXT_IS_ACTIVE("profile")))
+{
+       // Yes, he is so let's place him his wanted buttons
+       LOAD_TEMPLATE("profile-update");
+}
+ else
+{
+       // Load the template below this default data
+       LOAD_TEMPLATE("member_welcome");
+}
+
+// Free memory
+SQL_FREERESULT($result);
+
+// Load footer template
+LOAD_TEMPLATE("member_welcome_footer");
+
+//
+?>
diff --git a/0.2.1/inc/modules/member/what-wernis.php b/0.2.1/inc/modules/member/what-wernis.php
new file mode 100644 (file)
index 0000000..26acfa6
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/12/2004 *
+ * ================                             Last change: 11/16/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-wernis.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : wernis requests                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Auszahlungsanfragen                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+} elseif (!IS_LOGGED_IN()) {
+       // User is not logged in
+       LOAD_URL(URL."/modules.php?module=index");
+} elseif ((!EXT_IS_ACTIVE("wernis")) && (!IS_ADMIN())) {
+       // Extension "wernis" is not activated
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "wernis");
+       return;
+}
+
+// Add description as navigation point
+ADD_DESCR("member", basename(__FILE__));
+
+// Is the mode set (withdraw or payout)
+if (!isset($_GET['mode'])) {
+       // Let the user choose what he wants to do
+       LOAD_TEMPLATE("member_wernis_mode_choose");
+}
+
+//
+?>
diff --git a/0.2.1/inc/modules/order.php b/0.2.1/inc/modules/order.php
new file mode 100644 (file)
index 0000000..bd0d656
--- /dev/null
@@ -0,0 +1,146 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/29/2003 *
+ * ===============                              Last change: 01/06/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : order.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Submits your order to the administrators         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sendet die Buchung an die Administratoren        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+$URL = "";
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("order")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "order");
+       return;
+}
+ elseif (!IS_LOGGED_IN())
+{
+       // Sorry, no guest access!
+       $URL = URL."/modules.php?module=index";
+}
+ elseif (empty($_GET['order']))
+{
+       // You cannot call this module directly!
+       $URL = URL."/modules.php?module=login&amp;what=order";
+}
+
+// When URL is empty nothing bad happend here
+if (empty($URL))
+{
+       // Is the auto-send mechanism active or inactive?
+       if ($CONFIG['autosend_active'] == "Y")
+       {
+               // Auto-send is active
+               define('ADMIN_AUTOSEND',  COMPILE_CODE(ADMIN_AUTOSEND_ACTIVE));
+               define('MEMBER_AUTOSEND', COMPILE_CODE(MEMBER_AUTOSEND_ACTIVE));
+               $TYPE = "NEW";
+       }
+        else
+       {
+               // Auto-send is inactive
+               define('ADMIN_AUTOSEND',  COMPILE_CODE(ADMIN_AUTOSEND_INACTIVE));
+               define('MEMBER_AUTOSEND', COMPILE_CODE(MEMBER_AUTOSEND_INACTIVE));
+               $TYPE = "ADMIN";
+       }
+
+       // Update sending pool
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='%s' WHERE id=%d AND sender=%d AND data_type='TEMP' LIMIT 1",
+        array($TYPE, bigintval($_GET['order']), $GLOBALS['userid']), __FILE__, __LINE__);
+
+       // Finally is the entry valid?
+       if (SQL_AFFECTEDROWS($link) == 1)
+       {
+               // Update his login data
+               UPDATE_LOGIN_DATA();
+
+               // Load personal data...
+               $result = SQL_QUERY_ESC("SELECT sex, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array($GLOBALS['userid']), __FILE__, __LINE__);
+               list($sex, $sname, $fname, $email) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Load mail again...              0       1        2           3          4      5      6         7
+               $result = SQL_QUERY_ESC("SELECT subject, text, receivers, payment_id, timestamp, url, cat_id, target_send FROM "._MYSQL_PREFIX."_pool WHERE id=%d AND sender=%d LIMIT 1",
+                array(bigintval($_GET['order']), $GLOBALS['userid']), __FILE__, __LINE__);
+               $DATA = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               if (empty($DATA[0])) $DATA[0] = DEFAULT_SUBJECT_LINE;
+
+               // Calculate used points
+               $USED = $DATA[7] * GET_PAY_POINTS($DATA[3]);
+
+               // Update used points
+               $ADD = "";
+               if ($CONFIG['order_max'] == "ORDER") $ADD = ", mail_orders=mail_orders+1";
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s".$ADD." WHERE userid=%d LIMIT 1",
+                array($USED, $GLOBALS['userid']), __FILE__, __LINE__);
+
+               // Update mediadata as well
+               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+               {
+                       // Update database
+                       MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $USED);
+               }
+
+               // Send an email to the user
+               $msg_mem = LOAD_EMAIL_TEMPLATE("order-member", "", $GLOBALS['userid']);
+               SEND_EMAIL($email, MEMBER_NEW_QUEUE, $msg_mem);
+
+               // Notify admins about this
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(ADMIN_NEW_QUEUE, "order-admin", "", $GLOBALS['userid']);
+               }
+                else
+               {
+                       $msg_admin = LOAD_EMAIL_TEMPLATE("order-admin", "", $GLOBALS['userid']);
+                       SEND_ADMIN_EMAILS(ADMIN_NEW_QUEUE, $msg_admin);
+               }
+
+               // Output back bottom
+               LOAD_TEMPLATE("member_order-back", false);
+       }
+        else
+       {
+               // Matching line not found or already "placed" in send queue
+               $URL = URL."/modules.php?module=login";
+               LOAD_URL($URL);
+       }
+}
+ else
+{
+       // Redirect...
+       LOAD_URL($URL);
+}
+//
+?>
diff --git a/0.2.1/inc/modules/welcome.php b/0.2.1/inc/modules/welcome.php
new file mode 100644 (file)
index 0000000..d59a536
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2004 *
+ * ===============                              Last change: 09/05/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : welcome.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : Welcome entry points                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Willkommensseite                                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+?>
diff --git a/0.2.1/inc/monthly/.htaccess b/0.2.1/inc/monthly/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/monthly/monthly_ b/0.2.1/inc/monthly/monthly_
new file mode 100644 (file)
index 0000000..67c5a7f
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/04/2005 *
+ * ===============                              Last change: 03/04/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : monthly_                                         *
+ * -------------------------------------------------------------------- *
+ * Short description :                                                  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *                                
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *                                
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *                                
+ * MA  02110-1301  USA                                                  *                                
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE);
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || (defined('__DAILY_RESET'))) return;
+
+//
+?>
diff --git a/0.2.1/inc/monthly/monthly_beg.php b/0.2.1/inc/monthly/monthly_beg.php
new file mode 100644 (file)
index 0000000..7b5780d
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/22/2005 *
+ * ===============                              Last change: 10/22/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : monthly_beg.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Monthly begging rallye                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Monatliche Bettelrallye                          *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("beg")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "beg");
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || (!defined('__DAILY_RESET'))) return;
+
+// Get current month (2 digits)
+$curr = date("m", time());
+
+// Check if month is done
+if (($curr != $CONFIG['beg_month']) && ($CONFIG['beg_month'] > 0) && ($CONFIG['beg_ranks'] > 0) && ($CSS != 1))
+{
+       // Extension "autopurge" is inactive or purging of inactive accounts is deactivated
+       $WHERE1 = "";
+       $WHERE2 = 0;
+       $WHERE3 = bigintval($CONFIG['beg_ranks']);
+
+       // Let's check if there are some points left we can "pay"...
+       if (EXT_IS_ACTIVE("autopurge"))
+       {
+               // Use last online stamp only when autopurge for inactive members is activated
+               if (($CONFIG['ap_in_since'] > 0) && ($CONFIG['beg_active'] == "Y"))
+               {
+                       // Okay, include last online timestamp
+                       $WHERE1 = "AND last_online >=";
+                       $WHERE2 = bigintval(time() - $CONFIG['ap_in_since']);
+                       $WHERE3 = bigintval($CONFIG['beg_ranks']);
+               }
+       }
+
+       // SQL string to check for accounts
+       $result_main = SQL_QUERY_ESC("SELECT userid, email, beg_points
+FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' ".$WHERE1." %s AND beg_points > 0 ORDER BY beg_points DESC, userid LIMIT %s",
+ array($WHERE2, $WHERE3), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result_main) > 0)
+       {
+               // Load our winners...
+               $UIDs = "";
+               while(list($uid, $email, $points) = SQL_FETCHROW($result_main))
+               {
+                       // Add points to user's account directly
+                       $result_data = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points
+SET points=points+%s WHERE ref_depth='0' AND userid=%d LIMIT 1",
+ array($points, bigintval($uid)), __FILE__, __LINE__);
+
+                       // Update mediadata as well
+                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                       {
+                               // Update database
+                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $points);
+                       }
+
+                       // Load email template and email it away
+                       $msg = LOAD_EMAIL_TEMPLATE("member_beg", $points, bigintval($uid));
+                       SEND_EMAIL($email, BEG_MONTHLY_RALLYE, $msg);
+               }
+
+               // Remove first commata
+               $UIDs = substr($UIDs, 1);
+
+               // Get current month
+               $curr = date("m", time());
+               if (strlen($curr) == 1) $curr = "0".$curr;
+               if ($curr == "00") $curr = "12";
+
+               // Reset accounts
+               $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data SET beg_points='0.00000' WHERE beg_points > 0",
+                __FILE__, __LINE__);
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_main);
+
+       // Finally update database and config array
+       $CONFIG['beg_month'] = $curr;
+       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET beg_month='%s' WHERE config='0' LIMIT 1",
+        array($curr), __FILE__, __LINE__);
+
+       // Destroy cache
+}
+//
+?>
diff --git a/0.2.1/inc/monthly/monthly_bonus.php b/0.2.1/inc/monthly/monthly_bonus.php
new file mode 100644 (file)
index 0000000..1dec6c3
--- /dev/null
@@ -0,0 +1,138 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/14/2004 *
+ * ===============                              Last change: 11/19/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : monthly_bonus.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Monthly bonus from click-bonus                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Monatlicher Bonus von Klick-Verguetung           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("bonus")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "bonus");
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || (!defined('__DAILY_RESET'))) return;
+
+// Get current month (2 digits)
+$curr = date("m", time());
+
+if (($curr != $CONFIG['bonus_month']) && ($CONFIG['bonus_ranks'] > 0) && ($CSS != 1))
+{
+       // Extension "autopurge" is inactive or purging of inactive accounts is deactivated
+       $WHERE1 = "WHERE status='CONFIRMED'";
+       $WHERE2 = 0;
+       $WHERE3 = bigintval($CONFIG['bonus_ranks']);
+
+       // Shall I keep inactive members away from here? (mostly wanted in an "active-rallye" ...)
+       if (EXT_IS_ACTIVE("autopurge"))
+       {
+               // Use last online stamp only when autopurge for inactive members is activated
+               if ($CONFIG['ap_in_since'] > 0)
+               {
+                       // Okay, include last online timestamp
+                       $WHERE1 = "WHERE status='CONFIRMED' AND last_online >=";
+                       $WHERE2 = bigintval(time() - $CONFIG['ap_in_since']);
+                       $WHERE3 = bigintval($CONFIG['bonus_ranks']);
+               }
+       }
+
+       // Add more bonus points here
+       $ADD = " AND (0";
+       if ($CONFIG['bonus_click_yn'] == "Y") $ADD .= " + turbo_bonus";
+       if ($CONFIG['bonus_login_yn'] == "Y") $ADD .= " + login_bonus";
+       if ($CONFIG['bonus_order_yn'] == "Y") $ADD .= " + bonus_order";
+       if ($CONFIG['bonus_stats_yn'] == "Y") $ADD .= " + bonus_stats";
+       if ($CONFIG['bonus_ref_yn']   == "Y") $ADD .= " + bonus_ref";
+       $ADD .= ") > 0";
+
+       // SQL string to check for accounts
+       $result_main = SQL_QUERY_ESC("SELECT userid, email, (turbo_bonus + login_bonus + bonus_order + bonus_stats + bonus_ref) AS active_bonus
+FROM "._MYSQL_PREFIX."_user_data
+".$WHERE1." %s".$ADD."
+ORDER BY active_bonus DESC, userid LIMIT %s",
+ array($WHERE2, $WHERE3), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result_main) > 0)
+       {
+               // Load our winners...
+               $UIDs = "";
+               while(list($uid, $email, $points) = SQL_FETCHROW($result_main))
+               {
+                       // Add userids in a row
+                       $UIDs .= ",'".$uid."'";
+
+                       // Add points to user's account directly
+                       $result_data = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points
+SET points=points+%s WHERE ref_depth='0' AND userid=%d LIMIT 1",
+ array($points, bigintval($uid)), __FILE__, __LINE__);
+
+                       // Update mediadata as well
+                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                       {
+                               // Update database
+                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $points);
+                       }
+
+                       // Load email template and email it away
+                       $msg = LOAD_EMAIL_TEMPLATE("member_bonus", $points, bigintval($uid));
+                       SEND_EMAIL($email, BONUS_MONTHLY_ONLINE_BONUS, $msg);
+               }
+               // Remove first commata
+               $UIDs = substr($UIDs, 1);
+
+               // Get current month
+               $curr = date("m", time());
+               if (strlen($curr) == 1) $curr = "0".$curr;
+               if ($curr == "00") $curr = "12";
+
+               // Reset accounts
+               $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data
+SET turbo_bonus=0, login_bonus=0, bonus_order=0, bonus_stats=0, bonus_ref=0", __FILE__, __LINE__);
+
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_main);
+
+       // Finally update database and config array
+       $CONFIG['bonus_month'] = $curr;
+       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET last_bonus_month='%s' WHERE config='0' LIMIT 1",
+        array($curr), __FILE__, __LINE__);
+
+       // Destroy cache
+}
+//
+?>
diff --git a/0.2.1/inc/monthly/monthly_newsletter.php b/0.2.1/inc/monthly/monthly_newsletter.php
new file mode 100644 (file)
index 0000000..0ada8ed
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/04/2005 *
+ * ===============                              Last change: 03/04/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : monthly_newsletter.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Monthly check for newsletter unsubscriptions     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Monatlicher Test auf Newsletter-Abmeldungen      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("newsletter")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "newsletter");
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || (!defined('__DAILY_RESET'))) return;
+
+// Get current month (2 digits)
+$curr = date("m", time());
+
+if ($CONFIG['nl_month'] != $curr)
+{
+       // Check for unsubscribed members
+       $result = SQL_QUERY("SELECT userid, nl_until FROM "._MYSQL_PREFIX."_user_data WHERE nl_receive='N' ORDER BY userid", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // Some unsubscriptions are found so we reset them to receive newsletters
+               while(list($uid, $until) = SQL_FETCHROW($result))
+               {
+                       // Update account
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET nl_receive='Y', nl_until='0' WHERE userid=%d LIMIT 1",
+                        array(bigintval($uid)), __FILE__, __LINE__);
+
+                       // Send email to him
+                       $msg = LOAD_EMAIL_TEMPLATE("member_newsletter_reset", true, bigintval($uid));
+                       SEND_EMAIL($uid, NL_MEMBER_RESET_SUBJECT, $msg);
+
+                       // Send email to admin
+                       if (GET_EXT_VERSION("admins") >= "0.4.1")
+                       {
+                               SEND_ADMIN_EMAILS_PRO(NL_ADMIN_SUBJECT, "admin_newsletter_reset", "", $GLOBALS['userid']);
+                       }
+                        else
+                       {
+                               $msg = LOAD_EMAIL_TEMPLATE("admin_newsletter_reset", true, bigintval($uid));
+                               SEND_ADMIN_EMAILS(NL_ADMIN_SUBJECT, $msg);
+                       }
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Update last month
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET nl_month='%s' WHERE config='0' LIMIT 1",
+                array($curr), __FILE__, __LINE__);
+
+               // Destroy cache
+       }
+}
+
+//
+?>
diff --git a/0.2.1/inc/monthly_newsletter.php b/0.2.1/inc/monthly_newsletter.php
new file mode 100644 (file)
index 0000000..bcb5020
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/04/2005 *
+ * ===============                              Last change: 03/04/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : monthly_newsletter.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Monthly check for newsletter unsubscriptions     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Monatlicher Test auf Newsletter-Abmeldungen      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Check for unsubscribed members
+$result = SQL_QUERY("SELECT userid, nl_until FROM "._MYSQL_PREFIX."_user_data WHERE nl_receive='N' ORDER BY userid", __FILE__, __LINE__);
+if (SQL_NUMROWS($result) > 0)
+{
+       // Some unsubscriptions are found so we reset them to receive newsletters
+       while(list($uid, $until) = SQL_FETCHROW($result))
+       {
+               // Update account
+               $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data SET nl_receive='Y', nl_until='0' WHERE userid='".$uid."' LIMIT 1", __FILE__, __LINE__);
+
+               // Send email to him
+               $msg = LOAD_EMAIL_TEMPLATE("member_newsletter_reset", true, $uid);
+               SEND_EMAIL($uid, NL_MEMBER_RESET_SUBJECT, $msg);
+
+               // Send email to admin
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO(NL_ADMIN_SUBJECT, "admin_newsletter_reset", "", $GLOBALS['userid']);
+               }
+                else
+               {
+                       $msg = LOAD_EMAIL_TEMPLATE("admin_newsletter_reset", true, $uid);
+                       SEND_ADMIN_EMAILS(NL_ADMIN_SUBJECT, $msg);
+               }
+       }
+}
+
+//
+?>
diff --git a/0.2.1/inc/mysql-connect.php b/0.2.1/inc/mysql-connect.php
new file mode 100644 (file)
index 0000000..ee79d2e
--- /dev/null
@@ -0,0 +1,293 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/16/2003 *
+ * ===============                              Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : mysql-connect.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Connects to your database                        *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verbindet zu Ihrer Datenbank                     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// CFG: DEBUG-SQL (if enabled and DEBUG_MODE is enabled all SQL queries will be logged to debug.log)
+define('DEBUG_SQL', false);
+
+// Load library
+require_once(PATH."inc/db/lib.php");
+
+// Check if the user setups his MySQL stuff...
+if ((empty($MySQL['login'])) && (!mxchange_installing) && (!isset($_GET['installing'])) && (mxchange_installed))
+{
+       // No login entered and outside installation mode
+       echo "<STRONG>".LANG_WARNING.":</STRONG> ";
+       if (mxchange_installed)
+       {
+               // You have changed my configuration file!
+               die(DIE_CONFIG_CHANGED_YOU);
+       }
+        else
+       {
+               // Please run the installation script (maybe again)
+               die(DIE_RUN_INSTALL_MYSQL);
+       }
+}
+ elseif ((!mxchange_installing) && (!isset($_GET['installing'])) && (empty($MySQL['password'])) && (warn_no_pass))
+{
+       // No database password entered!!!
+       echo "<STRONG>".LANG_WARNING.":</STRONG> ".WARN_NULL_PASSWORD;
+}
+
+// Check if this file is writeable or read-only and warn the user
+if ((!mxchange_installing) && (mxchange_installed))
+{
+       // Check for write-permission for config.php and inc directory
+       if (empty($GLOBALS['module'])) $GLOBALS['module'] = "index";
+       if (($GLOBALS['module'] != "admin") && (admin_registered))
+       {
+               if (is_INCWritable("config"))     ADD_FATAL(FATAL_CONFIG_WRITABLE);
+               if (is_INCWritable("dummy"))      ADD_FATAL(FATAL_INC_WRITABLE);
+       }
+
+       // Init configuration arrays
+       $CONFIG = array(
+               'code_length' => 0
+       );
+       $EXT_CSS_FILES = array();
+
+       // Load general stuff, like...
+       require_once(PATH."inc/extensions.php"); // Extension management
+       require_once(PATH."inc/functions.php");  // Non-database functions
+       require_once(PATH."inc/databases.php");     // Several hard-coded databases (arrays, constants)
+
+       if ((!empty($MySQL['host'])) && (!empty($MySQL['login'])) && (!empty($MySQL['password'])) && (!empty($MySQL['dbase'])))
+       {
+               // Connect to DB
+               $link = SQL_CONNECT($MySQL['host'], $MySQL['login'], $MySQL['password'], __FILE__, __LINE__);
+               if ($link !== false)
+               {
+                       $db = SQL_SELECT_DB($MySQL['dbase'], $link, __FILE__, __LINE__);
+                       if ($db !== false)
+                       {
+                               // Load configuration stuff
+                               $result = SQL_QUERY("SELECT pass_len, points_register, points_ref, least_cats, check_double_email, check_double_pass, admin_notify, url_tlock, test_text, max_tlength, test_subj, autosend_active, max_send, url_blacklist, auto_purge, auto_purge_active, last_update, unconfirmed, profile_lock, online_timeout, mad_timestamp, mad_count, profile_update, send_prof_update, resend_profile_update, code_length, patch_level, patch_ctime, guest_stats, ref_payout, activate_xchange, order_multi_page, display_refid, ip_timeout, allow_direct_pay, config FROM "._MYSQL_PREFIX."_config WHERE config='0' LIMIT 1", __FILE__, __LINE__);
+
+                               if (SQL_NUMROWS($result) == 1) {
+                                       // Load data when previous SQL query did not fail
+                                       if (!$result) {
+                                               // Something went wrong
+                                               ADD_FATAL(FATAL_CANNOT_LOAD_CONFIG);
+                                               return;
+                                       }
+
+                                       // Load the configuration
+                                       $CONFIG = array_merge($CONFIG, SQL_FETCHARRAY($result));
+
+                                       // Initialize include-file-pool
+                                       $INC_POOL = array();
+
+                                       // Load more include files
+                                       require_once(PATH."inc/mysql-manager.php"); // Functions which interact with the database
+
+                                       // Run daily reset
+                                       if ((date("d", $CONFIG['last_update']) != date("d", time()) || (DEBUG_MODE == true)) && (!mxchange_installing) && (mxchange_installed) && (admin_registered) && (!isset($_GET['register'])) && ($CSS != 1))
+                                       {
+                                               // Do daily things in external PHP file but only when script is completely setup
+                                               $INC_POOL[] = PATH."inc/reset/reset_daily.php";
+
+                                               // Daily reset was run!
+                                               define('__DAILY_RESET', "1");
+                                       }
+
+                                       // Load all extensions
+                                       require_once(PATH."inc/load_extensions.php");
+
+                                       // Loading patching system is required here...
+                                       require_once(PATH."inc/patch-system.php");      // Initialize patch system
+
+                                       // Functions which are related to themes
+                                       require_once(PATH."inc/theme-manager.php");
+
+                                       // Initialize session management
+                                       require_once(PATH."inc/session.php");
+
+                                       // Load admin include file if he is admin
+                                       if (IS_ADMIN())
+                                       {
+                                               // Administrative functions
+                                               require_once(PATH."inc/modules/admin/admin-inc.php");
+                                       }
+
+                                       // Get all values
+                                       if (($CSS != 1) && ($CSS != -1))
+                                       {
+                                               if (empty($GLOBALS['module']))  $GLOBALS['module'] = "empty";
+                                               if (empty($GLOBALS['what']))    $GLOBALS['what']   = GET_WHAT($GLOBALS['module']);
+                                               if (empty($GLOBALS['action']))  $GLOBALS['action'] = GET_ACTION($GLOBALS['module'], $GLOBALS['what']);
+                                       }
+                                        else
+                                       {
+                                               // Set action/what to empty
+                                               $GLOBALS['action'] = "";
+                                               $GLOBALS['what']   = "";
+                                       }
+
+                                       // Secure and validate user ID from cookie
+                                       UPDATE_LOGIN_DATA();
+
+                                       // Get session ID
+                                       if (empty($_COOKIE['PHPSESSID'])) $_COOKIE['PHPSESSID'] = session_id();
+
+                                       // Update online list
+                                       UPDATE_ONLINE_LIST($_COOKIE['PHPSESSID'], $GLOBALS['module'], $GLOBALS['action'], $GLOBALS['what']);
+
+                                       // Load theme name
+                                       $CurrTheme = GET_CURR_THEME();
+
+                                       // Set default 'what' value
+                                       //* DEBUG */ echo "-".$GLOBALS['module']."/".$GLOBALS['what']."-<br />\n";
+                                       if ((empty($GLOBALS['what'])) && (empty($GLOBALS['action'])) && ($CSS != 1) && ($CSS != -1))
+                                       {
+                                               if ($GLOBALS['module'] == "admin")
+                                               {
+                                                       // Set 'action' value to 'login' in admin menu
+                                                       $GLOBALS['action'] = GET_ACTION($GLOBALS['module'], $GLOBALS['what']);
+                                               }
+                                                elseif (($GLOBALS['module'] == "index") || ($GLOBALS['module'] == "login"))
+                                               {
+                                                       // Set 'what' value to 'welcome' in guest and member menu
+                                                       $GLOBALS['what'] = "welcome";
+                                                       if (!empty($CONFIG['index_home'])) $GLOBALS['what'] = $CONFIG['index_home'];
+                                               }
+                                                else
+                                               {
+                                                       // Anything else like begging link
+                                                       $GLOBALS['what'] = "";
+                                               }
+                                       }
+
+                                       // Update sending pool
+                                       if (($CSS != "1") && ($CSS != "-1")) require_once(PATH."inc/pool-update.php"); // Sends out mails in configureable steps
+
+                                       // Load all active extension including language files when not upgrading.
+                                       // Check module for testing and count one click
+                                       $dummy = CHECK_MODULE($GLOBALS['module']);
+                                       if ($dummy == "done") COUNT_MODULE($GLOBALS['module']);
+                                       unset($dummy);
+                                       if ($CONFIG['activate_xchange'] > 0) activateExchange();
+                               }
+                                else
+                               {
+                                       // If you will read following error message you probably need to contact me (webmaster@mxchange.org)
+                                       // and download the sql-upgrades extension from my server. Please ask me which SQL file(s) you need to
+                                       // import *BEFORE* you import them!
+                                       ADD_FATAL(FATAL_CANNOT_LOAD_CONFIG);
+                               }
+
+                               // Free memory
+                               SQL_FREERESULT($result);
+                       }
+                        else
+                       {
+                               // Wrong database?
+                               ADD_FATAL(WRONG_DB_SELECTED);
+                       }
+               }
+                else
+               {
+                       // No link to database!
+                       ADD_FATAL(NO_DB_LINK);
+                       $db = false;
+               }
+       }
+        else
+       {
+               // Maybe you forgot to enter your MySQL data?
+               ADD_FATAL(MYSQL_DATA_MISSING);
+       }
+}
+ else
+{
+       ///////////////////////////////////////////////////
+       // Include neccessary functions for installation //
+       ///////////////////////////////////////////////////
+
+       // Set CONFIG array
+       $CONFIG = array(
+               'code_length' => 0
+       );
+
+       // Set other missing variables
+       $link = false; // No database link by default
+
+       // Include required files
+       require_once(PATH."inc/databases.php");
+       require_once(PATH."inc/extensions.php");
+       require_once(PATH."inc/theme-manager.php");
+       require_once(PATH."inc/load_extensions.php");
+       require_once(PATH."inc/session.php");
+
+       // Check if we are in installation routine
+       $installPhp = basename($_SERVER['PHP_SELF']);
+       if (($installPhp != "install.php") && ($CSS != "1") && ($CSS != -1)) {
+               // Redirect to the installation system
+               LOAD_URL(URL."/install.php");
+       }
+
+       // Double-check installation mode
+       if ((!mxchange_installed) || (!admin_registered)) {
+               // Check for file permissions
+               if (!is_INCWritable("config")) {
+                       ADD_FATAL(CONFIG_IS_WRITE_PROTECTED);
+               }
+               if (!is_INCWritable("dummy")) {
+                       ADD_FATAL(DUMMY_IS_WRITE_PROTECTED);
+               }
+               if (!is_INCWritable(".secret/dummy")) {
+                       ADD_FATAL(SECRET_IS_WRITE_PROTECTED);
+               }
+       }
+}
+
+// Any fatal messages?
+if (!is_array($FATAL)) $FATAL = array();
+if (((sizeof($FATAL) > 0) || (!empty($FATAL[0]))) && (mxchange_installed) && (!mxchange_installing) && ($CSS != "1"))
+{
+       // One or more fatal error(s) occur during connect...
+       include (PATH."inc/header.php");
+       include (PATH."inc/fatal_errors.php");
+       unset($FATAL);
+       include (PATH."inc/footer.php");
+       exit;
+}
+
+//
+?>
diff --git a/0.2.1/inc/mysql-manager.php b/0.2.1/inc/mysql-manager.php
new file mode 100644 (file)
index 0000000..6c79d2d
--- /dev/null
@@ -0,0 +1,1688 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/26/2003 *
+ * ===============                              Last change: 11/29/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : mysql-manager.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : All MySQL-related functions                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alle MySQL-Relevanten Funktionen                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+function ADD_MODULE_TITLE($mod)
+{
+       global $MODULES, $CONFIG;
+       $name = ""; $result = false;
+       // Load title
+       if (!mxchange_installing)
+       {
+               if ((GET_EXT_VERSION("cache") >= "0.1.2") && (is_array($MODULES['module'])) && (isset($MODULES['module'][$mod])))
+               {
+                       // Load from cache
+                       $name = $MODULES['title'][$mod];
+
+                       // Update cache hits
+                       $CONFIG['cache_hits']++;
+               }
+                else
+               {
+                       // Load from database
+                       $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_mod_reg WHERE module='%s' LIMIT 1", array($mod), __FILE__, __LINE__);
+                       list($name) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+       }
+
+       // Trim name
+       $name = trim($name);
+
+       // Still no luck or empty title?
+       if (empty($name))
+       {
+               // No name found
+               $name = LANG_UNKNOWN_MODULE." (".$mod.")";
+               if (SQL_NUMROWS($result) == 0)
+               {
+                       // Add module to database
+                       $dummy = CHECK_MODULE($mod);
+               }
+       }
+       return $name;
+}
+//
+function CHECK_MODULE($mod)
+{
+       // We need them now here...
+       global $MODULES, $CONFIG, $CACHE;
+
+       // Filter module name (names with low chars and underlines are fine!)
+       $mod = preg_replace("/[^a-z_]/", "", $mod);
+
+       // Check for prefix is a extension...
+       $MOD_SPLIT = explode("_", $mod);
+       $extension = ""; $mod_chk = $mod;
+       //* DEBUG: */ echo __LINE__."*".count($MOD_SPLIT)."*/".$mod."*<BR>";
+       if (count($MOD_SPLIT) == 2)
+       {
+               // Okay, there is a seperator (_) in the name so is the first part a module?
+               //* DEBUG: */ echo __LINE__."*".$MOD_SPLIT[0]."*<BR>";
+               if (EXT_IS_ACTIVE($MOD_SPLIT[0]))
+               {
+                       // The prefix is an extension's name, so let's set it
+                       $extension = $MOD_SPLIT[0]; $mod = $MOD_SPLIT[1];
+               }
+       }
+
+       // Major error in module registry is the default
+       $ret = "major";
+
+       // Check if script is installed if not return a "done" to prevent some errors
+       if ((!mxchange_installed) || (mxchange_installing) || (!admin_registered)) return "done";
+
+       // Check if cache is latest version
+       $locked = "Y"; $hidden = "N"; $admin = "N"; $mem = "N"; $found = false;
+       if ((GET_EXT_VERSION("cache") >= "0.1.2") && (is_array($MODULES['module'])))
+       {
+               // Is the module cached?
+               if (isset($MODULES['locked'][$mod_chk])) {
+                       // Check cache
+                       $locked = $MODULES['locked'][$mod_chk];
+                       $hidden = $MODULES['hidden'][$mod_chk];
+                       $admin  = $MODULES['admin_only'][$mod_chk];
+                       $mem    = $MODULES['mem_only'][$mod_chk];
+
+                       // Update cache hits
+                       $CONFIG['cache_hits']++;
+                       $found = true;
+               } else {
+                       // No, then we have to update it!
+                       $ret = "cache_miss";
+               }
+       }
+        else
+       {
+               // Check for module in database
+               $result = SQL_QUERY_ESC("SELECT locked, hidden, admin_only, mem_only FROM "._MYSQL_PREFIX."_mod_reg WHERE module='%s' LIMIT 1", array($mod_chk), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Read data
+                       list($locked, $hidden, $admin, $mem) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       $found = true;
+               }
+       }
+
+       // Check returned values against current access permissions
+       //
+       //  Admin access            ----- Guest access -----           --- Guest   or   member? ---
+       if ((IS_ADMIN()) || (($locked == "N") && ($admin == "N") && (($mem == "N") || (IS_LOGGED_IN()))))
+       {
+               // If you are admin you are welcome for everything!
+               $ret = "done";
+       }
+        elseif ($locked == "Y")
+       {
+               // Module is locked
+               $ret = "locked";
+       }
+        elseif (($mem == "Y") && (!IS_LOGGED_IN()))
+       {
+               // You have to login first!
+               $ret = "mem_only";
+       }
+        elseif (($admin == "Y") && (!IS_ADMIN()))
+       {
+               // Only the Admin is allowed to enter this module!
+               $ret = "admin_only";
+       }
+
+       // Still no luck or not found?
+       if (($ret == "major") || ($ret == "cache_miss") || (!$found))
+       {
+               //         ----- Legacy module -----                      ---- Module in base folder  ----           --- Module with extension's name ---
+               if ((file_exists(PATH."inc/modules/".$mod.".php")) || (file_exists(PATH.$mod.".php")) || (file_exists(PATH.$extension."/".$mod.".php")))
+               {
+                       // Data is missing so we add it
+                       if (GET_EXT_VERSION("sql_patches") >= "0.3.6") {
+                               // Since 0.3.6 we have a has_menu column, this took me a half hour
+                               // to find a loop here... *sigh*
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_mod_reg
+(module, locked, hidden, mem_only, admin_only, has_menu) VALUES
+('%s', 'Y', 'N', 'N', 'N', 'N')", array($mod_chk), __FILE__, __LINE__);
+                       } else {
+                               // Wrong/missing sql_patches!
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_mod_reg
+(module, locked, hidden, mem_only, admin_only) VALUES
+('%s', 'Y', 'N', 'N', 'N')", array($mod_chk), __FILE__, __LINE__);
+                       }
+
+                       // Everthing is fine?
+                       if (SQL_AFFECTEDROWS() == 0) {
+                               // Something bad happend!
+                               return "major";
+                       }
+
+                       // Destroy cache here
+                       if (GET_EXT_VERSION("cache") >= "0.1.2")
+                       {
+                               if ($CACHE->cache_file("mod_reg", true)) $CACHE->cache_destroy();
+                               unset($MODULES);
+                       }
+
+                       // And reload data
+                       $ret = CHECK_MODULE($mod_chk);
+               }
+                else
+               {
+                       // Module not found we don't add it to the database
+                       $ret = "404";
+               }
+       }
+
+       // Return the value
+       return $ret;
+}
+//
+function ADD_DESCR($ACC_LVL, $FILE, $return = false, $output = true)
+{
+       global $_GET, $DEPTH, $CONFIG;
+       $LINK_ADD = ""; $OUT = ""; $AND = "";
+       // First we have to do some analysis...
+       if (ereg("action-", $FILE))
+       {
+               // This is an action file!
+               $TYPE = "action";
+               $SEARCH = substr($FILE, 7);
+               switch ($ACC_LVL)
+               {
+               case "admin":
+                       $MOD_CHECK = "admin";
+                       break;
+
+               case "sponsor":
+               case "guest":
+               case "member":
+                       $MOD_CHECK = $GLOBALS['module'];
+                       break;
+               }
+               $AND = " AND what=''";
+       }
+        elseif (ereg("what-", $FILE))
+       {
+               // This is an admin what file!
+               $TYPE = "what";
+               $SEARCH = substr($FILE, 5);
+               $AND = "";
+               switch ($ACC_LVL)
+               {
+               case "admin":
+                       $MOD_CHECK = "admin";
+                       break;
+
+               case "guest":
+               case "member":
+                       $MOD_CHECK = $GLOBALS['module'];
+                       if (!IS_ADMIN())
+                       {
+                               $AND = " AND visible='Y' AND locked='N'";
+                       }
+                       break;
+               }
+               $DUMMY = substr($SEARCH, 0, -4);
+               $AND .= " AND action='".GET_ACTION($ACC_LVL, $DUMMY)."'";
+       }
+        elseif (($ACC_LVL == "sponsor") || ($ACC_LVL == "engine"))
+       {
+               // Sponsor / engine menu
+               $TYPE = "what";
+               $SEARCH = $FILE;
+               $MOD_CHECK = $GLOBALS['module'];
+               $AND = "";
+       }
+        else
+       {
+               // Other
+               $TYPE = "menu";
+               $SEARCH = $FILE;
+               $MOD_CHECK = $GLOBALS['module'];
+               $AND = "";
+       }
+       if ((!isset($DEPTH)) && (!$return))
+       {
+               $DEPTH = "0";
+               $PREFIX = "<DIV class=\"you_are_here\">".YOU_ARE_HERE."&nbsp;<STRONG><A class=\"you_are_here\" href=\"".URL."/modules.php?module=".$GLOBALS['module'].$LINK_ADD."\">Home</A></STRONG>";
+       }
+        else
+       {
+               if (!$return) $DEPTH++;
+               $PREFIX = "";
+       }
+       $PREFIX .= "&nbsp;-&gt;&nbsp;";
+       if (ereg(".php", $SEARCH))
+       {
+               $SEARCH = substr($SEARCH, 0, strpos($SEARCH, ".php"));
+       }
+       $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_%s_menu WHERE %s='%s' ".$AND." LIMIT 1",
+        array($ACC_LVL, $TYPE, $SEARCH), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               list($ret) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               if ($return)
+               {
+                       // Return title
+                       return $ret;
+               }
+                elseif (((GET_EXT_VERSION("sql_patches") >= "0.2.3") && ($CONFIG['youre_here'] == "Y")) || ((IS_ADMIN()) && ($MOD_CHECK == "admin")))
+               {
+                       // Output HTML code
+                       $OUT = $PREFIX."<STRONG><A class=\"you_are_here\" href=\"".URL."/modules.php?module=".$MOD_CHECK."&amp;".$TYPE."=".$SEARCH.$LINK_ADD."\">".$ret."</A></STRONG>\n";
+                       //* DEBUG: */ echo __LINE__."*".$TYPE."/".$GLOBALS['what']."*<br />\n";
+                       if (($TYPE == "what") || (($TYPE == "action") && (!isset($_GET['what'])) && ($GLOBALS['what'] != "welcome"))) {
+                               //* DEBUG: */ echo __LINE__."+".$TYPE."+<br />\n";
+                               $OUT .= "</DIV><BR>\n";
+                       }
+               }
+       }
+
+       // Return or output HTML code?
+       if ($output)
+       {
+               // Output HTML code here
+               OUTPUT_HTML($OUT);
+       }
+        else
+       {
+               // Return HTML code
+               return $OUT;
+       }
+}
+//
+function ADD_MENU($MODE, $act, $wht)
+{
+       global $CONFIG;
+       if (!VALIDATE_MENU_ACTION($MODE, $act, $wht, true)) return CODE_MENU_NOT_VALID;
+       $main_cnt = 0; $AND = ""; $main_action = ""; $sub_what = "";
+       if (!IS_ADMIN())
+       {
+               $AND = "AND visible='Y' AND locked='N'";
+       }
+       // Load SQL data and add the menu to the output stream...
+       $result_main = SQL_QUERY_ESC("SELECT title, action FROM "._MYSQL_PREFIX."_%s_menu WHERE what='' ".$AND." ORDER BY sort",
+        array($MODE), __FILE__, __LINE__);
+       //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*<br />\n";
+       if (SQL_NUMROWS($result_main) > 0)
+       {
+               OUTPUT_HTML ("<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"".$MODE."_menu\">");
+               // There are menus available, so we simply display them... :)
+               while (list($main_title, $main_action) = SQL_FETCHROW($result_main))
+               {
+                       //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*<br />\n";
+                       // Load menu header template
+                       $BLOCK_MODE = false; $act = $main_action;
+                       LOAD_TEMPLATE($MODE."_menu_title", false, $main_title);
+
+                       $result_sub = SQL_QUERY_ESC("SELECT title, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what != '' ".$AND." ORDER BY sort",
+                        array($MODE, $main_action), __FILE__, __LINE__);
+                       $ctl = SQL_NUMROWS($result_sub);
+                       if ($ctl > 0)
+                       {
+                               $cnt=0;
+                               while (list($sub_title, $sub_what) = SQL_FETCHROW($result_sub))
+                               {
+                                       $content = "";
+
+                                       // Full file name for checking menu
+                                       //* DEBUG: */ echo __LINE__.":!!!!".$sub_what."!!!<br />\n";
+                                       $test_inc = sprintf("%sinc/modules/%s/what-%s.php", PATH, $MODE, $sub_what);
+                                       $test = (file_exists($test_inc) && is_readable($test_inc));
+                                       if ($test)
+                                       {
+                                               if ((!empty($wht)) && (($wht == $sub_what)))
+                                               {
+                                                       $content = "<STRONG>";
+                                               }
+
+                                               // Navigation link
+                                               $content .= "<A name=\"menu\" class=\"menu_blur\" href=\"".URL."/modules.php?module=".$GLOBALS['module']."&amp;what=".$sub_what.ADD_URL_DATA("")."\"";
+
+                                               if (frameset_active)
+                                               {
+                                                       // We need to add a JavaScript here to reload both frames!
+                                               }
+                                                else
+                                               {
+                                                       // Add the default target _self
+                                                       $content .= " target=\"_self\"";
+                                               }
+                                               $content .= ">";
+                                       }
+                                        else
+                                       {
+                                               $content .= "<I>";
+                                       }
+
+                                       // Menu title
+                                       $content .= $CONFIG['middot'].$sub_title;
+
+                                       if ($test)
+                                       {
+                                               $content .= "</A>";
+                                       }
+                                        else
+                                       {
+                                               $content .= "</I>";
+                                       }
+
+                                       if ((!empty($wht)) && (($wht == $sub_what)))
+                                       {
+                                               $content .= "</STRONG>";
+                                       }
+                                       $wht = $sub_what; $cnt++;
+                                       if ($cnt < $ctl)
+                                       {
+                                               LOAD_TEMPLATE($MODE."_menu_row", false, $content);
+                                       }
+                                        else
+                                       {
+                                               LOAD_TEMPLATE($MODE."_menu_bottom", false, $content);
+                                       }
+                               }
+                       }
+                        else
+                       {
+                               // This is a menu block... ;-)
+                               $BLOCK_MODE = true;
+                               $INC_BLOCK = sprintf(PATH."inc/modules/%s/action-%s.php", $MODE, $main_action);
+                               if ((file_exists($INC_BLOCK)) && (is_readable($INC_BLOCK)))
+                               {
+                                       // Load include file
+                                       if ((!EXT_IS_ACTIVE($main_action)) || ($main_action == "online")) OUTPUT_HTML ("<TR>
+  <TD class=\"".$MODE."_menu_whats\">");
+                                       //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*<br />\n";
+                                       include ($INC_BLOCK);
+                                       //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*<br />\n";
+                                       if ((!EXT_IS_ACTIVE($main_action)) || ($main_action == "online")) OUTPUT_HTML ("  </TD>
+</TR>");
+                               }
+                               //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*<br />\n";
+                       }
+                       $main_cnt++;
+                       //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*<br />\n";
+                       if (SQL_NUMROWS($result_main) > $main_cnt)      OUTPUT_HTML ("<TR><TD class=\"".$MODE."_menu_seperator\"></TD></TR>");
+               }
+
+               // Free memory
+               SQL_FREERESULT($result_main);
+
+               // Close table
+               //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*<br />\n";
+               OUTPUT_HTML ("</TABLE>");
+       }
+}
+// This patched function will reduce many SELECT queries for the specified or current admin login
+function IS_ADMIN($admin="")
+{
+       global $_COOKIE, $ADMINS, $CONFIG;
+       $ret = false; $passCookie = ""; $valPass = "";
+       //* DEBUG: */ echo __LINE__."ADMIN:".$admin."<BR>";
+
+       // If admin login is not given take current from cookies...
+       if ((empty($admin)) && (!empty($_COOKIE['admin_login'])) && (!empty($_COOKIE['admin_md5'])))
+       {
+               $admin = SQL_ESCAPE($_COOKIE['admin_login']); $passCookie = $_COOKIE['admin_md5'];
+       }
+       //* DEBUG: */ echo __LINE__."ADMIN:".$admin."/".$passCookie."<BR>";
+
+       // Search in array for entry
+       if ((!empty($passCookie)) && (isset($ADMINS['password'][$admin])) && (!empty($admin)))
+       {
+               // Count cache hits
+               $CONFIG['cache_hits']++;
+
+               // Login data is valid or not?
+               $valPass = generatePassString($ADMINS['password'][$admin]);
+       }
+        elseif (!empty($admin))
+       {
+               // Search for admin
+               $result = SQL_QUERY_ESC("SELECT HIGH_PRIORITY password FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+                array($admin), __FILE__, __LINE__);
+
+               // Is he admin?
+               $passDB = "";
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Admin login was found so let's load password from DB
+                       list($passDB) = SQL_FETCHROW($result);
+                       $valPass = generatePassString($passDB);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+
+       if (!empty($valPass))
+       {
+               // Check if password is valid
+               //* DEBUG: */ echo __LINE__."*".$valPass."/".$passCookie)."*<br>";
+               $ret = (($valPass == $passCookie) || (($valPass == "*FAILED*") && (!EXT_IS_ACTIVE("cache"))));
+       }
+
+       // Return result of comparision
+       //* DEBUG: */ if (!$ret) echo __LINE__."OK!<br>";
+       return $ret;
+}
+//
+function ADD_MAX_RECEIVE_LIST($MODE, $default="", $return=false)
+{
+       global $_POST;
+       $OUT = "";
+       switch ($MODE)
+       {
+       case "guest":
+               // Guests (in the registration form) are not allowed to select 0 mails per day.
+               $result = SQL_QUERY("SELECT value, comment FROM "._MYSQL_PREFIX."_max_receive WHERE value > 0 ORDER BY value", __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) > 0)
+               {
+                       $OUT = "";
+                       while (list($value, $comment) = SQL_FETCHROW($result))
+                       {
+                               $OUT .= "      <OPTION value=\"".$value."\"";
+                               if ($_POST['max_mails'] == $value) $OUT .= " selected=\"selected\"";
+                               $OUT .= ">".$value." ".PER_DAY;
+                               if (!empty($comment)) $OUT .= " (".$comment.")";
+                               $OUT .= "</OPTION>\n";
+                       }
+                       define('__MAX_RECEIVE_OPTIONS', $OUT);
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+                       $OUT = LOAD_TEMPLATE("guest_receive_table", true);
+               }
+                else
+               {
+                       // Maybe the admin has to setup some maximum values?
+               }
+               break;
+
+       case "member":
+               // Members are allowed to set to zero mails per day (we will change this soon!)
+               $result = SQL_QUERY("SELECT value, comment FROM "._MYSQL_PREFIX."_max_receive ORDER BY value", __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) > 0)
+               {
+                       $OUT = "";
+                       while (list($value, $comment) = SQL_FETCHROW($result))
+                       {
+                               $OUT .= "      <OPTION value=\"".$value."\"";
+                               if ($default == $value) $OUT .= " selected=\"selected\"";
+                               $OUT .= ">".$value." ".PER_DAY;
+                               if (!empty($comment)) $OUT .= " (".$comment.")";
+                               $OUT .= "</OPTION>\n";
+                       }
+                       define('__MAX_RECEIVE_OPTIONS', $OUT);
+                       SQL_FREERESULT($result);
+                       $OUT = LOAD_TEMPLATE("member_receive_table", true);
+               }
+                else
+               {
+                       // Maybe the admin has to setup some maximum values?
+                       $OUT = LOAD_TEMPLATE("admin_settings_saved", true, NO_MAX_VALUES);
+               }
+               break;
+       }
+       if ($return)
+       {
+               // Return generated HTML code
+               return $OUT;
+       }
+        else
+       {
+               // Output directly (default)
+               OUTPUT_HTML ($OUT);
+       }
+}
+//
+function SEARCH_EMAIL_USERTAB($email)
+{
+       $ret = false;
+       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE email LIKE '{PER}%s{PER}' LIMIT 1", array($email), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1) $ret = true;
+       SQL_FREERESULT($result);
+       return $ret;
+}
+//
+function WHAT_IS_VALID($act, $wht, $TYPE="guest")
+{
+       if (IS_ADMIN())
+       {
+               // Everything is valid to the admin :-)
+               return true;
+       }
+        else
+       {
+               $ret = false;
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what='%s' AND locked='N' LIMIT 1", array($TYPE, $act, $wht), __FILE__, __LINE__);
+               // Is "what" valid?
+               if (SQL_NUMROWS($result) == 1) $ret = true;
+               SQL_FREERESULT($result);
+               return $ret;
+       }
+}
+//
+function IS_LOGGED_IN()
+{
+       global $_COOKIE, $status, $LAST;
+       if (!is_array($LAST)) $LAST = array();
+       $ret = false;
+
+       // Fix "deleted" cookies first
+       FIX_DELETED_COOKIES(array('userid', 'u_hash', 'lifetime'));
+
+       // Are cookies set?
+       if ((!empty($GLOBALS['userid'])) && (!empty($_COOKIE['u_hash'])) && (!empty($_COOKIE['lifetime'])) && (defined('COOKIE_PATH')))
+       {
+               // Cookies are set with values, but are they valid?
+               $result = SQL_QUERY_ESC("SELECT password, status, last_module, last_online FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                array($GLOBALS['userid']), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Load data from cookies
+                       list($password, $status, $mod, $onl) = SQL_FETCHROW($result);
+
+                       // Validate password by created the difference of it and the secret key
+                       $valPass = generatePassString($password);
+
+                       // Transfer last module and online time
+                       if ((!empty($mod)) && (empty($LAST['module']))) { $LAST['module'] = $mod; $LAST['online'] = $onl; }
+
+                       // So did we now have valid data and an unlocked user?
+                       //* DEBUG: */ echo $valPass."<br>".$_COOKIE['u_hash']."<br>";
+                       if (($status == "CONFIRMED") && ($valPass == $_COOKIE['u_hash']))
+                       {
+                               // Account is confirmed and all cookie data is valid so he is definely logged in! :-)
+                               $ret = true;
+                       }
+                        else
+                       {
+                               // Maybe got locked etc.
+                               //* DEBUG: */ echo __LINE__."!!!<br>";
+                               @setcookie("userid", "", time() - 3600, COOKIE_PATH);
+                               @setcookie("u_hash", "", time() - 3600, COOKIE_PATH);
+                               @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH);
+
+                               // Remove array elements to prevent errors
+                               unset($GLOBALS['userid']);
+                               unset($_COOKIE['u_hash']);
+                               unset($_COOKIE['lifetime']);
+                       }
+               }
+                else
+               {
+                       // Cookie data is invalid!
+                       //* DEBUG: */ echo __LINE__."***<br>";
+                       @setcookie("userid", "", time() - 3600, COOKIE_PATH);
+                       @setcookie("u_hash", "", time() - 3600, COOKIE_PATH);
+                       @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH);
+
+                       // Remove array elements to prevent errors
+                       unset($GLOBALS['userid']);
+                       unset($_COOKIE['u_hash']);
+                       unset($_COOKIE['lifetime']);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        else
+       {
+               // Cookie data is invalid!
+               //* DEBUG: */ echo __LINE__."///<br>";
+               @setcookie("userid", "", time() - 3600, COOKIE_PATH);
+               @setcookie("u_hash", "", time() - 3600, COOKIE_PATH);
+               @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH);
+
+               // Remove array elements to prevent errors
+               unset($GLOBALS['userid']);
+               unset($_COOKIE['u_hash']);
+               unset($_COOKIE['lifetime']);
+       }
+       return $ret;
+}
+//
+function UPDATE_LOGIN_DATA ($UPDATE=true) {
+       global $LAST;
+       if (!is_array($LAST)) $LAST = array();
+
+       // Are the required cookies set?
+       if ((!isset($GLOBALS['userid'])) || (!isset($_COOKIE['u_hash'])) || (!isset($_COOKIE['lifetime']))) {
+               // Nope, then return here to caller function
+               return false;
+       } else {
+               // Secure user ID
+               $GLOBALS['userid'] = bigintval($_COOKIE['userid']);
+       }
+
+       // Extract last online time (life) and how long is auto-login valid (time)
+       $newl = time() + bigintval($_COOKIE['lifetime']);
+
+       // Recheck if logged in
+       if (!IS_LOGGED_IN()) return false;
+
+       // Load last module and last online time
+       $result = SQL_QUERY_ESC("SELECT last_module, last_online FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1) {
+               // Load last module and online time
+               list($mod, $onl) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Maybe first login time?
+               if (empty($mod)) $mod = "login";
+
+               if (@setcookie("userid", $GLOBALS['userid'], $newl, COOKIE_PATH) && @setcookie("u_hash", SQL_ESCAPE($_COOKIE['u_hash']), $newl, COOKIE_PATH) && @setcookie("lifetime", bigintval($_COOKIE['lifetime']), $newl, COOKIE_PATH)) {
+                       // This will be displayed on welcome page! :-)
+                       if (empty($LAST['module'])) {
+                               $LAST['module'] = $mod; $LAST['online'] = $onl;
+                       }
+                       if (empty($GLOBALS['what'])) {
+                               $GLOBALS['what'] = "welcome";
+                       }
+
+                       // Update last module / online time
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET last_module='%s', last_online=UNIX_TIMESTAMP() WHERE userid=%d LIMIT 1",
+                        array($GLOBALS['what'], $GLOBALS['userid']), __FILE__, __LINE__);
+               }
+       }
+        else
+       {
+               // Destroy session, we cannot update!
+               @setcookie("userid", "", time() - 3600, COOKIE_PATH);
+               @setcookie("u_hash", "", time() - 3600, COOKIE_PATH);
+               @setcookie("lifetime", "0", time() - 3600, COOKIE_PATH);
+       }
+}
+//
+function VALIDATE_MENU_ACTION ($MODE, $act, $wht, $UPDATE=false)
+{
+       global $link;
+       $ret = false;
+       $ADD = "";
+       if ((!IS_ADMIN()) && ($MODE != "admin")) $ADD = " AND locked='N'";
+       //* DEBUG: */ echo __LINE__.":".$MODE."/".$act."/".$wht."*<br />\n";
+       if (($MODE != "admin") && ($UPDATE))
+       {
+               // Update guest or member menu
+               $SQL = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_%s_menu SET counter=counter+1 WHERE action='%s' AND what='%s'".$ADD." LIMIT 1",
+                array($MODE, $act, $wht), __FILE__, __LINE__, false);
+       }
+        elseif ($wht != "overview")
+       {
+               // Other actions
+               $SQL = SQL_QUERY_ESC("SELECT id, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s'".$ADD." ORDER BY action DESC LIMIT 1",
+                array($MODE, $act), __FILE__, __LINE__, false);
+       }
+        else
+       {
+               // Admin login overview
+               $SQL = SQL_QUERY_ESC("SELECT id, what FROM "._MYSQL_PREFIX."_%s_menu WHERE action='%s' AND what=''".$ADD." ORDER BY action DESC LIMIT 1",
+                array($MODE, $act), __FILE__, __LINE__, false);
+       }
+
+       // Run SQL command
+       $result = SQL_QUERY($SQL, __FILE__, __LINE__);
+       if ($UPDATE)
+       {
+               if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 1) $ret = true;
+               //* DEBUG: */ debug_print_backtrace();
+       }
+        else
+       {
+               if (SQL_NUMROWS($result) == 1) {
+                       list($id, $wht2) = SQL_FETCHROW($result);
+                       //* DEBUG: */ echo __LINE__."+".$SQL."+<br />\n";
+                       //* DEBUG: */ echo __LINE__."*".$id."/".$wht."/".$wht2."*<br />\n";
+                       $ret = true;
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+       //* DEBUG: */ var_dump($ret);
+       return $ret;
+}
+//
+function GET_MOD_DESCR($MODE, $wht)
+{
+       if (empty($wht)) $wht = "welcome";
+       $ret = "??? (".$wht.")";
+       $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_%s_menu WHERE what='%s' LIMIT 1", array($MODE, $wht), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               list($ret) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+       return $ret;
+}
+//
+function SEND_MODE_MAILS($mod, $modes)
+{
+       global $_COOKIE, $_POST, $CONFIG, $DATA;
+       // Load hash
+       $result_main = SQL_QUERY("SELECT password FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_main) == 1)
+       {
+               // Load hash and extract salt
+               list($hash) = SQL_FETCHROW($result_main);
+               $salt = substr($hash, 0, -40);
+
+               // Now let's compare passwords
+               $hash = generateHash($_POST['pass1'], $salt);
+               if (($hash == $_COOKIE['u_hash']) || ($_POST['pass1'] == $_POST['pass2']))
+               {
+                       // Load user's data
+                       $result = SQL_QUERY_ESC("SELECT sex, surname, family, street_nr, country, zip, city, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND password='%s' LIMIT 1",
+                        array($GLOBALS['userid'], $hash), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               $DATA = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+                               $DATA[0] = TRANSLATE_SEX($DATA[0]);
+                               switch ($mod)
+                               {
+                               case "mydata":
+                                       foreach ($modes as $mode)
+                                       {
+                                               switch ($mode)
+                                               {
+                                               case "normal": break; // Do not add any special lines
+
+                                               case "email": // Email was changed!
+                                                       $content = MEMBER_CHANGED_EMAIL.": ".$_POST['old_addy']."\n";
+                                                       break;
+
+                                               case "pass": // Password was changed
+                                                       $content = MEMBER_CHANGED_PASS."\n";
+                                                       break;
+
+                                               default:
+                                                       $content = MEMBER_UNKNOWN_MODE.": ".$mode."\n\n";
+                                                       break;
+                                               }
+                                       }
+
+                                       if (EXT_IS_ACTIVE("country"))
+                                       {
+                                               // Replace code with description
+                                               $DATA[4] = COUNTRY_GENERATE_INFO($_POST['country_code']);
+                                       }
+
+                                       // Load template
+                                       $msg = LOAD_EMAIL_TEMPLATE("member_mydata_notify", $content, $GLOBALS['userid']);
+
+                                       if ($CONFIG['admin_notify'] == "Y")
+                                       {
+                                               // The admin needs to be notified about a profile change
+                                               $msg_admin = "admin_mydata_notify";
+                                               $sub_adm = ADMIN_CHANGED_DATA;
+                                       }
+                                        else
+                                       {
+                                               // No mail to admin
+                                               $msg_admin = "";
+                                               $sub_adm = "";
+                                       }
+
+                                       // Set subject lines
+                                       $sub_mem = MEMBER_CHANGED_DATA;
+
+                                       // Output success message
+                                       $content = "<STRONG><SPAN class=\"member_done\">".MYDATA_MAIL_SENT."</SPAN></STRONG>";
+                                       break;
+
+                               default:
+                                       $content = "<STRONG><SPAN class=\"member_failed\">".UNKNOWN_MODULE."</SPAN></STRONG>";
+                                       break;
+                               }
+                       }
+                        else
+                       {
+                               // Could not load profile data
+                               $content = "<STRONG><SPAN class=\"member_failed\">".MEMBER_CANNOT_LOAD_PROFILE."</SPAN></STRONG>";
+                       }
+               }
+                else
+               {
+                       // Passwords mismatch
+                       $content = "<STRONG><SPAN class=\"member_failed\">".MEMBER_PASSWORD_ERROR."</SPAN></STRONG>";
+               }
+       }
+        else
+       {
+               // Could not load profile
+               $content = "<STRONG><SPAN class=\"member_failed\">".MEMBER_CANNOT_LOAD_PROFILE."</SPAN></STRONG>";
+       }
+       if ((!empty($sub_mem)) && (!empty($msg)))
+       {
+               // Send member mail
+               SEND_EMAIL($DATA[7], $sub_mem, $msg);
+       }
+       if ((!empty($sub_adm)) && (!empty($msg_admin)))
+       {
+               // Send admin mail
+               if (GET_EXT_VERSION("admins") >= "0.4.1")
+               {
+                       SEND_ADMIN_EMAILS_PRO($sub_adm, $msg_admin, $content, $GLOBALS['userid']);
+               }
+                else
+               {
+                       SEND_ADMIN_EMAILS($sub_adm, LOAD_EMAIL_TEMPLATE($msg_admin, $content, $GLOBALS['userid']));
+               }
+       }
+        elseif ($CONFIG['admin_notify'] == "Y")
+       {
+               // Cannot send mails to admin!
+               $content = CANNOT_SEND_ADMIN_MAILS;
+       }
+        else
+       {
+               // No mail to admin
+               $content = "<STRONG><SPAN class=\"member_done\">".MYDATA_MAIL_SENT."</SPAN></STRONG>";
+       }
+
+       // Load template
+       LOAD_TEMPLATE("admin_settings_saved", false, $content);
+}
+// Update module counter
+function COUNT_MODULE($mod)
+{
+       if ($mod != "css")
+       {
+               // Do count all other modules but not accesses on CSS file css.php!
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_mod_reg SET clicks=clicks+1 WHERE module='%s' LIMIT 1",
+                array($mod), __FILE__, __LINE__);
+       }
+}
+// Get action value from mode (admin/guest/member) and what-value
+function GET_ACTION ($MODE, &$wht)
+{
+       global $ret; $ret = "";
+       //* DEBUG: */ echo __LINE__."=".$MODE."/".$wht."/".$GLOBALS['action']."=<br>";
+       if ((empty($wht)) && ($MODE != "admin"))
+       {
+               $wht = "welcome";
+       }
+       if ($MODE == "admin")
+       {
+               // Action value for admin area
+               if (!empty($GLOBALS['action']))
+               {
+                       // Get it directly from URL
+                       return $GLOBALS['action'];
+               }
+                elseif (($wht == "overview") || (empty($GLOBALS['what'])))
+               {
+                       // Default value for admin area
+                       $ret = "login";
+               }
+       }
+        elseif (!empty($GLOBALS['action']))
+       {
+               // Fix welcome value
+               if (empty($wht)) $wht = "welcome";
+               return $GLOBALS['action'];
+       }
+        else
+       {
+               // Everything else will be touched after checking the module has a menu assigned
+       }
+       //* DEBUG: */ echo __LINE__."*".$ret."*<br />\n";
+
+       if (MODULE_HAS_MENU($MODE))
+       {
+               // Rewriting modules to menu
+               switch ($MODE)
+               {
+                       case "index": $MODE = "guest";  break;
+                       case "login": $MODE = "member"; break;
+                               break;
+               }
+
+               // Guest and member menu is "main" as the default
+               if (empty($ret)) $ret = "main";
+
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT action FROM "._MYSQL_PREFIX."_%s_menu WHERE what='%s' LIMIT 1",
+                array($MODE, $wht), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Load action value and pray that this one is the right you want... ;-)
+                       list($ret) = SQL_FETCHROW($result);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+
+       // Return action value
+       return $ret;
+}
+//
+function GET_CATEGORY ($cid)
+{
+       $ret = _CATEGORY_404;
+       $result = SQL_QUERY_ESC("SELECT cat FROM "._MYSQL_PREFIX."_cats WHERE id=%d LIMIT 1", array($cid), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Category found... :-)
+               list($ret) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+       return $ret;
+}
+//
+function GET_PAYMENT ($pid, $full=false)
+{
+       $ret = _PAYMENT_404;
+       $result = SQL_QUERY_ESC("SELECT mail_title, price FROM "._MYSQL_PREFIX."_payments WHERE id=%d LIMIT 1", array($pid), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Payment type found... :-)
+               if (!$full)
+               {
+                       // Return only title
+                       list($ret) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // Return title and price
+                       list($t, $p) = SQL_FETCHROW($result);
+                       $ret = $t." / ".TRANSLATE_COMMA($p)." ".POINTS;
+               }
+       }
+       return $ret;
+}
+//
+function GET_PAY_POINTS($pid, $DATA="price")
+{
+       $ret = "-1";
+       $result = SQL_QUERY_ESC("SELECT %s FROM "._MYSQL_PREFIX."_payments WHERE id=%d LIMIT 1", array($DATA, $pid), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Payment type found... :-)
+               list($ret) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+       }
+       return $ret;
+}
+// Remove a receiver's ID from $ARRAY and add a link for him to confirm
+function REMOVE_RECEIVER(&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=false)
+{
+       $ret = "failed";
+       if ($uid > 0)
+       {
+               // Remove entry from array
+               unset($ARRAY[$key]);
+
+               // Is there already a line for this user available?
+               if ($stats_id > 0)
+               {
+                       // Only when we got a real stats ID continue searching for the entry
+                       $TYPE = "NORMAL"; $ROW = "stats_id";
+                       if ($bonus) { $TYPE = "BONUS"; $ROW = "bonus_id"; }
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_links WHERE %s='%s' AND userid=%d AND link_type='%s' LIMIT 1",
+                        array($ROW, $stats_id, bigintval($uid), $TYPE), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 0)
+                       {
+                               // No, so we add one!
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_links (%s, userid, link_type) VALUES ('%s', '%s', '%s')",
+                                array($ROW, $stats_id, bigintval($uid), $TYPE), __FILE__, __LINE__);
+                               $ret = "done";
+                       }
+                        else
+                       {
+                               // Already found
+                               $ret = "already";
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
+       }
+       // Return status for sending routine
+       return $ret;
+}
+//
+function GET_TOTAL_DATA($SEARCH, $TABLE, $DATA, $WHERE="userid", $ONLY_ROWS=false)
+{
+       $ret = "0";
+       if ($ONLY_ROWS)
+       {
+               // Count rows
+               $result = SQL_QUERY_ESC("SELECT COUNT(%s) FROM "._MYSQL_PREFIX."_%s WHERE %s='%s'",
+                array($DATA, $TABLE, $WHERE, $SEARCH), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Add all rows
+               $result = SQL_QUERY_ESC("SELECT SUM(%s) FROM "._MYSQL_PREFIX."_%s WHERE %s='%s'",
+                array($DATA, $TABLE, $WHERE, $SEARCH), __FILE__, __LINE__);
+       }
+       // Load row
+       list($ret) = SQL_FETCHROW($result);
+       //* DEBUG: */ echo __LINE__."*".$DATA."/".$SEARCH."/".$TABLE."/".$ret."*<br />\n";
+       SQL_FREERESULT($result);
+       if (empty($ret)) {
+               if (($DATA == "counter") || ($DATA == "id")) {
+                       $ret = "0";
+               } else {
+                       $ret = "0.00000";
+               }
+       }
+       return $ret;
+}
+/**
+ *
+ * Dynamic referral system, can also send mails!
+ *
+ * uid         = Referral ID wich should receive...
+ * points      = ... xxx points
+ * send_notify = shall I send the referral an email or not?
+ * refid       = inc/modules/guest/what-confirm.php need this
+ * locked      = Shall I pay it to normal (false) or locked (true) points ammount?
+ * add_mode    = Add points only to $uid or also refs? (WARNING! Changing "ref" to "direct"
+ *               will cause no referral will get points ever!!!)
+ */
+function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref")
+{
+       global $DEPTH, $_GET, $CONFIG, $DATA, $link;
+
+       // When $uid = 0 add points to jackpot
+       if ($uid == "0")
+       {
+               // Add points to jackpot
+               ADD_JACKPOT($points);
+               return;
+       }
+
+       // Count up referral depth
+       if (empty($DEPTH))
+       {
+               // Initialialize referral system
+               $DEPTH = "0";
+       }
+        else
+       {
+               // Increase referral level
+               $DEPTH++;
+       }
+
+       // Which points, locked or normal?
+       $data = "points"; if ($locked) $data = "locked_points";
+
+       $result_user = SQL_QUERY_ESC("SELECT refid, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+        array(bigintval($uid)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result_user) == 1)
+       {
+               // This is the user and his ref
+               list ($ref, $email) = SQL_FETCHROW($result_user);
+               SQL_FREERESULT($result_user);
+               $result = SQL_QUERY_ESC("SELECT percents FROM "._MYSQL_PREFIX."_refdepths WHERE level='%s' LIMIT 1",
+                array(bigintval($DEPTH)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       list($per) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       $P = $points * $per / 100;
+
+                       // Update points...
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET %s=%s+%s WHERE userid=%d AND ref_depth='%s' LIMIT 1",
+                        array($data, $data, $P, bigintval($uid), bigintval($DEPTH)), __FILE__, __LINE__);
+                       if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 0)
+                       {
+                               // First ref in this level! :-)
+                               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_points (userid, ref_depth, %s) VALUES ('%s', '%s', '%s')",
+                                array($data, bigintval($uid), bigintval($DEPTH), $P), __FILE__, __LINE__);
+                       }
+
+                       // Update mediadata as well
+                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                       {
+                               // Update database
+                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $P);
+                       }
+
+                       // Points updated, maybe I shall send him an email?
+                       if (($send_notify) && ($ref > 0) && (!$locked))
+                       {
+                               //              0                1      2              3
+                               $DATA = array($per, bigintval($DEPTH), $P, bigintval($ref));
+                               $msg = LOAD_EMAIL_TEMPLATE("confirm-referral", "", bigintval($uid));
+
+                               SEND_EMAIL($email, THANX_REFERRAL_ONE, $msg);
+                       }
+
+                       // Maybe there's another ref?
+                       if (($ref > 0) && ($points > 0) && ($ref != $uid) && ($add_mode == "ref"))
+                       {
+                               // Then let's credit him here...
+                               ADD_POINTS_REFSYSTEM($ref, $points, $send_notify, $ref, $locked);
+                       }
+               }
+       }
+}
+//
+function UPDATE_REF_COUNTER($uid)
+{
+       global $REF_LVL, $link, $CACHE;
+       // Make it sure referral level zero (member him-/herself) is at least selected
+       if (empty($REF_LVL)) $REF_LVL = "0";
+
+       // Update counter
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_refsystem SET counter=counter+1 WHERE userid=%d AND level='%s' LIMIT 1",
+        array(bigintval($uid), $REF_LVL), __FILE__, __LINE__);
+
+       // When no entry was updated then we have to create it here
+       if (SQL_AFFECTEDROWS($link) == 0)
+       {
+               // First count!
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_refsystem (userid, level, counter) VALUES ('%s', '%s', '1')",
+                array(bigintval($uid), $REF_LVL), __FILE__, __LINE__);
+       }
+
+       // Check for his referral
+       $result = SQL_QUERY_ESC("SELECT refid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array(bigintval($uid)), __FILE__, __LINE__);
+       list($ref) = SQL_FETCHROW($result);
+
+       // Free memory
+       SQL_FREERESULT($result);
+
+       // When he has a referral...
+       if (($ref > 0) && ($ref != $uid))
+       {
+               // Move to next referral level and count his counter one up!
+               $REF_LVL++; UPDATE_REF_COUNTER($ref);
+       }
+        elseif ((($ref == $uid) || ($ref == 0)) && (GET_EXT_VERSION("cache") >= "0.1.2"))
+       {
+               // Remove cache here
+               if ($CACHE->cache_file("refsystem", true)) $CACHE->cache_destroy();
+       }
+}
+//
+function UPDATE_ONLINE_LIST($SID, $mod, $act, $wht)
+{
+       global $_COOKIE, $_SERVER, $link, $_GET, $CONFIG;
+       // Do not update online list when extension is deactivated
+       if (!EXT_IS_ACTIVE("online", true)) return;
+
+       // Initialize variables
+       $uid = "0"; $rid = "0"; $MEM = "N"; $ADMIN = "N";
+       if (!empty($GLOBALS['userid']))
+       {
+               // Update member status only when userid is valid
+               if (($GLOBALS['userid'] > 0) && (IS_LOGGED_IN()))
+               {
+                       // Is valid user
+                       $uid = $GLOBALS['userid'];
+                       $MEM = "Y";
+               }
+       }
+       if (IS_ADMIN())
+       {
+               // Is administrator
+               $ADMIN = "Y";
+       }
+       if (!empty($_COOKIE['refid']))
+       {
+               // Check cookie
+               if ($_COOKIE['refid'] > 0) $rid = $GLOBALS['refid'];
+       }
+
+       // Now Read data
+       $result = SQL_QUERY_ESC("SELECT timestamp FROM "._MYSQL_PREFIX."_online
+WHERE sid='%s' LIMIT 1",
+ array($SID), __FILE__, __LINE__);
+
+       if (SQL_NUMROWS($result) == 1)
+       {
+               SQL_FREERESULT($result);
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_online SET
+module='%s',
+action='%s',
+what='%s',
+userid=%d,
+refid=%d,
+is_member='%s',
+is_admin='%s',
+timestamp=UNIX_TIMESTAMP()
+WHERE sid='%s' LIMIT 1",
+ array(
+       $mod,
+       $act,
+       $wht,
+       bigintval($uid),
+       bigintval($rid),
+       $MEM,
+       $ADMIN,
+       $SID
+), __FILE__, __LINE__);
+       }
+        else
+       {
+               // No entry does exists so we simply add it!
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_online (module, action, what, userid, refid, is_member, is_admin, timestamp, sid, ip) VALUES ('%s', '%s', '%s', %d, %d, '%s', '%s', UNIX_TIMESTAMP(), '%s', '%s')",
+                array($mod, $act, $wht, bigintval($uid), bigintval($rid), $MEM, $ADMIN, $SID, getenv('REMOTE_ADDR')), __FILE__, __LINE__);
+       }
+
+       // Purge old entries
+       $TIMEOUT = time() - $CONFIG['online_timeout'];
+       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_online WHERE timestamp <= %d",
+        array($TIMEOUT), __FILE__, __LINE__);
+}
+// OBSULETE: Sends out mail to all administrators
+function SEND_ADMIN_EMAILS($subj, $msg)
+{
+       $result = SQL_QUERY("SELECT email FROM "._MYSQL_PREFIX."_admins ORDER BY id", __FILE__, __LINE__);
+       while (list($email) = SQL_FETCHROW($result))
+       {
+               SEND_EMAIL($email, $subj, $msg);
+       }
+       // Really simple... ;-)
+       SQL_FREERESULT($result);
+}
+// Get ID number from administrator's login name
+function GET_ADMIN_ID($login)
+{
+       global $ADMINS;
+       $ret = "-1";
+       if (!empty($ADMINS['aid'][$login]))
+       {
+               // Check cache
+               $ret = $ADMINS['aid'][$login];
+               if (empty($ret)) $ret = "-1";
+       }
+        else
+       {
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+                array($login), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       list($ret) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+       }
+       return $ret;
+}
+//
+// Get password hash from administrator's login name
+function GET_ADMIN_HASH($login)
+{
+       global $ADMINS;
+       $ret = "-1";
+       if (!empty($ADMINS['password'][$login]))
+       {
+               // Check cache
+               $ret = $ADMINS['password'][$login];
+               if (empty($ret)) $ret = "-1";
+       }
+        else
+       {
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
+                array($login), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       list($ret) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+       }
+       return $ret;
+}
+//
+function GET_ADMIN_LOGIN($aid)
+{
+       global $ADMINS;
+       $ret = "***";
+       if (!empty($ADMINS['login']['aid']))
+       {
+               // Check cache
+               if (!empty($ADMINS['login'][$aid]))     $ret = $ADMINS['login'][$aid];
+               if (empty($ret)) $ret = "***";
+       }
+        else
+       {
+               // Load from database
+               $result = SQL_QUERY_ESC("SELECT login FROM "._MYSQL_PREFIX."_admins WHERE id=%d LIMIT 1",
+                array(bigintval($aid)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Fetch data
+                       list($ret) = SQL_FETCHROW($result);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+       return $ret;
+}
+//
+function ADD_OPTION_LINES($table, $id, $name, $default="",$special="",$where="")
+{
+       $ret = "";
+       if ($table == "/ARRAY/")
+       {
+               // Selection from array
+               if (is_array($id) && is_array($name) && sizeof($id) == sizeof($name))
+               {
+                       // Both are arrays
+                       foreach ($id as $idx=>$value)
+                       {
+                               $ret .= "<OPTION value=\"".$value."\"";
+                               if ($default == $value) $ret .= " selected checked";
+                               $ret .= ">".$name[$idx]."</OPTION>\n";
+                       }
+               }
+       }
+        else
+       {
+               // Data from database
+               $SPEC = ", ".$id;
+               if (!empty($special)) $SPEC = ", ".$special;
+               $ORDER = $name.$SPEC;
+               if ($table == "country") $ORDER = $special;
+               $result = SQL_QUERY_ESC("SELECT %s, %s".$SPEC." FROM "._MYSQL_PREFIX."_%s ".$where." ORDER BY %s",
+                array($id, $ORDER, $table, $name), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) > 0)
+               {
+                       // Found data so add them as OPTION lines: $id is the value and $name is the "name" of the option
+                       while (list($value, $title, $add) = SQL_FETCHROW($result))
+                       {
+                               if (empty($special)) $add = "";
+                               $ret .= "<OPTION value=\"".$value."\"";
+                               if ($default == $value) $ret .= " selected checked";
+                               if (!empty($add)) $add = " (".$add.")";
+                               $ret .= ">".$title.$add."</OPTION>\n";
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // No data found
+                       $ret = "<OPTION value=\"x\">".SELECT_NONE."</OPTION>\n";
+               }
+       }
+       // Return - hopefully - the requested data
+       return $ret;
+}
+// Aiut
+function activateExchange() {
+       global $CONFIG;
+       $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND max_mails > 0", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) >= $CONFIG['activate_xchange'])
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Activate System
+               $SQLs = array(
+                       "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', mem_only='Y' WHERE module='order' LIMIT 1",
+                       "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='order' OR what='unconfirmed' LIMIT 2",
+                       "UPDATE "._MYSQL_PREFIX."_config SET activate_xchange='0' WHERE config='0' LIMIT 1"
+               );
+
+               // Run SQLs
+               foreach ($SQLs as $sql)
+               {
+                       $result = SQL_QUERY($sql, __FILE__, __LINE__);
+               }
+
+               // Destroy cache
+       }
+}
+//
+function DELETE_USER_ACCOUNT($uid, $reason)
+{
+       $POINTS = 0;
+       $result = SQL_QUERY_ESC("SELECT (SUM(p.points) - d.used_points) AS points
+FROM "._MYSQL_PREFIX."_user_points AS p
+LEFT JOIN "._MYSQL_PREFIX."_user_data AS d
+ON p.userid=d.userid
+WHERE p.userid=%d", array(bigintval($uid)), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Save his points to add them to the jackpot
+               list($POINTS) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+
+               // Delete points entries as well
+               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_points WHERE userid=%d", array(bigintval($uid)), __FILE__, __LINE__);
+
+               // Update mediadata as well
+               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+               {
+                       // Update database
+                       MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);
+               }
+
+               // Now, when we have all his points adds them do the jackpot!
+               ADD_JACKPOT($POINTS);
+       }
+
+       // Delete category selections as well...
+       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_cats WHERE userid=%d",
+        array(bigintval($uid)), __FILE__, __LINE__);
+
+       // Remove from rallye if found
+       if (EXT_IS_ACTIVE("rallye"))
+       {
+               $result = SQL_QUERY("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_users WHERE userid=%d",
+                array(bigintval($uid)), __FILE__, __LINE__);
+       }
+
+       // Now a mail to the user and that's all...
+       $msg = LOAD_EMAIL_TEMPLATE("del-user", stripslashes($reason), $uid);
+       SEND_EMAIL($uid, ADMIN_DEL_ACCOUNT, $msg);
+
+       // Ok, delete the account!
+       $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__);
+}
+//
+function META_DESCRIPTION($mod, $wht)
+{
+       global $CONFIG, $DEPTH;
+       if (($mod != "admin") && ($mod != "login"))
+       {
+               // Exclude admin and member's area
+               $DESCR = MAIN_TITLE." ".trim($CONFIG['title_middle'])." ".ADD_DESCR("guest", "what-".$wht, true);
+               unset($DEPTH);
+               OUTPUT_HTML ("<META name=\"description\" content=\"".$DESCR."\">\n");
+       }
+}
+//
+function ADD_JACKPOT($points)
+{
+       $result = SQL_QUERY("SELECT points FROM "._MYSQL_PREFIX."_jackpot WHERE ok='ok' LIMIT 1", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Create line
+               $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_jackpot (ok, points) VALUES ('ok', '%s')", array($points), __FILE__, __LINE__);
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Update points
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points+%s WHERE ok='ok' LIMIT 1",
+                array($points), __FILE__, __LINE__);
+       }
+}
+//
+function SUB_JACKPOT($points)
+{
+       // First failed
+       $ret = "-1";
+
+       // Get current points
+       $result = SQL_QUERY("SELECT points FROM "._MYSQL_PREFIX."_jackpot WHERE ok='ok' LIMIT 1", __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 0)
+       {
+               // Create line
+               $result = SQL_QUERY("INSERT INTO "._MYSQL_PREFIX."_jackpot (ok, points) VALUES ('ok', '0.00000')", __FILE__, __LINE__);
+       }
+        else
+       {
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Read points
+               list($jackpot) = SQL_FETCHROW($result);
+               if ($jackpot >= $points)
+               {
+                       // Update points when there are enougth points in jackpot
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1", array($points), __FILE__, __LINE__);
+                       $ret = $jackpot - $points;
+               }
+       }
+}
+//
+function IS_DEMO()
+{
+       global $_COOKIE;
+       return ((EXT_IS_ACTIVE("demo")) && ($_COOKIE['admin_login'] == "demo"));
+}
+//
+function LOAD_CONFIG($no="0")
+{
+       global $CFG_CACHE, $CONFIG;
+       $CFG_DUMMY = false;
+       // Check for cache extension, cache-array and if the requested configuration is in cache
+       if ((is_array($CFG_CACHE)) && (isset($CFG_CACHE['config'][$no])))
+       {
+               // Load config from cache
+               $CFG_DUMMY = array();
+               foreach ($CFG_CACHE as $element=>$cfgs)
+               {
+                       $CFG_DUMMY[$element] = $cfgs[$no];
+               }
+
+               // Count cache hits
+               $CONFIG['cache_hits']++;
+       }
+        else
+       {
+               // Load config from DB
+               $result_config = SQL_QUERY_ESC("SELECT * FROM "._MYSQL_PREFIX."_config WHERE config='%d' LIMIT 1",
+                array(bigintval($no)), __FILE__, __LINE__);
+               $CFG_DUMMY = SQL_FETCHARRAY($result_config);
+               SQL_FREERESULT($result_config);
+       }
+
+       // Return config array
+       return $CFG_DUMMY;
+}
+// Gets the matching what name from module
+function GET_WHAT($MOD_CHECK)
+{
+       $wht = "";
+       //* DEBUG: */ echo __LINE__."!".$MOD_CHECK."!<br />\n";
+       switch ($MOD_CHECK)
+       {
+       case "admin":
+               $wht = "overview";
+               break;
+
+       case "login":
+       case "index":
+               $wht = "welcome";
+               break;
+
+       default:
+               $wht = "";
+               break;
+       }
+
+       // Return what value
+       return $wht;
+}
+//
+function MODULE_HAS_MENU($mod)
+{
+       global $EXTENSIONS, $MODULES, $CONFIG;
+
+       // All is false by default
+       $ret = false;
+       if (GET_EXT_VERSION("cache") >= "0.1.2")
+       {
+               if (isset($MODULES['has_menu'][$mod]))
+               {
+                       // Check module cache and count hit
+                       if ($MODULES['has_menu'][$mod] == "Y") $ret = true;
+                       $CONFIG['cache_hits']++;
+               }
+                elseif (isset($EXTENSIONS['ext_menu'][$mod]))
+               {
+                       // Check cache and count hit
+                       if ($EXTENSIONS['ext_menu'][$mod] == "Y") $ret = true;
+                       $CONFIG['cache_hits']++;
+               }
+       }
+       if ((GET_EXT_VERSION("sql_patches") >= "0.3.6") && ($ret === false))
+       {
+               // Check database for entry
+               $result = SQL_QUERY_ESC("SELECT has_menu FROM "._MYSQL_PREFIX."_mod_reg WHERE module='%s' LIMIT 1",
+                array($mod), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       list($has_menu) = SQL_FETCHROW($result);
+                       if ($has_menu == "Y") $ret = true;
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       } elseif (GET_EXT_VERSION("sql_patches") == "") {
+               // No sql_patches installed, so maybe in admin area?
+               if ((IS_ADMIN()) && ($mod == "admin")) return true; // Then there is a menu!
+       }
+
+       // Return status
+       return $ret;
+}
+//
+?>
diff --git a/0.2.1/inc/patch-system.php b/0.2.1/inc/patch-system.php
new file mode 100644 (file)
index 0000000..04b0099
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/05/2005 *
+ * ===============                              Last change: 03/05/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : patch-system.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Handles patch level                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Verwalyet die Patch-Level                        *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Check for patch level differences between databases and current hard-coded
+if (CURR_PATCH_LEVEL > $CONFIG['patch_level'])
+{
+       // Update database and CONFIG array
+       $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET patch_level='".CURR_PATCH_LEVEL."', patch_ctime=UNIX_TIMESTAMP() WHERE config='0' LIMIT 1",
+        __FILE__, __LINE__);
+       $CONFIG['patch_level'] = CURR_PATCH_LEVEL;
+       $CONFIG['patch_ctime'] = time();
+
+       // Destroy cache
+       if (GET_EXT_VERSION("cache") >= "0.1.2")
+       {
+               if ($CACHE->cache_file("config", true))
+               {
+                       // Replace data
+                       $CACHE->cache_replace("patch_level", $CONFIG['patch_level'], "0", $CFG_CACHE);
+                       $CACHE->cache_replace("patch_ctime", $CONFIG['patch_ctime'], "0", $CFG_CACHE);
+               }
+       }
+}
+
+//
+?>
diff --git a/0.2.1/inc/phpmailer/ChangeLog.txt b/0.2.1/inc/phpmailer/ChangeLog.txt
new file mode 100644 (file)
index 0000000..acf4eb3
--- /dev/null
@@ -0,0 +1,252 @@
+ChangeLog
+
+Version 2.0.0 (Sun, Dec 02 2007)
+* implemented updated EncodeQP (thanks to coolbru, aka Marcus Bointon)
+* finished all testing, all known bugs corrected, enhancements tested
+- note: designed for PHP4, but will work with PHP5 (not compatible with
+  E_STRICT) ... full PHP5 version of PHPMailer released separately. 
+  PHP5 version will NOT work with PHP4.
+
+Version 2.0.0 rc2 (Fri, Nov 16 2007), interim release
+* implements new property to control VERP in class.smtp.php
+  example (requires instantiating class.smtp.php):
+  $mail->do_verp = true;
+* POP-before-SMTP functionality included, thanks to Richard Davey
+  (see class.pop3.php & pop3_before_smtp_test.php for examples)
+* included example showing how to use PHPMailer with GMAIL
+* fixed the missing Cc in SendMail() and Mail()
+
+******************
+A note on sending bulk emails:
+
+If the email you are sending is not personalized, consider using the 
+"undisclosed-recipient:;" strategy. That is, put all of your recipients
+in the Bcc field and set the To field to "undisclosed-recipients:;". 
+It's a lot faster (only one send) and saves quite a bit on resources.
+Contrary to some opinions, this will not get you listed in spam engines -
+it's a legitimate way for you to send emails.
+
+A partial example for use with PHPMailer:
+
+$mail->AddAddress("undisclosed-recipients:;");
+$mail->AddBCC("email1@anydomain.com,email2@anyotherdomain.com,email3@anyalternatedomain.com");
+
+Many email service providers restrict the number of emails that can be sent
+in any given time period. Often that is between 50 - 60 emails maximum
+per hour or per send session.
+
+If that's the case, then break up your Bcc lists into chunks that are one
+less than your limit, and put a pause in your script.
+*******************
+
+Version 2.0.0 rc1 (Thu, Nov 08 2007), interim release
+* dramatically simplified using inline graphics ... it's fully automated and requires no user input
+* added automatic document type detection for attachments and pictures
+* added MsgHTML() function to replace Body tag for HTML emails
+* fixed the SendMail security issues (input validation vulnerability)
+* enhanced the AddAddresses functionality so that the "Name" portion is used in the email address
+* removed the need to use the AltBody method (set from the HTML, or default text used)
+* set the PHP Mail() function as the default (still support SendMail, SMTP Mail)
+* removed the need to set the IsHTML property (set automatically)
+* added Estonian language file by Indrek P&auml;ri
+* added header injection patch
+* added "set" method to permit users to create their own pseudo-properties like 'X-Headers', etc.
+  example of use:
+  $mail->set('X-Priority', '3');
+  $mail->set('X-MSMail-Priority', 'Normal');
+* fixed warning message in SMTP get_lines method
+* added TLS/SSL SMTP support
+  example of use:
+  $mail = new PHPMailer();
+       $mail->Mailer = "smtp";
+       $mail->Host = "smtp.example.com";
+       $mail->SMTPSecure   = "tls"; // option
+       //$mail->SMTPSecure   = "ssl";  // option
+       ...
+  $mail->Send();
+* PHPMailer has been tested with PHP4 (4.4.7) and PHP5 (5.2.7)
+* Works with PHP installed as a module or as CGI-PHP
+- NOTE: will NOT work with PHP5 in E_STRICT error mode
+
+Version 1.73 (Sun, Jun 10 2005)
+* Fixed denial of service bug: http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
+* Now has a total of 20 translations
+* Fixed alt attachments bug: http://tinyurl.com/98u9k
+
+Version 1.72 (Wed, May 25 2004)
+* Added Dutch, Swedish, Czech, Norwegian, and Turkish translations.
+* Received: Removed this method because spam filter programs like 
+SpamAssassin reject this header.
+* Fixed error count bug.
+* SetLanguage default is now "language/".
+* Fixed magic_quotes_runtime bug.
+
+Version 1.71 (Tue, Jul 28 2003)
+* Made several speed enhancements
+* Added German and Italian translation files
+* Fixed HELO/AUTH bugs on keep-alive connects
+* Now provides an error message if language file does not load
+* Fixed attachment EOL bug
+* Updated some unclear documentation
+* Added additional tests and improved others
+
+Version 1.70 (Mon, Jun 20 2003)
+* Added SMTP keep-alive support
+* Added IsError method for error detection
+* Added error message translation support (SetLanguage)
+* Refactored many methods to increase library performance
+* Hello now sends the newer EHLO message before HELO as per RFC 2821
+* Removed the boundary class and replaced it with GetBoundary
+* Removed queue support methods
+* New $Hostname variable
+* New Message-ID header
+* Received header reformat
+* Helo variable default changed to $Hostname
+* Removed extra spaces in Content-Type definition (#667182)
+* Return-Path should be set to Sender when set
+* Adds Q or B encoding to headers when necessary
+* quoted-encoding should now encode NULs \000
+* Fixed encoding of body/AltBody (#553370)
+* Adds "To: undisclosed-recipients:;" when all recipients are hidden (BCC)
+* Multiple bug fixes
+
+Version 1.65 (Fri, Aug 09 2002)
+* Fixed non-visible attachment bug (#585097) for Outlook
+* SMTP connections are now closed after each transaction
+* Fixed SMTP::Expand return value
+* Converted SMTP class documentation to phpDocumentor format
+
+Version 1.62 (Wed, Jun 26 2002)
+* Fixed multi-attach bug
+* Set proper word wrapping
+* Reduced memory use with attachments
+* Added more debugging
+* Changed documentation to phpDocumentor format
+
+Version 1.60 (Sat, Mar 30 2002)
+* Sendmail pipe and address patch (Christian Holtje)
+* Added embedded image and read confirmation support (A. Ognio)
+* Added unit tests
+* Added SMTP timeout support (*nix only)
+* Added possibly temporary PluginDir variable for SMTP class
+* Added LE message line ending variable
+* Refactored boundary and attachment code
+* Eliminated SMTP class warnings
+* Added SendToQueue method for future queuing support
+
+Version 1.54 (Wed, Dec 19 2001)
+* Add some queuing support code
+* Fixed a pesky multi/alt bug
+* Messages are no longer forced to have "To" addresses
+
+Version 1.50 (Thu, Nov 08 2001)
+* Fix extra lines when not using SMTP mailer
+* Set WordWrap variable to int with a zero default
+
+Version 1.47 (Tue, Oct 16 2001)
+* Fixed Received header code format
+* Fixed AltBody order error
+* Fixed alternate port warning
+
+Version 1.45 (Tue, Sep 25 2001)
+* Added enhanced SMTP debug support
+* Added support for multiple ports on SMTP
+* Added Received header for tracing
+* Fixed AddStringAttachment encoding
+* Fixed possible header name quote bug
+* Fixed wordwrap() trim bug
+* Couple other small bug fixes
+
+Version 1.41 (Wed, Aug 22 2001)
+* Fixed AltBody bug w/o attachments
+* Fixed rfc_date() for certain mail servers
+
+Version 1.40 (Sun, Aug 12 2001)
+* Added multipart/alternative support (AltBody)
+* Documentation update
+* Fixed bug in Mercury MTA
+
+Version 1.29 (Fri, Aug 03 2001)
+* Added AddStringAttachment() method
+* Added SMTP authentication support
+
+Version 1.28 (Mon, Jul 30 2001)
+* Fixed a typo in SMTP class
+* Fixed header issue with Imail (win32) SMTP server
+* Made fopen() calls for attachments use "rb" to fix win32 error
+
+Version 1.25 (Mon, Jul 02 2001)
+* Added RFC 822 date fix (Patrice)
+* Added improved error handling by adding a $ErrorInfo variable
+* Removed MailerDebug variable (obsolete with new error handler)
+
+Version 1.20 (Mon, Jun 25 2001)
+* Added quoted-printable encoding (Patrice)
+* Set Version as public and removed PrintVersion()
+* Changed phpdoc to only display public variables and methods
+
+Version 1.19 (Thu, Jun 21 2001)
+* Fixed MS Mail header bug
+* Added fix for Bcc problem with mail(). *Does not work on Win32*
+  (See PHP bug report: http://www.php.net/bugs.php?id=11616)
+* mail() no longer passes a fifth parameter when not needed
+
+Version 1.15 (Fri, Jun 15 2001)
+[Note: these changes contributed by Patrice Fournier]
+* Changed all remaining \n to \r\n
+* Bcc: header no longer writen to message except
+when sent directly to sendmail
+* Added a small message to non-MIME compliant mail reader
+* Added Sender variable to change the Sender email
+used in -f for sendmail/mail and in 'MAIL FROM' for smtp mode
+* Changed boundary setting to a place it will be set only once
+* Removed transfer encoding for whole message when using multipart
+* Message body now uses Encoding in multipart messages
+* Can set encoding and type to attachments 7bit, 8bit
+and binary attachment are sent as is, base64 are encoded
+* Can set Encoding to base64 to send 8 bits body
+through 7 bits servers
+
+Version 1.10 (Tue, Jun 12 2001)
+* Fixed win32 mail header bug (printed out headers in message body)
+
+Version 1.09 (Fri, Jun 08 2001)
+* Changed date header to work with Netscape mail programs
+* Altered phpdoc documentation
+
+Version 1.08 (Tue, Jun 05 2001)
+* Added enhanced error-checking
+* Added phpdoc documentation to source
+
+Version 1.06 (Fri, Jun 01 2001)
+* Added optional name for file attachments
+
+Version 1.05 (Tue, May 29 2001)
+* Code cleanup
+* Eliminated sendmail header warning message
+* Fixed possible SMTP error
+
+Version 1.03 (Thu, May 24 2001)
+* Fixed problem where qmail sends out duplicate messages
+
+Version 1.02 (Wed, May 23 2001)
+* Added multiple recipient and attachment Clear* methods
+* Added Sendmail public variable
+* Fixed problem with loading SMTP library multiple times
+
+Version 0.98 (Tue, May 22 2001)
+* Fixed problem with redundant mail hosts sending out multiple messages
+* Added additional error handler code
+* Added AddCustomHeader() function
+* Added support for Microsoft mail client headers (affects priority)
+* Fixed small bug with Mailer variable
+* Added PrintVersion() function
+
+Version 0.92 (Tue, May 15 2001)
+* Changed file names to class.phpmailer.php and class.smtp.php to match
+  current PHP class trend.
+* Fixed problem where body not being printed when a message is attached
+* Several small bug fixes
+
+Version 0.90 (Tue, April 17 2001)
+* Intial public release
diff --git a/0.2.1/inc/phpmailer/LICENSE b/0.2.1/inc/phpmailer/LICENSE
new file mode 100644 (file)
index 0000000..03851a3
--- /dev/null
@@ -0,0 +1,504 @@
+                 GNU LESSER GENERAL PUBLIC LICENSE\r
+                      Version 2.1, February 1999\r
+\r
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.\r
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+[This is the first released version of the Lesser GPL.  It also counts\r
+ as the successor of the GNU Library Public License, version 2, hence\r
+ the version number 2.1.]\r
+\r
+                           Preamble\r
+\r
+  The licenses for most software are designed to take away your\r
+freedom to share and change it.  By contrast, the GNU General Public\r
+Licenses are intended to guarantee your freedom to share and change\r
+free software--to make sure the software is free for all its users.\r
+\r
+  This license, the Lesser General Public License, applies to some\r
+specially designated software packages--typically libraries--of the\r
+Free Software Foundation and other authors who decide to use it.  You\r
+can use it too, but we suggest you first think carefully about whether\r
+this license or the ordinary General Public License is the better\r
+strategy to use in any particular case, based on the explanations below.\r
+\r
+  When we speak of free software, we are referring to freedom of use,\r
+not price.  Our General Public Licenses are designed to make sure that\r
+you have the freedom to distribute copies of free software (and charge\r
+for this service if you wish); that you receive source code or can get\r
+it if you want it; that you can change the software and use pieces of\r
+it in new free programs; and that you are informed that you can do\r
+these things.\r
+\r
+  To protect your rights, we need to make restrictions that forbid\r
+distributors to deny you these rights or to ask you to surrender these\r
+rights.  These restrictions translate to certain responsibilities for\r
+you if you distribute copies of the library or if you modify it.\r
+\r
+  For example, if you distribute copies of the library, whether gratis\r
+or for a fee, you must give the recipients all the rights that we gave\r
+you.  You must make sure that they, too, receive or can get the source\r
+code.  If you link other code with the library, you must provide\r
+complete object files to the recipients, so that they can relink them\r
+with the library after making changes to the library and recompiling\r
+it.  And you must show them these terms so they know their rights.\r
+\r
+  We protect your rights with a two-step method: (1) we copyright the\r
+library, and (2) we offer you this license, which gives you legal\r
+permission to copy, distribute and/or modify the library.\r
+\r
+  To protect each distributor, we want to make it very clear that\r
+there is no warranty for the free library.  Also, if the library is\r
+modified by someone else and passed on, the recipients should know\r
+that what they have is not the original version, so that the original\r
+author's reputation will not be affected by problems that might be\r
+introduced by others.\r
+\r
+  Finally, software patents pose a constant threat to the existence of\r
+any free program.  We wish to make sure that a company cannot\r
+effectively restrict the users of a free program by obtaining a\r
+restrictive license from a patent holder.  Therefore, we insist that\r
+any patent license obtained for a version of the library must be\r
+consistent with the full freedom of use specified in this license.\r
+\r
+  Most GNU software, including some libraries, is covered by the\r
+ordinary GNU General Public License.  This license, the GNU Lesser\r
+General Public License, applies to certain designated libraries, and\r
+is quite different from the ordinary General Public License.  We use\r
+this license for certain libraries in order to permit linking those\r
+libraries into non-free programs.\r
+\r
+  When a program is linked with a library, whether statically or using\r
+a shared library, the combination of the two is legally speaking a\r
+combined work, a derivative of the original library.  The ordinary\r
+General Public License therefore permits such linking only if the\r
+entire combination fits its criteria of freedom.  The Lesser General\r
+Public License permits more lax criteria for linking other code with\r
+the library.\r
+\r
+  We call this license the "Lesser" General Public License because it\r
+does Less to protect the user's freedom than the ordinary General\r
+Public License.  It also provides other free software developers Less\r
+of an advantage over competing non-free programs.  These disadvantages\r
+are the reason we use the ordinary General Public License for many\r
+libraries.  However, the Lesser license provides advantages in certain\r
+special circumstances.\r
+\r
+  For example, on rare occasions, there may be a special need to\r
+encourage the widest possible use of a certain library, so that it becomes\r
+a de-facto standard.  To achieve this, non-free programs must be\r
+allowed to use the library.  A more frequent case is that a free\r
+library does the same job as widely used non-free libraries.  In this\r
+case, there is little to gain by limiting the free library to free\r
+software only, so we use the Lesser General Public License.\r
+\r
+  In other cases, permission to use a particular library in non-free\r
+programs enables a greater number of people to use a large body of\r
+free software.  For example, permission to use the GNU C Library in\r
+non-free programs enables many more people to use the whole GNU\r
+operating system, as well as its variant, the GNU/Linux operating\r
+system.\r
+\r
+  Although the Lesser General Public License is Less protective of the\r
+users' freedom, it does ensure that the user of a program that is\r
+linked with the Library has the freedom and the wherewithal to run\r
+that program using a modified version of the Library.\r
+\r
+  The precise terms and conditions for copying, distribution and\r
+modification follow.  Pay close attention to the difference between a\r
+"work based on the library" and a "work that uses the library".  The\r
+former contains code derived from the library, whereas the latter must\r
+be combined with the library in order to run.\r
+\r
+                 GNU LESSER GENERAL PUBLIC LICENSE\r
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
+\r
+  0. This License Agreement applies to any software library or other\r
+program which contains a notice placed by the copyright holder or\r
+other authorized party saying it may be distributed under the terms of\r
+this Lesser General Public License (also called "this License").\r
+Each licensee is addressed as "you".\r
+\r
+  A "library" means a collection of software functions and/or data\r
+prepared so as to be conveniently linked with application programs\r
+(which use some of those functions and data) to form executables.\r
+\r
+  The "Library", below, refers to any such software library or work\r
+which has been distributed under these terms.  A "work based on the\r
+Library" means either the Library or any derivative work under\r
+copyright law: that is to say, a work containing the Library or a\r
+portion of it, either verbatim or with modifications and/or translated\r
+straightforwardly into another language.  (Hereinafter, translation is\r
+included without limitation in the term "modification".)\r
+\r
+  "Source code" for a work means the preferred form of the work for\r
+making modifications to it.  For a library, complete source code means\r
+all the source code for all modules it contains, plus any associated\r
+interface definition files, plus the scripts used to control compilation\r
+and installation of the library.\r
+\r
+  Activities other than copying, distribution and modification are not\r
+covered by this License; they are outside its scope.  The act of\r
+running a program using the Library is not restricted, and output from\r
+such a program is covered only if its contents constitute a work based\r
+on the Library (independent of the use of the Library in a tool for\r
+writing it).  Whether that is true depends on what the Library does\r
+and what the program that uses the Library does.\r
+  \r
+  1. You may copy and distribute verbatim copies of the Library's\r
+complete source code as you receive it, in any medium, provided that\r
+you conspicuously and appropriately publish on each copy an\r
+appropriate copyright notice and disclaimer of warranty; keep intact\r
+all the notices that refer to this License and to the absence of any\r
+warranty; and distribute a copy of this License along with the\r
+Library.\r
+\r
+  You may charge a fee for the physical act of transferring a copy,\r
+and you may at your option offer warranty protection in exchange for a\r
+fee.\r
+\r
+  2. You may modify your copy or copies of the Library or any portion\r
+of it, thus forming a work based on the Library, and copy and\r
+distribute such modifications or work under the terms of Section 1\r
+above, provided that you also meet all of these conditions:\r
+\r
+    a) The modified work must itself be a software library.\r
+\r
+    b) You must cause the files modified to carry prominent notices\r
+    stating that you changed the files and the date of any change.\r
+\r
+    c) You must cause the whole of the work to be licensed at no\r
+    charge to all third parties under the terms of this License.\r
+\r
+    d) If a facility in the modified Library refers to a function or a\r
+    table of data to be supplied by an application program that uses\r
+    the facility, other than as an argument passed when the facility\r
+    is invoked, then you must make a good faith effort to ensure that,\r
+    in the event an application does not supply such function or\r
+    table, the facility still operates, and performs whatever part of\r
+    its purpose remains meaningful.\r
+\r
+    (For example, a function in a library to compute square roots has\r
+    a purpose that is entirely well-defined independent of the\r
+    application.  Therefore, Subsection 2d requires that any\r
+    application-supplied function or table used by this function must\r
+    be optional: if the application does not supply it, the square\r
+    root function must still compute square roots.)\r
+\r
+These requirements apply to the modified work as a whole.  If\r
+identifiable sections of that work are not derived from the Library,\r
+and can be reasonably considered independent and separate works in\r
+themselves, then this License, and its terms, do not apply to those\r
+sections when you distribute them as separate works.  But when you\r
+distribute the same sections as part of a whole which is a work based\r
+on the Library, the distribution of the whole must be on the terms of\r
+this License, whose permissions for other licensees extend to the\r
+entire whole, and thus to each and every part regardless of who wrote\r
+it.\r
+\r
+Thus, it is not the intent of this section to claim rights or contest\r
+your rights to work written entirely by you; rather, the intent is to\r
+exercise the right to control the distribution of derivative or\r
+collective works based on the Library.\r
+\r
+In addition, mere aggregation of another work not based on the Library\r
+with the Library (or with a work based on the Library) on a volume of\r
+a storage or distribution medium does not bring the other work under\r
+the scope of this License.\r
+\r
+  3. You may opt to apply the terms of the ordinary GNU General Public\r
+License instead of this License to a given copy of the Library.  To do\r
+this, you must alter all the notices that refer to this License, so\r
+that they refer to the ordinary GNU General Public License, version 2,\r
+instead of to this License.  (If a newer version than version 2 of the\r
+ordinary GNU General Public License has appeared, then you can specify\r
+that version instead if you wish.)  Do not make any other change in\r
+these notices.\r
+\r
+  Once this change is made in a given copy, it is irreversible for\r
+that copy, so the ordinary GNU General Public License applies to all\r
+subsequent copies and derivative works made from that copy.\r
+\r
+  This option is useful when you wish to copy part of the code of\r
+the Library into a program that is not a library.\r
+\r
+  4. You may copy and distribute the Library (or a portion or\r
+derivative of it, under Section 2) in object code or executable form\r
+under the terms of Sections 1 and 2 above provided that you accompany\r
+it with the complete corresponding machine-readable source code, which\r
+must be distributed under the terms of Sections 1 and 2 above on a\r
+medium customarily used for software interchange.\r
+\r
+  If distribution of object code is made by offering access to copy\r
+from a designated place, then offering equivalent access to copy the\r
+source code from the same place satisfies the requirement to\r
+distribute the source code, even though third parties are not\r
+compelled to copy the source along with the object code.\r
+\r
+  5. A program that contains no derivative of any portion of the\r
+Library, but is designed to work with the Library by being compiled or\r
+linked with it, is called a "work that uses the Library".  Such a\r
+work, in isolation, is not a derivative work of the Library, and\r
+therefore falls outside the scope of this License.\r
+\r
+  However, linking a "work that uses the Library" with the Library\r
+creates an executable that is a derivative of the Library (because it\r
+contains portions of the Library), rather than a "work that uses the\r
+library".  The executable is therefore covered by this License.\r
+Section 6 states terms for distribution of such executables.\r
+\r
+  When a "work that uses the Library" uses material from a header file\r
+that is part of the Library, the object code for the work may be a\r
+derivative work of the Library even though the source code is not.\r
+Whether this is true is especially significant if the work can be\r
+linked without the Library, or if the work is itself a library.  The\r
+threshold for this to be true is not precisely defined by law.\r
+\r
+  If such an object file uses only numerical parameters, data\r
+structure layouts and accessors, and small macros and small inline\r
+functions (ten lines or less in length), then the use of the object\r
+file is unrestricted, regardless of whether it is legally a derivative\r
+work.  (Executables containing this object code plus portions of the\r
+Library will still fall under Section 6.)\r
+\r
+  Otherwise, if the work is a derivative of the Library, you may\r
+distribute the object code for the work under the terms of Section 6.\r
+Any executables containing that work also fall under Section 6,\r
+whether or not they are linked directly with the Library itself.\r
+\r
+  6. As an exception to the Sections above, you may also combine or\r
+link a "work that uses the Library" with the Library to produce a\r
+work containing portions of the Library, and distribute that work\r
+under terms of your choice, provided that the terms permit\r
+modification of the work for the customer's own use and reverse\r
+engineering for debugging such modifications.\r
+\r
+  You must give prominent notice with each copy of the work that the\r
+Library is used in it and that the Library and its use are covered by\r
+this License.  You must supply a copy of this License.  If the work\r
+during execution displays copyright notices, you must include the\r
+copyright notice for the Library among them, as well as a reference\r
+directing the user to the copy of this License.  Also, you must do one\r
+of these things:\r
+\r
+    a) Accompany the work with the complete corresponding\r
+    machine-readable source code for the Library including whatever\r
+    changes were used in the work (which must be distributed under\r
+    Sections 1 and 2 above); and, if the work is an executable linked\r
+    with the Library, with the complete machine-readable "work that\r
+    uses the Library", as object code and/or source code, so that the\r
+    user can modify the Library and then relink to produce a modified\r
+    executable containing the modified Library.  (It is understood\r
+    that the user who changes the contents of definitions files in the\r
+    Library will not necessarily be able to recompile the application\r
+    to use the modified definitions.)\r
+\r
+    b) Use a suitable shared library mechanism for linking with the\r
+    Library.  A suitable mechanism is one that (1) uses at run time a\r
+    copy of the library already present on the user's computer system,\r
+    rather than copying library functions into the executable, and (2)\r
+    will operate properly with a modified version of the library, if\r
+    the user installs one, as long as the modified version is\r
+    interface-compatible with the version that the work was made with.\r
+\r
+    c) Accompany the work with a written offer, valid for at\r
+    least three years, to give the same user the materials\r
+    specified in Subsection 6a, above, for a charge no more\r
+    than the cost of performing this distribution.\r
+\r
+    d) If distribution of the work is made by offering access to copy\r
+    from a designated place, offer equivalent access to copy the above\r
+    specified materials from the same place.\r
+\r
+    e) Verify that the user has already received a copy of these\r
+    materials or that you have already sent this user a copy.\r
+\r
+  For an executable, the required form of the "work that uses the\r
+Library" must include any data and utility programs needed for\r
+reproducing the executable from it.  However, as a special exception,\r
+the materials to be distributed need not include anything that is\r
+normally distributed (in either source or binary form) with the major\r
+components (compiler, kernel, and so on) of the operating system on\r
+which the executable runs, unless that component itself accompanies\r
+the executable.\r
+\r
+  It may happen that this requirement contradicts the license\r
+restrictions of other proprietary libraries that do not normally\r
+accompany the operating system.  Such a contradiction means you cannot\r
+use both them and the Library together in an executable that you\r
+distribute.\r
+\r
+  7. You may place library facilities that are a work based on the\r
+Library side-by-side in a single library together with other library\r
+facilities not covered by this License, and distribute such a combined\r
+library, provided that the separate distribution of the work based on\r
+the Library and of the other library facilities is otherwise\r
+permitted, and provided that you do these two things:\r
+\r
+    a) Accompany the combined library with a copy of the same work\r
+    based on the Library, uncombined with any other library\r
+    facilities.  This must be distributed under the terms of the\r
+    Sections above.\r
+\r
+    b) Give prominent notice with the combined library of the fact\r
+    that part of it is a work based on the Library, and explaining\r
+    where to find the accompanying uncombined form of the same work.\r
+\r
+  8. You may not copy, modify, sublicense, link with, or distribute\r
+the Library except as expressly provided under this License.  Any\r
+attempt otherwise to copy, modify, sublicense, link with, or\r
+distribute the Library is void, and will automatically terminate your\r
+rights under this License.  However, parties who have received copies,\r
+or rights, from you under this License will not have their licenses\r
+terminated so long as such parties remain in full compliance.\r
+\r
+  9. You are not required to accept this License, since you have not\r
+signed it.  However, nothing else grants you permission to modify or\r
+distribute the Library or its derivative works.  These actions are\r
+prohibited by law if you do not accept this License.  Therefore, by\r
+modifying or distributing the Library (or any work based on the\r
+Library), you indicate your acceptance of this License to do so, and\r
+all its terms and conditions for copying, distributing or modifying\r
+the Library or works based on it.\r
+\r
+  10. Each time you redistribute the Library (or any work based on the\r
+Library), the recipient automatically receives a license from the\r
+original licensor to copy, distribute, link with or modify the Library\r
+subject to these terms and conditions.  You may not impose any further\r
+restrictions on the recipients' exercise of the rights granted herein.\r
+You are not responsible for enforcing compliance by third parties with\r
+this License.\r
+\r
+  11. If, as a consequence of a court judgment or allegation of patent\r
+infringement or for any other reason (not limited to patent issues),\r
+conditions are imposed on you (whether by court order, agreement or\r
+otherwise) that contradict the conditions of this License, they do not\r
+excuse you from the conditions of this License.  If you cannot\r
+distribute so as to satisfy simultaneously your obligations under this\r
+License and any other pertinent obligations, then as a consequence you\r
+may not distribute the Library at all.  For example, if a patent\r
+license would not permit royalty-free redistribution of the Library by\r
+all those who receive copies directly or indirectly through you, then\r
+the only way you could satisfy both it and this License would be to\r
+refrain entirely from distribution of the Library.\r
+\r
+If any portion of this section is held invalid or unenforceable under any\r
+particular circumstance, the balance of the section is intended to apply,\r
+and the section as a whole is intended to apply in other circumstances.\r
+\r
+It is not the purpose of this section to induce you to infringe any\r
+patents or other property right claims or to contest validity of any\r
+such claims; this section has the sole purpose of protecting the\r
+integrity of the free software distribution system which is\r
+implemented by public license practices.  Many people have made\r
+generous contributions to the wide range of software distributed\r
+through that system in reliance on consistent application of that\r
+system; it is up to the author/donor to decide if he or she is willing\r
+to distribute software through any other system and a licensee cannot\r
+impose that choice.\r
+\r
+This section is intended to make thoroughly clear what is believed to\r
+be a consequence of the rest of this License.\r
+\r
+  12. If the distribution and/or use of the Library is restricted in\r
+certain countries either by patents or by copyrighted interfaces, the\r
+original copyright holder who places the Library under this License may add\r
+an explicit geographical distribution limitation excluding those countries,\r
+so that distribution is permitted only in or among countries not thus\r
+excluded.  In such case, this License incorporates the limitation as if\r
+written in the body of this License.\r
+\r
+  13. The Free Software Foundation may publish revised and/or new\r
+versions of the Lesser General Public License from time to time.\r
+Such new versions will be similar in spirit to the present version,\r
+but may differ in detail to address new problems or concerns.\r
+\r
+Each version is given a distinguishing version number.  If the Library\r
+specifies a version number of this License which applies to it and\r
+"any later version", you have the option of following the terms and\r
+conditions either of that version or of any later version published by\r
+the Free Software Foundation.  If the Library does not specify a\r
+license version number, you may choose any version ever published by\r
+the Free Software Foundation.\r
+\r
+  14. If you wish to incorporate parts of the Library into other free\r
+programs whose distribution conditions are incompatible with these,\r
+write to the author to ask for permission.  For software which is\r
+copyrighted by the Free Software Foundation, write to the Free\r
+Software Foundation; we sometimes make exceptions for this.  Our\r
+decision will be guided by the two goals of preserving the free status\r
+of all derivatives of our free software and of promoting the sharing\r
+and reuse of software generally.\r
+\r
+                           NO WARRANTY\r
+\r
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\r
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\r
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\r
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY\r
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\r
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\r
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\r
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\r
+\r
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\r
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\r
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\r
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\r
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\r
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\r
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\r
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\r
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\r
+DAMAGES.\r
+\r
+                    END OF TERMS AND CONDITIONS\r
+\r
+           How to Apply These Terms to Your New Libraries\r
+\r
+  If you develop a new library, and you want it to be of the greatest\r
+possible use to the public, we recommend making it free software that\r
+everyone can redistribute and change.  You can do so by permitting\r
+redistribution under these terms (or, alternatively, under the terms of the\r
+ordinary General Public License).\r
+\r
+  To apply these terms, attach the following notices to the library.  It is\r
+safest to attach them to the start of each source file to most effectively\r
+convey the exclusion of warranty; and each file should have at least the\r
+"copyright" line and a pointer to where the full notice is found.\r
+\r
+    <one line to give the library's name and a brief idea of what it does.>\r
+    Copyright (C) <year>  <name of author>\r
+\r
+    This library is free software; you can redistribute it and/or\r
+    modify it under the terms of the GNU Lesser General Public\r
+    License as published by the Free Software Foundation; either\r
+    version 2.1 of the License, or (at your option) any later version.\r
+\r
+    This library is distributed in the hope that it will be useful,\r
+    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+    Lesser General Public License for more details.\r
+\r
+    You should have received a copy of the GNU Lesser General Public\r
+    License along with this library; if not, write to the Free Software\r
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+\r
+Also add information on how to contact you by electronic and paper mail.\r
+\r
+You should also get your employer (if you work as a programmer) or your\r
+school, if any, to sign a "copyright disclaimer" for the library, if\r
+necessary.  Here is a sample; alter the names:\r
+\r
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the\r
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.\r
+\r
+  <signature of Ty Coon>, 1 April 1990\r
+  Ty Coon, President of Vice\r
+\r
+That's all there is to it!\r
+\r
+\r
diff --git a/0.2.1/inc/phpmailer/README b/0.2.1/inc/phpmailer/README
new file mode 100644 (file)
index 0000000..900c630
--- /dev/null
@@ -0,0 +1,121 @@
+PHPMailer\r
+Full Featured Email Transfer Class for PHP\r
+==========================================\r
+\r
+** NOTE:\r
+\r
+As of November 2007, PHPMailer has a new project team headed by industry\r
+veteran Andy Prevost (codeworxtech). The first release in more than two\r
+years will focus on fixes, adding ease-of-use enhancements, provide\r
+basic compatibility with PHP4 and PHP5 using PHP5 backwards compatibility\r
+features. A new release is planned before year-end 2007 that will provide\r
+full compatiblity with PHP4 and PHP5, as well as more bug fixes.\r
+\r
+We are looking for project developers to assist in restoring PHPMailer to\r
+its leadership position. Our goals are to simplify use of PHPMailer, provide\r
+good documentation and examples, and retain backward compatibility to level\r
+1.7.3 standards.\r
+\r
+If you are interested in helping out, visit http://sourceforge.net/phpmailer \r
+and indicate your interest.\r
+\r
+**\r
+\r
+http://phpmailer.sourceforge.net/\r
+\r
+This software is licenced under the LGPL.  Please read LICENSE for information on the\r
+software availability and distribution.\r
+\r
+Class Features:\r
+- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs\r
+- Redundant SMTP servers\r
+- Multipart/alternative emails for mail clients that do not read HTML email\r
+- Support for 8bit, base64, binary, and quoted-printable encoding\r
+- Uses the same methods as the very popular AspEmail active server (COM) component\r
+- SMTP authentication\r
+- Native language support\r
+- Word wrap, and more!\r
+\r
+Why you might need it:\r
+\r
+Many PHP developers utilize email in their code.  The only PHP function\r
+that supports this is the mail() function.  However, it does not expose\r
+any of the popular features that many email clients use nowadays like\r
+HTML-based emails and attachments. There are two proprietary\r
+development tools out there that have all the functionality built into\r
+easy to use classes: AspEmail(tm) and AspMail.  Both of these\r
+programs are COM components only available on Windows.  They are also a\r
+little pricey for smaller projects.\r
+\r
+Since I do Linux development I\92ve missed these tools for my PHP coding.\r
+So I built a version myself that implements the same methods (object\r
+calls) that the Windows-based components do. It is open source and the\r
+LGPL license allows you to place the class in your proprietary PHP\r
+projects.\r
+\r
+\r
+Installation:\r
+\r
+Copy class.phpmailer.php into your php.ini include_path. If you are\r
+using the SMTP mailer then place class.smtp.php in your path as well.\r
+In the language directory you will find several files like \r
+phpmailer.lang-en.php.  If you look right before the .php extension \r
+that there are two letters.  These represent the language type of the \r
+translation file.  For instance "en" is the English file and "br" is \r
+the Portuguese file.  Chose the file that best fits with your language \r
+and place it in the PHP include path.  If your language is English \r
+then you have nothing more to do.  If it is a different language then \r
+you must point PHPMailer to the correct translation.  To do this, call \r
+the PHPMailer SetLanguage method like so:\r
+\r
+// To load the Portuguese version\r
+$mail->SetLanguage("br", "/optional/path/to/language/directory/");\r
+\r
+That's it.  You should now be ready to use PHPMailer!\r
+\r
+\r
+A Simple Example:\r
+\r
+<?php\r
+require("class.phpmailer.php");\r
+\r
+$mail = new PHPMailer();\r
+\r
+$mail->IsSMTP();                                      // set mailer to use SMTP\r
+$mail->Host = "smtp1.example.com;smtp2.example.com";  // specify main and backup server\r
+$mail->SMTPAuth = true;     // turn on SMTP authentication\r
+$mail->Username = "jswan";  // SMTP username\r
+$mail->Password = "secret"; // SMTP password\r
+\r
+$mail->From = "from@example.com";\r
+$mail->FromName = "Mailer";\r
+$mail->AddAddress("josh@example.net", "Josh Adams");\r
+$mail->AddAddress("ellen@example.com");                  // name is optional\r
+$mail->AddReplyTo("info@example.com", "Information");\r
+\r
+$mail->WordWrap = 50;                                 // set word wrap to 50 characters\r
+$mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments\r
+$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // optional name\r
+$mail->IsHTML(true);                                  // set email format to HTML\r
+\r
+$mail->Subject = "Here is the subject";\r
+$mail->Body    = "This is the HTML message body <b>in bold!</b>";\r
+$mail->AltBody = "This is the body in plain text for non-HTML mail clients";\r
+\r
+if(!$mail->Send())\r
+{\r
+   echo "Message could not be sent. <p>";\r
+   echo "Mailer Error: " . $mail->ErrorInfo;\r
+   exit;\r
+}\r
+\r
+echo "Message has been sent";\r
+?>\r
+\r
+CHANGELOG\r
+\r
+See ChangeLog.txt\r
+\r
+Download: http://sourceforge.net/project/showfiles.php?group_id=26031\r
+\r
+Andy Prevost\r
diff --git a/0.2.1/inc/phpmailer/class.phpmailer.php b/0.2.1/inc/phpmailer/class.phpmailer.php
new file mode 100644 (file)
index 0000000..3ca9f7c
--- /dev/null
@@ -0,0 +1,1718 @@
+<?php
+/*~ class.phpmailer.php
+.---------------------------------------------------------------------------.
+|  Software: PHPMailer - PHP email class                                    |
+|   Version: 2.0.0 rc3                                                      |
+|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  |
+|      Info: http://phpmailer.sourceforge.net                               |
+|   Support: http://sourceforge.net/projects/phpmailer/                     |
+| ------------------------------------------------------------------------- |
+|    Author: Andy Prevost (project admininistrator)                         |
+|    Author: Brent R. Matzelle (original founder)                           |
+| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved.               |
+| Copyright (c) 2001-2003, Brent R. Matzelle                                |
+| ------------------------------------------------------------------------- |
+|   License: Distributed under the Lesser General Public License (LGPL)     |
+|            http://www.gnu.org/copyleft/lesser.html                        |
+| This program is distributed in the hope that it will be useful - WITHOUT  |
+| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     |
+| FITNESS FOR A PARTICULAR PURPOSE.                                         |
+| ------------------------------------------------------------------------- |
+| We offer a number of paid services (www.codeworxtech.com):                |
+| - Web Hosting on highly optimized fast and secure servers                 |
+| - Technology Consulting                                                   |
+| - Oursourcing (highly qualified programmers and graphic designers)        |
+'---------------------------------------------------------------------------'
+
+/**
+ * PHPMailer - PHP email transport class
+ * @package PHPMailer
+ * @author Andy Prevost
+ * @copyright 2004 - 2007 Andy Prevost
+ */
+
+class PHPMailer {
+
+  /////////////////////////////////////////////////
+  // PROPERTIES, PUBLIC
+  /////////////////////////////////////////////////
+
+  /**
+   * Email priority (1 = High, 3 = Normal, 5 = low).
+   * @var int
+   */
+  var $Priority          = 3;
+
+  /**
+   * Sets the CharSet of the message.
+   * @var string
+   */
+  var $CharSet           = 'iso-8859-1';
+
+  /**
+   * Sets the Content-type of the message.
+   * @var string
+   */
+  var $ContentType        = 'text/plain';
+
+  /**
+   * Sets the Encoding of the message. Options for this are "8bit",
+   * "7bit", "binary", "base64", and "quoted-printable".
+   * @var string
+   */
+  var $Encoding          = '8bit';
+
+  /**
+   * Holds the most recent mailer error message.
+   * @var string
+   */
+  var $ErrorInfo         = '';
+
+  /**
+   * Sets the From email address for the message.
+   * @var string
+   */
+  var $From              = 'root@localhost';
+
+  /**
+   * Sets the From name of the message.
+   * @var string
+   */
+  var $FromName          = 'Root User';
+
+  /**
+   * Sets the Sender email (Return-Path) of the message.  If not empty,
+   * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
+   * @var string
+   */
+  var $Sender            = '';
+
+  /**
+   * Sets the Subject of the message.
+   * @var string
+   */
+  var $Subject           = '';
+
+  /**
+   * Sets the Body of the message.  This can be either an HTML or text body.
+   * If HTML then run IsHTML(true).
+   * @var string
+   */
+  var $Body              = '';
+
+  /**
+   * Sets the text-only body of the message.  This automatically sets the
+   * email to multipart/alternative.  This body can be read by mail
+   * clients that do not have HTML email capability such as mutt. Clients
+   * that can read HTML will view the normal Body.
+   * @var string
+   */
+  var $AltBody           = '';
+
+  /**
+   * Sets word wrapping on the body of the message to a given number of
+   * characters.
+   * @var int
+   */
+  var $WordWrap          = 0;
+
+  /**
+   * Method to send mail: ("mail", "sendmail", or "smtp").
+   * @var string
+   */
+  var $Mailer            = 'mail';
+
+  /**
+   * Sets the path of the sendmail program.
+   * @var string
+   */
+  var $Sendmail          = '/usr/sbin/sendmail';
+
+  /**
+   * Path to PHPMailer plugins.  This is now only useful if the SMTP class
+   * is in a different directory than the PHP include path.
+   * @var string
+   */
+  var $PluginDir         = '';
+
+  /**
+   * Holds PHPMailer version.
+   * @var string
+   */
+  var $Version           = "2.0.0 rc3";
+
+  /**
+   * Sets the email address that a reading confirmation will be sent.
+   * @var string
+   */
+  var $ConfirmReadingTo  = '';
+
+  /**
+   * Sets the hostname to use in Message-Id and Received headers
+   * and as default HELO string. If empty, the value returned
+   * by SERVER_NAME is used or 'localhost.localdomain'.
+   * @var string
+   */
+  var $Hostname          = '';
+
+  /////////////////////////////////////////////////
+  // PROPERTIES FOR SMTP
+  /////////////////////////////////////////////////
+
+  /**
+   * Sets the SMTP hosts.  All hosts must be separated by a
+   * semicolon.  You can also specify a different port
+   * for each host by using this format: [hostname:port]
+   * (e.g. "smtp1.example.com:25;smtp2.example.com").
+   * Hosts will be tried in order.
+   * @var string
+   */
+  var $Host        = 'localhost';
+
+  /**
+   * Sets the default SMTP server port.
+   * @var int
+   */
+  var $Port        = 25;
+
+  /**
+   * Sets the SMTP HELO of the message (Default is $Hostname).
+   * @var string
+   */
+  var $Helo        = '';
+
+  /**
+   * Sets connection prefix.
+   * Options are "", "ssl" or "tls"
+   * @var string
+   */
+  var $SMTPSecure = "";
+
+  /**
+   * Sets SMTP authentication. Utilizes the Username and Password variables.
+   * @var bool
+   */
+  var $SMTPAuth     = false;
+
+  /**
+   * Sets SMTP username.
+   * @var string
+   */
+  var $Username     = '';
+
+  /**
+   * Sets SMTP password.
+   * @var string
+   */
+  var $Password     = '';
+
+  /**
+   * Sets the SMTP server timeout in seconds. This function will not
+   * work with the win32 version.
+   * @var int
+   */
+  var $Timeout      = 10;
+
+  /**
+   * Sets SMTP class debugging on or off.
+   * @var bool
+   */
+  var $SMTPDebug    = false;
+
+  /**
+   * Prevents the SMTP connection from being closed after each mail
+   * sending.  If this is set to true then to close the connection
+   * requires an explicit call to SmtpClose().
+   * @var bool
+   */
+  var $SMTPKeepAlive = false;
+
+  /**
+   * Provides the ability to have the TO field process individual
+   * emails, instead of sending to entire TO addresses
+   * @var bool
+   */
+  var $SingleTo = false;
+
+  /////////////////////////////////////////////////
+  // PROPERTIES, PRIVATE
+  /////////////////////////////////////////////////
+
+  var $smtp            = NULL;
+  var $to              = array();
+  var $cc              = array();
+  var $bcc             = array();
+  var $ReplyTo         = array();
+  var $attachment      = array();
+  var $CustomHeader    = array();
+  var $message_type    = '';
+  var $boundary        = array();
+  var $language        = array();
+  var $error_count     = 0;
+  var $LE              = "\n";
+
+  /////////////////////////////////////////////////
+  // METHODS, VARIABLES
+  /////////////////////////////////////////////////
+
+  /**
+   * Sets message type to HTML.
+   * @param bool $bool
+   * @return void
+   */
+  function IsHTML($bool) {
+    if($bool == true) {
+      $this->ContentType = 'text/html';
+    } else {
+      $this->ContentType = 'text/plain';
+    }
+  }
+
+  /**
+   * Sets Mailer to send message using SMTP.
+   * @return void
+   */
+  function IsSMTP() {
+    $this->Mailer = 'smtp';
+  }
+
+  /**
+   * Sets Mailer to send message using PHP mail() function.
+   * @return void
+   */
+  function IsMail() {
+    $this->Mailer = 'mail';
+  }
+
+  /**
+   * Sets Mailer to send message using the $Sendmail program.
+   * @return void
+   */
+  function IsSendmail() {
+    $this->Mailer = 'sendmail';
+  }
+
+  /**
+   * Sets Mailer to send message using the qmail MTA.
+   * @return void
+   */
+  function IsQmail() {
+    $this->Sendmail = '/var/qmail/bin/sendmail';
+    $this->Mailer = 'sendmail';
+  }
+
+  /////////////////////////////////////////////////
+  // METHODS, RECIPIENTS
+  /////////////////////////////////////////////////
+
+  /**
+   * Adds a "To" address.
+   * @param string $address
+   * @param string $name
+   * @return void
+   */
+  function AddAddress($address, $name = '') {
+    $cur = count($this->to);
+    $this->to[$cur][0] = trim($address);
+    $this->to[$cur][1] = $name;
+  }
+
+  /**
+   * Adds a "Cc" address. Note: this function works
+   * with the SMTP mailer on win32, not with the "mail"
+   * mailer.
+   * @param string $address
+   * @param string $name
+   * @return void
+   */
+  function AddCC($address, $name = '') {
+    $cur = count($this->cc);
+    $this->cc[$cur][0] = trim($address);
+    $this->cc[$cur][1] = $name;
+  }
+
+  /**
+   * Adds a "Bcc" address. Note: this function works
+   * with the SMTP mailer on win32, not with the "mail"
+   * mailer.
+   * @param string $address
+   * @param string $name
+   * @return void
+   */
+  function AddBCC($address, $name = '') {
+    $cur = count($this->bcc);
+    $this->bcc[$cur][0] = trim($address);
+    $this->bcc[$cur][1] = $name;
+  }
+
+  /**
+   * Adds a "Reply-To" address.
+   * @param string $address
+   * @param string $name
+   * @return void
+   */
+  function AddReplyTo($address, $name = '') {
+    $cur = count($this->ReplyTo);
+    $this->ReplyTo[$cur][0] = trim($address);
+    $this->ReplyTo[$cur][1] = $name;
+  }
+
+  /////////////////////////////////////////////////
+  // METHODS, MAIL SENDING
+  /////////////////////////////////////////////////
+
+  /**
+   * Creates message and assigns Mailer. If the message is
+   * not sent successfully then it returns false.  Use the ErrorInfo
+   * variable to view description of the error.
+   * @return bool
+   */
+  function Send() {
+    $header = '';
+    $body = '';
+    $result = true;
+
+    if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {
+      $this->SetError($this->Lang('provide_address'));
+      return false;
+    }
+
+    /* Set whether the message is multipart/alternative */
+    if(!empty($this->AltBody)) {
+      $this->ContentType = 'multipart/alternative';
+    }
+
+    $this->error_count = 0; // reset errors
+    $this->SetMessageType();
+    $header .= $this->CreateHeader();
+    $body = $this->CreateBody();
+
+    if($body == '') {
+      return false;
+    }
+
+    /* Choose the mailer */
+    switch($this->Mailer) {
+      case 'sendmail':
+        $result = $this->SendmailSend($header, $body);
+        break;
+      case 'smtp':
+        $result = $this->SmtpSend($header, $body);
+        break;
+      case 'mail':
+        $result = $this->MailSend($header, $body);
+        break;
+      default:
+        $result = $this->MailSend($header, $body);
+        break;
+        //$this->SetError($this->Mailer . $this->Lang('mailer_not_supported'));
+        //$result = false;
+        //break;
+    }
+
+    return $result;
+  }
+
+  /**
+   * Sends mail using the $Sendmail program.
+   * @access private
+   * @return bool
+   */
+  function SendmailSend($header, $body) {
+    if ($this->Sender != '') {
+      $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender));
+    } else {
+      $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail));
+    }
+
+    if(!@$mail = popen($sendmail, 'w')) {
+      $this->SetError($this->Lang('execute') . $this->Sendmail);
+      return false;
+    }
+
+    fputs($mail, $header);
+    fputs($mail, $body);
+
+    $result = pclose($mail) >> 8 & 0xFF;
+    if($result != 0) {
+      $this->SetError($this->Lang('execute') . $this->Sendmail);
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Sends mail using the PHP mail() function.
+   * @access private
+   * @return bool
+   */
+  function MailSend($header, $body) {
+
+    $to = '';
+    for($i = 0; $i < count($this->to); $i++) {
+      if($i != 0) { $to .= ', '; }
+      $to .= $this->AddrFormat($this->to[$i]);
+    }
+
+    $toArr = split(',', $to);
+
+    if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1) {
+      $old_from = ini_get('sendmail_from');
+      ini_set('sendmail_from', $this->Sender);
+      $params = sprintf("-oi -f %s", $this->Sender);
+      if ($this->SingleTo === true && count($toArr) > 1) {
+        foreach ($toArr as $key => $val) {
+          $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
+        }
+      } else {
+        $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
+      }
+    } else {
+      if ($this->SingleTo === true && count($toArr) > 1) {
+        foreach ($toArr as $key => $val) {
+          $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
+        }
+      } else {
+        $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header);
+      }
+    }
+
+    if (isset($old_from)) {
+      ini_set('sendmail_from', $old_from);
+    }
+
+    if(!$rt) {
+      $this->SetError($this->Lang('instantiate'));
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Sends mail via SMTP using PhpSMTP (Author:
+   * Chris Ryan).  Returns bool.  Returns false if there is a
+   * bad MAIL FROM, RCPT, or DATA input.
+   * @access private
+   * @return bool
+   */
+  function SmtpSend($header, $body) {
+    include_once($this->PluginDir . 'class.smtp.php');
+    $error = '';
+    $bad_rcpt = array();
+
+    if(!$this->SmtpConnect()) {
+      return false;
+    }
+
+    $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender;
+    if(!$this->smtp->Mail($smtp_from)) {
+      $error = $this->Lang('from_failed') . $smtp_from;
+      $this->SetError($error);
+      $this->smtp->Reset();
+      return false;
+    }
+
+    /* Attempt to send attach all recipients */
+    for($i = 0; $i < count($this->to); $i++) {
+      if(!$this->smtp->Recipient($this->to[$i][0])) {
+        $bad_rcpt[] = $this->to[$i][0];
+      }
+    }
+    for($i = 0; $i < count($this->cc); $i++) {
+      if(!$this->smtp->Recipient($this->cc[$i][0])) {
+        $bad_rcpt[] = $this->cc[$i][0];
+      }
+    }
+    for($i = 0; $i < count($this->bcc); $i++) {
+      if(!$this->smtp->Recipient($this->bcc[$i][0])) {
+        $bad_rcpt[] = $this->bcc[$i][0];
+      }
+    }
+
+    if(count($bad_rcpt) > 0) { // Create error message
+      for($i = 0; $i < count($bad_rcpt); $i++) {
+        if($i != 0) {
+          $error .= ', ';
+        }
+        $error .= $bad_rcpt[$i];
+      }
+      $error = $this->Lang('recipients_failed') . $error;
+      $this->SetError($error);
+      $this->smtp->Reset();
+      return false;
+    }
+
+    if(!$this->smtp->Data($header . $body)) {
+      $this->SetError($this->Lang('data_not_accepted'));
+      $this->smtp->Reset();
+      return false;
+    }
+    if($this->SMTPKeepAlive == true) {
+      $this->smtp->Reset();
+    } else {
+      $this->SmtpClose();
+    }
+
+    return true;
+  }
+
+  /**
+   * Initiates a connection to an SMTP server.  Returns false if the
+   * operation failed.
+   * @access private
+   * @return bool
+   */
+  function SmtpConnect() {
+    if($this->smtp == NULL) {
+      $this->smtp = new SMTP();
+    }
+
+    $this->smtp->do_debug = $this->SMTPDebug;
+    $hosts = explode(';', $this->Host);
+    $index = 0;
+    $connection = ($this->smtp->Connected());
+
+    /* Retry while there is no connection */
+    while($index < count($hosts) && $connection == false) {
+      $hostinfo = array();
+      if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) {
+        $host = $hostinfo[1];
+        $port = $hostinfo[2];
+      } else {
+        $host = $hosts[$index];
+        $port = $this->Port;
+      }
+
+      if($this->smtp->Connect(((!empty($this->SMTPSecure))?$this->SMTPSecure.'://':'').$host, $port, $this->Timeout)) {
+        if ($this->Helo != '') {
+          $this->smtp->Hello($this->Helo);
+        } else {
+          $this->smtp->Hello($this->ServerHostname());
+        }
+
+        $connection = true;
+        if($this->SMTPAuth) {
+          if(!$this->smtp->Authenticate($this->Username, $this->Password)) {
+            $this->SetError($this->Lang('authenticate'));
+            $this->smtp->Reset();
+            $connection = false;
+          }
+        }
+      }
+      $index++;
+    }
+    if(!$connection) {
+      $this->SetError($this->Lang('connect_host'));
+    }
+
+    return $connection;
+  }
+
+  /**
+   * Closes the active SMTP session if one exists.
+   * @return void
+   */
+  function SmtpClose() {
+    if($this->smtp != NULL) {
+      if($this->smtp->Connected()) {
+        $this->smtp->Quit();
+        $this->smtp->Close();
+      }
+    }
+  }
+
+  /**
+   * Sets the language for all class error messages.  Returns false
+   * if it cannot load the language file.  The default language type
+   * is English.
+   * @param string $lang_type Type of language (e.g. Portuguese: "br")
+   * @param string $lang_path Path to the language file directory
+   * @access public
+   * @return bool
+   */
+  function SetLanguage($lang_type, $lang_path = 'language/') {
+    if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) {
+      include($lang_path.'phpmailer.lang-'.$lang_type.'.php');
+    } elseif (file_exists($lang_path.'phpmailer.lang-en.php')) {
+      include($lang_path.'phpmailer.lang-en.php');
+    } else {
+      $this->SetError('Could not load language file');
+      return false;
+    }
+    $this->language = $PHPMAILER_LANG;
+
+    return true;
+  }
+
+  /////////////////////////////////////////////////
+  // METHODS, MESSAGE CREATION
+  /////////////////////////////////////////////////
+
+  /**
+   * Creates recipient headers.
+   * @access private
+   * @return string
+   */
+  function AddrAppend($type, $addr) {
+    $addr_str = $type . ': ';
+    $addr_str .= $this->AddrFormat($addr[0]);
+    if(count($addr) > 1) {
+      for($i = 1; $i < count($addr); $i++) {
+        $addr_str .= ', ' . $this->AddrFormat($addr[$i]);
+      }
+    }
+    $addr_str .= $this->LE;
+
+    return $addr_str;
+  }
+
+  /**
+   * Formats an address correctly.
+   * @access private
+   * @return string
+   */
+  function AddrFormat($addr) {
+    if(empty($addr[1])) {
+      $formatted = $this->SecureHeader($addr[0]);
+    } else {
+      $formatted = $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">";
+    }
+
+    return $formatted;
+  }
+
+  /**
+   * Wraps message for use with mailers that do not
+   * automatically perform wrapping and for quoted-printable.
+   * Original written by philippe.
+   * @access private
+   * @return string
+   */
+  function WrapText($message, $length, $qp_mode = false) {
+    $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE;
+
+    $message = $this->FixEOL($message);
+    if (substr($message, -1) == $this->LE) {
+      $message = substr($message, 0, -1);
+    }
+
+    $line = explode($this->LE, $message);
+    $message = '';
+    for ($i=0 ;$i < count($line); $i++) {
+      $line_part = explode(' ', $line[$i]);
+      $buf = '';
+      for ($e = 0; $e<count($line_part); $e++) {
+        $word = $line_part[$e];
+        if ($qp_mode and (strlen($word) > $length)) {
+          $space_left = $length - strlen($buf) - 1;
+          if ($e != 0) {
+            if ($space_left > 20) {
+              $len = $space_left;
+              if (substr($word, $len - 1, 1) == '=') {
+                $len--;
+              } elseif (substr($word, $len - 2, 1) == '=') {
+                $len -= 2;
+              }
+              $part = substr($word, 0, $len);
+              $word = substr($word, $len);
+              $buf .= ' ' . $part;
+              $message .= $buf . sprintf("=%s", $this->LE);
+            } else {
+              $message .= $buf . $soft_break;
+            }
+            $buf = '';
+          }
+          while (strlen($word) > 0) {
+            $len = $length;
+            if (substr($word, $len - 1, 1) == '=') {
+              $len--;
+            } elseif (substr($word, $len - 2, 1) == '=') {
+              $len -= 2;
+            }
+            $part = substr($word, 0, $len);
+            $word = substr($word, $len);
+
+            if (strlen($word) > 0) {
+              $message .= $part . sprintf("=%s", $this->LE);
+            } else {
+              $buf = $part;
+            }
+          }
+        } else {
+          $buf_o = $buf;
+          $buf .= ($e == 0) ? $word : (' ' . $word);
+
+          if (strlen($buf) > $length and $buf_o != '') {
+            $message .= $buf_o . $soft_break;
+            $buf = $word;
+          }
+        }
+      }
+      $message .= $buf . $this->LE;
+    }
+
+    return $message;
+  }
+
+  /**
+   * Set the body wrapping.
+   * @access private
+   * @return void
+   */
+  function SetWordWrap() {
+    if($this->WordWrap < 1) {
+      return;
+    }
+
+    switch($this->message_type) {
+      case 'alt':
+        /* fall through */
+      case 'alt_attachments':
+        $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap);
+        break;
+      default:
+        $this->Body = $this->WrapText($this->Body, $this->WordWrap);
+        break;
+    }
+  }
+
+  /**
+   * Assembles message header.
+   * @access private
+   * @return string
+   */
+  function CreateHeader() {
+    $result = '';
+
+    /* Set the boundaries */
+    $uniq_id = md5(uniqid(time()));
+    $this->boundary[1] = 'b1_' . $uniq_id;
+    $this->boundary[2] = 'b2_' . $uniq_id;
+
+    $result .= $this->HeaderLine('Date', $this->RFCDate());
+    if($this->Sender == '') {
+      $result .= $this->HeaderLine('Return-Path', trim($this->From));
+    } else {
+      $result .= $this->HeaderLine('Return-Path', trim($this->Sender));
+    }
+
+    /* To be created automatically by mail() */
+    if($this->Mailer != 'mail') {
+      if(count($this->to) > 0) {
+        $result .= $this->AddrAppend('To', $this->to);
+      } elseif (count($this->cc) == 0) {
+        $result .= $this->HeaderLine('To', 'undisclosed-recipients:;');
+      }
+      if(count($this->cc) > 0) {
+        $result .= $this->AddrAppend('Cc', $this->cc);
+      }
+    }
+
+    $from = array();
+    $from[0][0] = trim($this->From);
+    $from[0][1] = $this->FromName;
+    $result .= $this->AddrAppend('From', $from);
+
+    /* sendmail and mail() extract Cc from the header before sending */
+    if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->cc) > 0)) {
+      $result .= $this->AddrAppend('Cc', $this->cc);
+    }
+
+    /* sendmail and mail() extract Bcc from the header before sending */
+    if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) {
+      $result .= $this->AddrAppend('Bcc', $this->bcc);
+    }
+
+    if(count($this->ReplyTo) > 0) {
+      $result .= $this->AddrAppend('Reply-To', $this->ReplyTo);
+    }
+
+    /* mail() sets the subject itself */
+    if($this->Mailer != 'mail') {
+      $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject)));
+    }
+
+    $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE);
+    $result .= $this->HeaderLine('X-Priority', $this->Priority);
+    $result .= $this->HeaderLine('X-Mailer', 'PHPMailer (phpmailer.sourceforge.net) [version ' . $this->Version . ']');
+
+    if($this->ConfirmReadingTo != '') {
+      $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>');
+    }
+
+    // Add custom headers
+    for($index = 0; $index < count($this->CustomHeader); $index++) {
+      $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1])));
+    }
+    $result .= $this->HeaderLine('MIME-Version', '1.0');
+
+    switch($this->message_type) {
+      case 'plain':
+        $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding);
+        $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet);
+        break;
+      case 'attachments':
+        /* fall through */
+      case 'alt_attachments':
+        if($this->InlineImageExists()){
+          $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 'multipart/related', $this->LE, $this->LE, $this->boundary[1], $this->LE);
+        } else {
+          $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;');
+          $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
+        }
+        break;
+      case 'alt':
+        $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;');
+        $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
+        break;
+    }
+
+    if($this->Mailer != 'mail') {
+      $result .= $this->LE.$this->LE;
+    }
+
+    return $result;
+  }
+
+  /**
+   * Assembles the message body.  Returns an empty string on failure.
+   * @access private
+   * @return string
+   */
+  function CreateBody() {
+    $result = '';
+
+    $this->SetWordWrap();
+
+    switch($this->message_type) {
+      case 'alt':
+        $result .= $this->GetBoundary($this->boundary[1], '', 'text/plain', '');
+        $result .= $this->EncodeString($this->AltBody, $this->Encoding);
+        $result .= $this->LE.$this->LE;
+        $result .= $this->GetBoundary($this->boundary[1], '', 'text/html', '');
+        $result .= $this->EncodeString($this->Body, $this->Encoding);
+        $result .= $this->LE.$this->LE;
+        $result .= $this->EndBoundary($this->boundary[1]);
+        break;
+      case 'plain':
+        $result .= $this->EncodeString($this->Body, $this->Encoding);
+        break;
+      case 'attachments':
+        $result .= $this->GetBoundary($this->boundary[1], '', '', '');
+        $result .= $this->EncodeString($this->Body, $this->Encoding);
+        $result .= $this->LE;
+        $result .= $this->AttachAll();
+        break;
+      case 'alt_attachments':
+        $result .= sprintf("--%s%s", $this->boundary[1], $this->LE);
+        $result .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE);
+        $result .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body
+        $result .= $this->EncodeString($this->AltBody, $this->Encoding);
+        $result .= $this->LE.$this->LE;
+        $result .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body
+        $result .= $this->EncodeString($this->Body, $this->Encoding);
+        $result .= $this->LE.$this->LE;
+        $result .= $this->EndBoundary($this->boundary[2]);
+        $result .= $this->AttachAll();
+        break;
+    }
+    if($this->IsError()) {
+      $result = '';
+    }
+
+    return $result;
+  }
+
+  /**
+   * Returns the start of a message boundary.
+   * @access private
+   */
+  function GetBoundary($boundary, $charSet, $contentType, $encoding) {
+    $result = '';
+    if($charSet == '') {
+      $charSet = $this->CharSet;
+    }
+    if($contentType == '') {
+      $contentType = $this->ContentType;
+    }
+    if($encoding == '') {
+      $encoding = $this->Encoding;
+    }
+    $result .= $this->TextLine('--' . $boundary);
+    $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet);
+    $result .= $this->LE;
+    $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding);
+    $result .= $this->LE;
+
+    return $result;
+  }
+
+  /**
+   * Returns the end of a message boundary.
+   * @access private
+   */
+  function EndBoundary($boundary) {
+    return $this->LE . '--' . $boundary . '--' . $this->LE;
+  }
+
+  /**
+   * Sets the message type.
+   * @access private
+   * @return void
+   */
+  function SetMessageType() {
+    if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) {
+      $this->message_type = 'plain';
+    } else {
+      if(count($this->attachment) > 0) {
+        $this->message_type = 'attachments';
+      }
+      if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) {
+        $this->message_type = 'alt';
+      }
+      if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) {
+        $this->message_type = 'alt_attachments';
+      }
+    }
+  }
+
+  /* Returns a formatted header line.
+   * @access private
+   * @return string
+   */
+  function HeaderLine($name, $value) {
+    return $name . ': ' . $value . $this->LE;
+  }
+
+  /**
+   * Returns a formatted mail line.
+   * @access private
+   * @return string
+   */
+  function TextLine($value) {
+    return $value . $this->LE;
+  }
+
+  /////////////////////////////////////////////////
+  // CLASS METHODS, ATTACHMENTS
+  /////////////////////////////////////////////////
+
+  /**
+   * Adds an attachment from a path on the filesystem.
+   * Returns false if the file could not be found
+   * or accessed.
+   * @param string $path Path to the attachment.
+   * @param string $name Overrides the attachment name.
+   * @param string $encoding File encoding (see $Encoding).
+   * @param string $type File extension (MIME) type.
+   * @return bool
+   */
+  function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {
+    if(!@is_file($path)) {
+      $this->SetError($this->Lang('file_access') . $path);
+      return false;
+    }
+
+    $filename = basename($path);
+    if($name == '') {
+      $name = $filename;
+    }
+
+    $cur = count($this->attachment);
+    $this->attachment[$cur][0] = $path;
+    $this->attachment[$cur][1] = $filename;
+    $this->attachment[$cur][2] = $name;
+    $this->attachment[$cur][3] = $encoding;
+    $this->attachment[$cur][4] = $type;
+    $this->attachment[$cur][5] = false; // isStringAttachment
+    $this->attachment[$cur][6] = 'attachment';
+    $this->attachment[$cur][7] = 0;
+
+    return true;
+  }
+
+  /**
+   * Attaches all fs, string, and binary attachments to the message.
+   * Returns an empty string on failure.
+   * @access private
+   * @return string
+   */
+  function AttachAll() {
+    /* Return text of body */
+    $mime = array();
+
+    /* Add all attachments */
+    for($i = 0; $i < count($this->attachment); $i++) {
+      /* Check for string attachment */
+      $bString = $this->attachment[$i][5];
+      if ($bString) {
+        $string = $this->attachment[$i][0];
+      } else {
+        $path = $this->attachment[$i][0];
+      }
+
+      $filename    = $this->attachment[$i][1];
+      $name        = $this->attachment[$i][2];
+      $encoding    = $this->attachment[$i][3];
+      $type        = $this->attachment[$i][4];
+      $disposition = $this->attachment[$i][6];
+      $cid         = $this->attachment[$i][7];
+
+      $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE);
+      $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE);
+      $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE);
+
+      if($disposition == 'inline') {
+        $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE);
+      }
+
+      $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $name, $this->LE.$this->LE);
+
+      /* Encode as string attachment */
+      if($bString) {
+        $mime[] = $this->EncodeString($string, $encoding);
+        if($this->IsError()) {
+          return '';
+        }
+        $mime[] = $this->LE.$this->LE;
+      } else {
+        $mime[] = $this->EncodeFile($path, $encoding);
+        if($this->IsError()) {
+          return '';
+        }
+        $mime[] = $this->LE.$this->LE;
+      }
+    }
+
+    $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE);
+
+    return join('', $mime);
+  }
+
+  /**
+   * Encodes attachment in requested format.  Returns an
+   * empty string on failure.
+   * @access private
+   * @return string
+   */
+  function EncodeFile ($path, $encoding = 'base64') {
+    if(!@$fd = fopen($path, 'rb')) {
+      $this->SetError($this->Lang('file_open') . $path);
+      return '';
+    }
+    $magic_quotes = get_magic_quotes_runtime();
+    set_magic_quotes_runtime(0);
+    $file_buffer = fread($fd, filesize($path));
+    $file_buffer = $this->EncodeString($file_buffer, $encoding);
+    fclose($fd);
+    set_magic_quotes_runtime($magic_quotes);
+
+    return $file_buffer;
+  }
+
+  /**
+   * Encodes string to requested format. Returns an
+   * empty string on failure.
+   * @access private
+   * @return string
+   */
+  function EncodeString ($str, $encoding = 'base64') {
+    $encoded = '';
+    switch(strtolower($encoding)) {
+      case 'base64':
+        /* chunk_split is found in PHP >= 3.0.6 */
+        $encoded = chunk_split(base64_encode($str), 76, $this->LE);
+        break;
+      case '7bit':
+      case '8bit':
+        $encoded = $this->FixEOL($str);
+        if (substr($encoded, -(strlen($this->LE))) != $this->LE)
+          $encoded .= $this->LE;
+        break;
+      case 'binary':
+        $encoded = $str;
+        break;
+      case 'quoted-printable':
+        $encoded = $this->EncodeQP($str);
+        break;
+      default:
+        $this->SetError($this->Lang('encoding') . $encoding);
+        break;
+    }
+    return $encoded;
+  }
+
+  /**
+   * Encode a header string to best of Q, B, quoted or none.
+   * @access private
+   * @return string
+   */
+  function EncodeHeader ($str, $position = 'text') {
+    $x = 0;
+
+    switch (strtolower($position)) {
+      case 'phrase':
+        if (!preg_match('/[\200-\377]/', $str)) {
+          /* Can't use addslashes as we don't know what value has magic_quotes_sybase. */
+          $encoded = addcslashes($str, "\0..\37\177\\\"");
+          if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) {
+            return ($encoded);
+          } else {
+            return ("\"$encoded\"");
+          }
+        }
+        $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches);
+        break;
+      case 'comment':
+        $x = preg_match_all('/[()"]/', $str, $matches);
+        /* Fall-through */
+      case 'text':
+      default:
+        $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches);
+        break;
+    }
+
+    if ($x == 0) {
+      return ($str);
+    }
+
+    $maxlen = 75 - 7 - strlen($this->CharSet);
+    /* Try to select the encoding which should produce the shortest output */
+    if (strlen($str)/3 < $x) {
+      $encoding = 'B';
+      $encoded = base64_encode($str);
+      $maxlen -= $maxlen % 4;
+      $encoded = trim(chunk_split($encoded, $maxlen, "\n"));
+    } else {
+      $encoding = 'Q';
+      $encoded = $this->EncodeQ($str, $position);
+      $encoded = $this->WrapText($encoded, $maxlen, true);
+      $encoded = str_replace('='.$this->LE, "\n", trim($encoded));
+    }
+
+    $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded);
+    $encoded = trim(str_replace("\n", $this->LE, $encoded));
+
+    return $encoded;
+  }
+
+  /**
+   * Encode string to quoted-printable.
+   * @access private
+   * @return string
+   */
+  function EncodeQP( $input = '', $line_max = 76, $space_conv = false ) {
+    $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
+    $lines = preg_split('/(?:\r\n|\r|\n)/', $input);
+    $eol = "\r\n";
+    $escape = '=';
+    $output = '';
+    while( list(, $line) = each($lines) ) {
+      $linlen = strlen($line);
+      $newline = '';
+      for($i = 0; $i < $linlen; $i++) {
+        $c = substr( $line, $i, 1 );
+        $dec = ord( $c );
+        if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E
+          $c = '=2E';
+        }
+        if ( $dec == 32 ) {
+          if ( $i == ( $linlen - 1 ) ) { // convert space at eol only
+            $c = '=20';
+          } else if ( $space_conv ) {
+            $c = '=20';
+          }
+        } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required
+          $h2 = floor($dec/16);
+          $h1 = floor($dec%16);
+          $c = $escape.$hex[$h2].$hex[$h1];
+        }
+        if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted
+          $output .= $newline.$escape.$eol; //  soft line break; " =\r\n" is okay
+          $newline = '';
+          // check if newline first character will be point or not
+          if ( $dec == 46 ) {
+            $c = '=2E';
+          }
+        }
+        $newline .= $c;
+      } // end of for
+      $output .= $newline.$eol;
+    } // end of while
+    return trim($output);
+  }
+
+  /**
+   * Encode string to q encoding.
+   * @access private
+   * @return string
+   */
+  function EncodeQ ($str, $position = 'text') {
+    /* There should not be any EOL in the string */
+    $encoded = preg_replace("[\r\n]", '', $str);
+
+    switch (strtolower($position)) {
+      case 'phrase':
+        $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
+        break;
+      case 'comment':
+        $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
+      case 'text':
+      default:
+        /* Replace every high ascii, control =, ? and _ characters */
+        $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e',
+              "'='.sprintf('%02X', ord('\\1'))", $encoded);
+        break;
+    }
+
+    /* Replace every spaces to _ (more readable than =20) */
+    $encoded = str_replace(' ', '_', $encoded);
+
+    return $encoded;
+  }
+
+  /**
+   * Adds a string or binary attachment (non-filesystem) to the list.
+   * This method can be used to attach ascii or binary data,
+   * such as a BLOB record from a database.
+   * @param string $string String attachment data.
+   * @param string $filename Name of the attachment.
+   * @param string $encoding File encoding (see $Encoding).
+   * @param string $type File extension (MIME) type.
+   * @return void
+   */
+  function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') {
+    /* Append to $attachment array */
+    $cur = count($this->attachment);
+    $this->attachment[$cur][0] = $string;
+    $this->attachment[$cur][1] = $filename;
+    $this->attachment[$cur][2] = $filename;
+    $this->attachment[$cur][3] = $encoding;
+    $this->attachment[$cur][4] = $type;
+    $this->attachment[$cur][5] = true; // isString
+    $this->attachment[$cur][6] = 'attachment';
+    $this->attachment[$cur][7] = 0;
+  }
+
+  /**
+   * Adds an embedded attachment.  This can include images, sounds, and
+   * just about any other document.  Make sure to set the $type to an
+   * image type.  For JPEG images use "image/jpeg" and for GIF images
+   * use "image/gif".
+   * @param string $path Path to the attachment.
+   * @param string $cid Content ID of the attachment.  Use this to identify
+   *        the Id for accessing the image in an HTML form.
+   * @param string $name Overrides the attachment name.
+   * @param string $encoding File encoding (see $Encoding).
+   * @param string $type File extension (MIME) type.
+   * @return bool
+   */
+  function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {
+
+    if(!@is_file($path)) {
+      $this->SetError($this->Lang('file_access') . $path);
+      return false;
+    }
+
+    $filename = basename($path);
+    if($name == '') {
+      $name = $filename;
+    }
+
+    /* Append to $attachment array */
+    $cur = count($this->attachment);
+    $this->attachment[$cur][0] = $path;
+    $this->attachment[$cur][1] = $filename;
+    $this->attachment[$cur][2] = $name;
+    $this->attachment[$cur][3] = $encoding;
+    $this->attachment[$cur][4] = $type;
+    $this->attachment[$cur][5] = false;
+    $this->attachment[$cur][6] = 'inline';
+    $this->attachment[$cur][7] = $cid;
+
+    return true;
+  }
+
+  /**
+   * Returns true if an inline attachment is present.
+   * @access private
+   * @return bool
+   */
+  function InlineImageExists() {
+    $result = false;
+    for($i = 0; $i < count($this->attachment); $i++) {
+      if($this->attachment[$i][6] == 'inline') {
+        $result = true;
+        break;
+      }
+    }
+
+    return $result;
+  }
+
+  /////////////////////////////////////////////////
+  // CLASS METHODS, MESSAGE RESET
+  /////////////////////////////////////////////////
+
+  /**
+   * Clears all recipients assigned in the TO array.  Returns void.
+   * @return void
+   */
+  function ClearAddresses() {
+    $this->to = array();
+  }
+
+  /**
+   * Clears all recipients assigned in the CC array.  Returns void.
+   * @return void
+   */
+  function ClearCCs() {
+    $this->cc = array();
+  }
+
+  /**
+   * Clears all recipients assigned in the BCC array.  Returns void.
+   * @return void
+   */
+  function ClearBCCs() {
+    $this->bcc = array();
+  }
+
+  /**
+   * Clears all recipients assigned in the ReplyTo array.  Returns void.
+   * @return void
+   */
+  function ClearReplyTos() {
+    $this->ReplyTo = array();
+  }
+
+  /**
+   * Clears all recipients assigned in the TO, CC and BCC
+   * array.  Returns void.
+   * @return void
+   */
+  function ClearAllRecipients() {
+    $this->to = array();
+    $this->cc = array();
+    $this->bcc = array();
+  }
+
+  /**
+   * Clears all previously set filesystem, string, and binary
+   * attachments.  Returns void.
+   * @return void
+   */
+  function ClearAttachments() {
+    $this->attachment = array();
+  }
+
+  /**
+   * Clears all custom headers.  Returns void.
+   * @return void
+   */
+  function ClearCustomHeaders() {
+    $this->CustomHeader = array();
+  }
+
+  /////////////////////////////////////////////////
+  // CLASS METHODS, MISCELLANEOUS
+  /////////////////////////////////////////////////
+
+  /**
+   * Adds the error message to the error container.
+   * Returns void.
+   * @access private
+   * @return void
+   */
+  function SetError($msg) {
+    $this->error_count++;
+    $this->ErrorInfo = $msg;
+  }
+
+  /**
+   * Returns the proper RFC 822 formatted date.
+   * @access private
+   * @return string
+   */
+  function RFCDate() {
+    $tz = date('Z');
+    $tzs = ($tz < 0) ? '-' : '+';
+    $tz = abs($tz);
+    $tz = (int)($tz/3600)*100 + ($tz%3600)/60;
+    $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz);
+
+    return $result;
+  }
+
+  /**
+   * Returns the appropriate server variable.  Should work with both
+   * PHP 4.1.0+ as well as older versions.  Returns an empty string
+   * if nothing is found.
+   * @access private
+   * @return mixed
+   */
+  function ServerVar($varName) {
+    global $HTTP_SERVER_VARS;
+    global $HTTP_ENV_VARS;
+
+    if(!isset($_SERVER)) {
+      $_SERVER = $HTTP_SERVER_VARS;
+      if(!isset($_SERVER['REMOTE_ADDR'])) {
+        $_SERVER = $HTTP_ENV_VARS; // must be Apache
+      }
+    }
+
+    if(isset($_SERVER[$varName])) {
+      return $_SERVER[$varName];
+    } else {
+      return '';
+    }
+  }
+
+  /**
+   * Returns the server hostname or 'localhost.localdomain' if unknown.
+   * @access private
+   * @return string
+   */
+  function ServerHostname() {
+    if ($this->Hostname != '') {
+      $result = $this->Hostname;
+    } elseif ($this->ServerVar('SERVER_NAME') != '') {
+      $result = $this->ServerVar('SERVER_NAME');
+    } else {
+      $result = 'localhost.localdomain';
+    }
+
+    return $result;
+  }
+
+  /**
+   * Returns a message in the appropriate language.
+   * @access private
+   * @return string
+   */
+  function Lang($key) {
+    if(count($this->language) < 1) {
+      $this->SetLanguage('en'); // set the default language
+    }
+
+    if(isset($this->language[$key])) {
+      return $this->language[$key];
+    } else {
+      return 'Language string failed to load: ' . $key;
+    }
+  }
+
+  /**
+   * Returns true if an error occurred.
+   * @return bool
+   */
+  function IsError() {
+    return ($this->error_count > 0);
+  }
+
+  /**
+   * Changes every end of line from CR or LF to CRLF.
+   * @access private
+   * @return string
+   */
+  function FixEOL($str) {
+    $str = str_replace("\r\n", "\n", $str);
+    $str = str_replace("\r", "\n", $str);
+    $str = str_replace("\n", $this->LE, $str);
+    return $str;
+  }
+
+  /**
+   * Adds a custom header.
+   * @return void
+   */
+  function AddCustomHeader($custom_header) {
+    $this->CustomHeader[] = explode(':', $custom_header, 2);
+  }
+
+  /**
+   * Evaluates the message and returns modifications for inline images and backgrounds
+   * @access public
+   * @return $message
+   */
+  function MsgHTML($message) {
+    preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images);
+    if(isset($images[2])) {
+      foreach($images[2] as $i => $url) {
+        $filename  = basename($url);
+        $directory = dirname($url);
+        $cid       = 'cid:' . md5($filename);
+        $fileParts = split("\.", $filename);
+        $ext       = $fileParts[1];
+        $mimeType  = $this->_mime_types($ext);
+        $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message);
+        $this->AddEmbeddedImage($url, md5($filename), $filename, 'base64', $mimeType);
+      }
+    }
+    $this->IsHTML(true);
+    $this->Body = $message;
+    $textMsg = trim(strip_tags($message));
+    if ( !empty($textMsg) && empty($this->AltBody) ) {
+      $this->AltBody = $textMsg;
+    }
+    if ( empty($this->AltBody) ) {
+      $this->AltBody = 'To view this email message, open the email in with HTML compatibility!' . "\n\n";
+    }
+  }
+
+  /**
+   * Gets the mime type of the embedded or inline image
+   * @access private
+   * @return mime type of ext
+   */
+  function _mime_types($ext = '') {
+    $mimes = array(
+      'hqx'  =>  'application/mac-binhex40',
+      'cpt'   =>  'application/mac-compactpro',
+      'doc'   =>  'application/msword',
+      'bin'   =>  'application/macbinary',
+      'dms'   =>  'application/octet-stream',
+      'lha'   =>  'application/octet-stream',
+      'lzh'   =>  'application/octet-stream',
+      'exe'   =>  'application/octet-stream',
+      'class' =>  'application/octet-stream',
+      'psd'   =>  'application/octet-stream',
+      'so'    =>  'application/octet-stream',
+      'sea'   =>  'application/octet-stream',
+      'dll'   =>  'application/octet-stream',
+      'oda'   =>  'application/oda',
+      'pdf'   =>  'application/pdf',
+      'ai'    =>  'application/postscript',
+      'eps'   =>  'application/postscript',
+      'ps'    =>  'application/postscript',
+      'smi'   =>  'application/smil',
+      'smil'  =>  'application/smil',
+      'mif'   =>  'application/vnd.mif',
+      'xls'   =>  'application/vnd.ms-excel',
+      'ppt'   =>  'application/vnd.ms-powerpoint',
+      'wbxml' =>  'application/vnd.wap.wbxml',
+      'wmlc'  =>  'application/vnd.wap.wmlc',
+      'dcr'   =>  'application/x-director',
+      'dir'   =>  'application/x-director',
+      'dxr'   =>  'application/x-director',
+      'dvi'   =>  'application/x-dvi',
+      'gtar'  =>  'application/x-gtar',
+      'php'   =>  'application/x-httpd-php',
+      'php4'  =>  'application/x-httpd-php',
+      'php3'  =>  'application/x-httpd-php',
+      'phtml' =>  'application/x-httpd-php',
+      'phps'  =>  'application/x-httpd-php-source',
+      'js'    =>  'application/x-javascript',
+      'swf'   =>  'application/x-shockwave-flash',
+      'sit'   =>  'application/x-stuffit',
+      'tar'   =>  'application/x-tar',
+      'tgz'   =>  'application/x-tar',
+      'xhtml' =>  'application/xhtml+xml',
+      'xht'   =>  'application/xhtml+xml',
+      'zip'   =>  'application/zip',
+      'mid'   =>  'audio/midi',
+      'midi'  =>  'audio/midi',
+      'mpga'  =>  'audio/mpeg',
+      'mp2'   =>  'audio/mpeg',
+      'mp3'   =>  'audio/mpeg',
+      'aif'   =>  'audio/x-aiff',
+      'aiff'  =>  'audio/x-aiff',
+      'aifc'  =>  'audio/x-aiff',
+      'ram'   =>  'audio/x-pn-realaudio',
+      'rm'    =>  'audio/x-pn-realaudio',
+      'rpm'   =>  'audio/x-pn-realaudio-plugin',
+      'ra'    =>  'audio/x-realaudio',
+      'rv'    =>  'video/vnd.rn-realvideo',
+      'wav'   =>  'audio/x-wav',
+      'bmp'   =>  'image/bmp',
+      'gif'   =>  'image/gif',
+      'jpeg'  =>  'image/jpeg',
+      'jpg'   =>  'image/jpeg',
+      'jpe'   =>  'image/jpeg',
+      'png'   =>  'image/png',
+      'tiff'  =>  'image/tiff',
+      'tif'   =>  'image/tiff',
+      'css'   =>  'text/css',
+      'html'  =>  'text/html',
+      'htm'   =>  'text/html',
+      'shtml' =>  'text/html',
+      'txt'   =>  'text/plain',
+      'text'  =>  'text/plain',
+      'log'   =>  'text/plain',
+      'rtx'   =>  'text/richtext',
+      'rtf'   =>  'text/rtf',
+      'xml'   =>  'text/xml',
+      'xsl'   =>  'text/xml',
+      'mpeg'  =>  'video/mpeg',
+      'mpg'   =>  'video/mpeg',
+      'mpe'   =>  'video/mpeg',
+      'qt'    =>  'video/quicktime',
+      'mov'   =>  'video/quicktime',
+      'avi'   =>  'video/x-msvideo',
+      'movie' =>  'video/x-sgi-movie',
+      'doc'   =>  'application/msword',
+      'word'  =>  'application/msword',
+      'xl'    =>  'application/excel',
+      'eml'   =>  'message/rfc822'
+    );
+    return ( ! isset($mimes[strtolower($ext)])) ? 'application/x-unknown-content-type' : $mimes[strtolower($ext)];
+  }
+
+  /**
+   * Set (or reset) Class Objects (variables)
+   *
+   * Usage Example:
+   * $page->set('X-Priority', '3');
+   *
+   * @access public
+   * @param string $name Parameter Name
+   * @param mixed $value Parameter Value
+   * NOTE: will not work with arrays, there are no arrays to set/reset
+   */
+  function set ( $name, $value = '' ) {
+    if ( isset($this->$name) ) {
+      $this->$name = $value;
+    } else {
+      $this->SetError('Cannot set or reset variable ' . $name);
+      return false;
+    }
+  }
+
+  /**
+   * Read a file from a supplied filename and return it.
+   *
+   * @access public
+   * @param string $filename Parameter File Name
+   */
+  function getFile($filename) {
+    $return = '';
+    if ($fp = fopen($filename, 'rb')) {
+      while (!feof($fp)) {
+        $return .= fread($fp, 1024);
+      }
+      fclose($fp);
+      return $return;
+    } else {
+      return false;
+    }
+  }
+
+  /**
+   * Strips newlines to prevent header injection.
+   * @access private
+   * @param string $str String
+   * @return string
+   */
+  function SecureHeader($str) {
+    $str = trim($str);
+    $str = str_replace("\r", "", $str);
+    $str = str_replace("\n", "", $str);
+    return $str;
+  }
+
+}
+
+?>
diff --git a/0.2.1/inc/phpmailer/class.pop3.php b/0.2.1/inc/phpmailer/class.pop3.php
new file mode 100644 (file)
index 0000000..af1e63b
--- /dev/null
@@ -0,0 +1,437 @@
+<?php
+/*~ class.pop3.php
+.---------------------------------------------------------------------------.
+|  Software: PHPMailer - PHP email class                                    |
+|   Version: 2.0.0 rc2                                                      |
+|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  |
+|      Info: http://phpmailer.sourceforge.net                               |
+|   Support: http://sourceforge.net/projects/phpmailer/                     |
+| ------------------------------------------------------------------------- |
+|    Author: Andy Prevost (project admininistrator)                         |
+|    Author: Brent R. Matzelle (original founder)                           |
+| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved.               |
+| Copyright (c) 2001-2003, Brent R. Matzelle                                |
+| ------------------------------------------------------------------------- |
+|   License: Distributed under the Lesser General Public License (LGPL)     |
+|            http://www.gnu.org/copyleft/lesser.html                        |
+| This program is distributed in the hope that it will be useful - WITHOUT  |
+| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     |
+| FITNESS FOR A PARTICULAR PURPOSE.                                         |
+| ------------------------------------------------------------------------- |
+| We offer a number of paid services (www.codeworxtech.com):                |
+| - Web Hosting on highly optimized fast and secure servers                 |
+| - Technology Consulting                                                   |
+| - Oursourcing (highly qualified programmers and graphic designers)        |
+'---------------------------------------------------------------------------'
+
+/**
+ * POP Before SMTP Authentication Class
+ * Version 1.0
+ *
+ * Author: Richard Davey (rich@corephp.co.uk)
+ * License: LGPL, see PHPMailer License
+ *
+ * Specifically for PHPMailer to allow POP before SMTP authentication.
+ * Does not yet work with APOP - if you have an APOP account, contact me
+ * and we can test changes to this script.
+ *
+ * This class is based on the structure of the SMTP class by Chris Ryan
+ *
+ * This class is rfc 1939 compliant and implements all the commands
+ * required for POP3 connection, authentication and disconnection.
+ *
+ * @package PHPMailer
+ * @author Richard Davey
+ */
+
+class POP3
+{
+  /**
+   * Default POP3 port
+   * @var int
+   */
+  var $POP3_PORT = 110;
+
+  /**
+   * Default Timeout
+   * @var int
+   */
+  var $POP3_TIMEOUT = 30;
+
+  /**
+   * POP3 Carriage Return + Line Feed
+   * @var string
+   */
+  var $CRLF = "\r\n";
+
+  /**
+   * Displaying Debug warnings? (0 = now, 1+ = yes)
+   * @var int
+   */
+  var $do_debug = 2;
+
+  /**
+   * POP3 Mail Server
+   * @var string
+   */
+  var $host;
+
+  /**
+   * POP3 Port
+   * @var int
+   */
+  var $port;
+
+  /**
+   * POP3 Timeout Value
+   * @var int
+   */
+  var $tval;
+
+  /**
+   * POP3 Username
+   * @var string
+   */
+  var $username;
+
+  /**
+   * POP3 Password
+   * @var string
+   */
+  var $password;
+
+  /**#@+
+   * @access private
+   */
+  var $pop_conn;
+  var $connected;
+  var $error;     //  Error log array
+  /**#@-*/
+
+  /**
+   * Constructor, sets the initial values
+   *
+   * @return POP3
+   */
+  function POP3 ()
+    {
+      $this->pop_conn = 0;
+      $this->connected = false;
+      $this->error = null;
+    }
+
+  /**
+   * Combination of public events - connect, login, disconnect
+   *
+   * @param string $host
+   * @param integer $port
+   * @param integer $tval
+   * @param string $username
+   * @param string $password
+   */
+  function Authorise ($host, $port = false, $tval = false, $username, $password, $debug_level = 0)
+  {
+    $this->host = $host;
+
+    //  If no port value is passed, retrieve it
+    if ($port == false)
+    {
+      $this->port = $this->POP3_PORT;
+    }
+    else
+    {
+      $this->port = $port;
+    }
+
+    //  If no port value is passed, retrieve it
+    if ($tval == false)
+    {
+      $this->tval = $this->POP3_TIMEOUT;
+    }
+    else
+    {
+      $this->tval = $tval;
+    }
+
+    $this->do_debug = $debug_level;
+    $this->username = $username;
+    $this->password = $password;
+
+    //  Refresh the error log
+      $this->error = null;
+
+      //  Connect
+    $result = $this->Connect($this->host, $this->port, $this->tval);
+
+    if ($result)
+    {
+      $login_result = $this->Login($this->username, $this->password);
+
+      if ($login_result)
+      {
+        $this->Disconnect();
+
+        return true;
+      }
+
+    }
+
+    //  We need to disconnect regardless if the login succeeded
+    $this->Disconnect();
+
+    return false;
+  }
+
+  /**
+   * Connect to the POP3 server
+   *
+   * @param string $host
+   * @param integer $port
+   * @param integer $tval
+   * @return boolean
+   */
+  function Connect ($host, $port = false, $tval = 30)
+    {
+    //  Are we already connected?
+    if ($this->connected)
+    {
+      return true;
+    }
+
+    /*
+      On Windows this will raise a PHP Warning error if the hostname doesn't exist.
+      Rather than supress it with @fsockopen, let's capture it cleanly instead
+    */
+
+    set_error_handler(array(&$this, 'catchWarning'));
+
+    //  Connect to the POP3 server
+    $this->pop_conn = fsockopen($host,    //  POP3 Host
+                  $port,    //  Port #
+                  $errno,   //  Error Number
+                  $errstr,  //  Error Message
+                  $tval);   //  Timeout (seconds)
+
+    //  Restore the error handler
+    restore_error_handler();
+
+    //  Does the Error Log now contain anything?
+    if ($this->error && $this->do_debug >= 1)
+    {
+        $this->displayErrors();
+    }
+
+    //  Did we connect?
+      if ($this->pop_conn == false)
+      {
+        //  It would appear not...
+        $this->error = array(
+          'error' => "Failed to connect to server $host on port $port",
+          'errno' => $errno,
+          'errstr' => $errstr
+        );
+
+        if ($this->do_debug >= 1)
+        {
+          $this->displayErrors();
+        }
+
+        return false;
+      }
+
+      //  Increase the stream time-out
+
+      //  Check for PHP 4.3.0 or later
+      if (version_compare(phpversion(), '4.3.0', 'ge'))
+      {
+        stream_set_timeout($this->pop_conn, $tval, 0);
+      }
+      else
+      {
+        //  Does not work on Windows
+        if (substr(PHP_OS, 0, 3) !== 'WIN')
+        {
+          socket_set_timeout($this->pop_conn, $tval, 0);
+        }
+      }
+
+    //  Get the POP3 server response
+      $pop3_response = $this->getResponse();
+
+      //  Check for the +OK
+      if ($this->checkResponse($pop3_response))
+      {
+      //  The connection is established and the POP3 server is talking
+      $this->connected = true;
+        return true;
+      }
+
+    }
+
+    /**
+     * Login to the POP3 server (does not support APOP yet)
+     *
+     * @param string $username
+     * @param string $password
+     * @return boolean
+     */
+    function Login ($username = '', $password = '')
+    {
+      if ($this->connected == false)
+      {
+        $this->error = 'Not connected to POP3 server';
+
+        if ($this->do_debug >= 1)
+        {
+          $this->displayErrors();
+        }
+      }
+
+      if (empty($username))
+      {
+        $username = $this->username;
+      }
+
+      if (empty($password))
+      {
+        $password = $this->password;
+      }
+
+    $pop_username = "USER $username" . $this->CRLF;
+    $pop_password = "PASS $password" . $this->CRLF;
+
+      //  Send the Username
+      $this->sendString($pop_username);
+      $pop3_response = $this->getResponse();
+
+      if ($this->checkResponse($pop3_response))
+      {
+        //  Send the Password
+        $this->sendString($pop_password);
+        $pop3_response = $this->getResponse();
+
+        if ($this->checkResponse($pop3_response))
+        {
+          return true;
+        }
+        else
+        {
+          return false;
+        }
+      }
+      else
+      {
+        return false;
+      }
+    }
+
+    /**
+     * Disconnect from the POP3 server
+     */
+    function Disconnect ()
+    {
+      $this->sendString('QUIT');
+
+      fclose($this->pop_conn);
+    }
+
+    /*
+      ---------------
+      Private Methods
+      ---------------
+    */
+
+    /**
+     * Get the socket response back.
+     * $size is the maximum number of bytes to retrieve
+     *
+     * @param integer $size
+     * @return string
+     */
+    function getResponse ($size = 128)
+    {
+      $pop3_response = fgets($this->pop_conn, $size);
+
+      return $pop3_response;
+    }
+
+    /**
+     * Send a string down the open socket connection to the POP3 server
+     *
+     * @param string $string
+     * @return integer
+     */
+    function sendString ($string)
+    {
+      $bytes_sent = fwrite($this->pop_conn, $string, strlen($string));
+
+      return $bytes_sent;
+
+    }
+
+    /**
+     * Checks the POP3 server response for +OK or -ERR
+     *
+     * @param string $string
+     * @return boolean
+     */
+    function checkResponse ($string)
+    {
+      if (substr($string, 0, 3) !== '+OK')
+      {
+        $this->error = array(
+          'error' => "Server reported an error: $string",
+          'errno' => 0,
+          'errstr' => ''
+        );
+
+        if ($this->do_debug >= 1)
+        {
+          $this->displayErrors();
+        }
+
+        return false;
+      }
+      else
+      {
+        return true;
+      }
+
+    }
+
+    /**
+     * If debug is enabled, display the error message array
+     *
+     */
+    function displayErrors ()
+    {
+      echo '<pre>';
+
+      foreach ($this->error as $single_error)
+    {
+        print_r($single_error);
+    }
+
+      echo '</pre>';
+    }
+
+  /**
+   * Takes over from PHP for the socket warning handler
+   *
+   * @param integer $errno
+   * @param string $errstr
+   * @param string $errfile
+   * @param integer $errline
+   */
+  function catchWarning ($errno, $errstr, $errfile, $errline)
+  {
+    $this->error[] = array(
+      'error' => "Connecting to the POP3 server raised a PHP warning: ",
+      'errno' => $errno,
+      'errstr' => $errstr
+    );
+  }
+
+  //  End of class
+}
+?>
diff --git a/0.2.1/inc/phpmailer/class.smtp.php b/0.2.1/inc/phpmailer/class.smtp.php
new file mode 100644 (file)
index 0000000..92b999f
--- /dev/null
@@ -0,0 +1,1062 @@
+<?php
+/*~ class.smtp.php
+.---------------------------------------------------------------------------.
+|  Software: PHPMailer - PHP email class                                    |
+|   Version: 2.0.0 rc1                                                      |
+|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  |
+|      Info: http://phpmailer.sourceforge.net                               |
+|   Support: http://sourceforge.net/projects/phpmailer/                     |
+| ------------------------------------------------------------------------- |
+|    Author: Andy Prevost (project admininistrator)                         |
+|    Author: Brent R. Matzelle (original founder)                           |
+| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved.               |
+| Copyright (c) 2001-2003, Brent R. Matzelle                                |
+| ------------------------------------------------------------------------- |
+|   License: Distributed under the Lesser General Public License (LGPL)     |
+|            http://www.gnu.org/copyleft/lesser.html                        |
+| This program is distributed in the hope that it will be useful - WITHOUT  |
+| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     |
+| FITNESS FOR A PARTICULAR PURPOSE.                                         |
+| ------------------------------------------------------------------------- |
+| We offer a number of paid services (www.codeworxtech.com):                |
+| - Web Hosting on highly optimized fast and secure servers                 |
+| - Technology Consulting                                                   |
+| - Oursourcing (highly qualified programmers and graphic designers)        |
+'---------------------------------------------------------------------------'
+
+/**
+ * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP
+ * commands except TURN which will always return a not implemented
+ * error. SMTP also provides some utility methods for sending mail
+ * to an SMTP server.
+ * @package PHPMailer
+ * @author Chris Ryan
+ */
+
+class SMTP
+{
+  /**
+   *  SMTP server port
+   *  @var int
+   */
+  var $SMTP_PORT = 25;
+
+  /**
+   *  SMTP reply line ending
+   *  @var string
+   */
+  var $CRLF = "\r\n";
+
+  /**
+   *  Sets whether debugging is turned on
+   *  @var bool
+   */
+  var $do_debug;       # the level of debug to perform
+
+  /**
+   *  Sets VERP use on/off (default is off)
+   *  @var bool
+   */
+  var $do_verp = false;
+
+  /**#@+
+   * @access private
+   */
+  var $smtp_conn;      # the socket to the server
+  var $error;          # error if any on the last call
+  var $helo_rply;      # the reply the server sent to us for HELO
+  /**#@-*/
+
+  /**
+   * Initialize the class so that the data is in a known state.
+   * @access public
+   * @return void
+   */
+  function SMTP() {
+    $this->smtp_conn = 0;
+    $this->error = null;
+    $this->helo_rply = null;
+
+    $this->do_debug = 0;
+  }
+
+  /*************************************************************
+   *                    CONNECTION FUNCTIONS                  *
+   ***********************************************************/
+
+  /**
+   * Connect to the server specified on the port specified.
+   * If the port is not specified use the default SMTP_PORT.
+   * If tval is specified then a connection will try and be
+   * established with the server for that number of seconds.
+   * If tval is not specified the default is 30 seconds to
+   * try on the connection.
+   *
+   * SMTP CODE SUCCESS: 220
+   * SMTP CODE FAILURE: 421
+   * @access public
+   * @return bool
+   */
+  function Connect($host,$port=0,$tval=30) {
+    # set the error val to null so there is no confusion
+    $this->error = null;
+
+    # make sure we are __not__ connected
+    if($this->connected()) {
+      # ok we are connected! what should we do?
+      # for now we will just give an error saying we
+      # are already connected
+      $this->error = array("error" => "Already connected to a server");
+      return false;
+    }
+
+    if(empty($port)) {
+      $port = $this->SMTP_PORT;
+    }
+
+    #connect to the smtp server
+    $this->smtp_conn = fsockopen($host,    # the host of the server
+                                 $port,    # the port to use
+                                 $errno,   # error number if any
+                                 $errstr,  # error message if any
+                                 $tval);   # give up after ? secs
+    # verify we connected properly
+    if(empty($this->smtp_conn)) {
+      $this->error = array("error" => "Failed to connect to server",
+                           "errno" => $errno,
+                           "errstr" => $errstr);
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": $errstr ($errno)" . $this->CRLF;
+      }
+      return false;
+    }
+
+    # sometimes the SMTP server takes a little longer to respond
+    # so we will give it a longer timeout for the first read
+    // Windows still does not have support for this timeout function
+    if(substr(PHP_OS, 0, 3) != "WIN")
+     socket_set_timeout($this->smtp_conn, $tval, 0);
+
+    # get any announcement stuff
+    $announce = $this->get_lines();
+
+    # set the timeout  of any socket functions at 1/10 of a second
+    //if(function_exists("socket_set_timeout"))
+    //   socket_set_timeout($this->smtp_conn, 0, 100000);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce;
+    }
+
+    return true;
+  }
+
+  /**
+   * Performs SMTP authentication.  Must be run after running the
+   * Hello() method.  Returns true if successfully authenticated.
+   * @access public
+   * @return bool
+   */
+  function Authenticate($username, $password) {
+    // Start authentication
+    fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($code != 334) {
+      $this->error =
+        array("error" => "AUTH not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    // Send encoded username
+    fputs($this->smtp_conn, base64_encode($username) . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($code != 334) {
+      $this->error =
+        array("error" => "Username not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    // Send encoded password
+    fputs($this->smtp_conn, base64_encode($password) . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($code != 235) {
+      $this->error =
+        array("error" => "Password not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Returns true if connected to a server otherwise false
+   * @access private
+   * @return bool
+   */
+  function Connected() {
+    if(!empty($this->smtp_conn)) {
+      $sock_status = socket_get_status($this->smtp_conn);
+      if($sock_status["eof"]) {
+        # hmm this is an odd situation... the socket is
+        # valid but we are not connected anymore
+        if($this->do_debug >= 1) {
+            echo "SMTP -> NOTICE:" . $this->CRLF .
+                 "EOF caught while checking if connected";
+        }
+        $this->Close();
+        return false;
+      }
+      return true; # everything looks good
+    }
+    return false;
+  }
+
+  /**
+   * Closes the socket and cleans up the state of the class.
+   * It is not considered good to use this function without
+   * first trying to use QUIT.
+   * @access public
+   * @return void
+   */
+  function Close() {
+    $this->error = null; # so there is no confusion
+    $this->helo_rply = null;
+    if(!empty($this->smtp_conn)) {
+      # close the connection and cleanup
+      fclose($this->smtp_conn);
+      $this->smtp_conn = 0;
+    }
+  }
+
+  /***************************************************************
+   *                        SMTP COMMANDS                       *
+   *************************************************************/
+
+  /**
+   * Issues a data command and sends the msg_data to the server
+   * finializing the mail transaction. $msg_data is the message
+   * that is to be send with the headers. Each header needs to be
+   * on a single line followed by a <CRLF> with the message headers
+   * and the message body being seperated by and additional <CRLF>.
+   *
+   * Implements rfc 821: DATA <CRLF>
+   *
+   * SMTP CODE INTERMEDIATE: 354
+   *     [data]
+   *     <CRLF>.<CRLF>
+   *     SMTP CODE SUCCESS: 250
+   *     SMTP CODE FAILURE: 552,554,451,452
+   * SMTP CODE FAILURE: 451,554
+   * SMTP CODE ERROR  : 500,501,503,421
+   * @access public
+   * @return bool
+   */
+  function Data($msg_data) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Data() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"DATA" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 354) {
+      $this->error =
+        array("error" => "DATA command not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    # the server is ready to accept data!
+    # according to rfc 821 we should not send more than 1000
+    # including the CRLF
+    # characters on a single line so we will break the data up
+    # into lines by \r and/or \n then if needed we will break
+    # each of those into smaller lines to fit within the limit.
+    # in addition we will be looking for lines that start with
+    # a period '.' and append and additional period '.' to that
+    # line. NOTE: this does not count towards are limit.
+
+    # normalize the line breaks so we know the explode works
+    $msg_data = str_replace("\r\n","\n",$msg_data);
+    $msg_data = str_replace("\r","\n",$msg_data);
+    $lines = explode("\n",$msg_data);
+
+    # we need to find a good way to determine is headers are
+    # in the msg_data or if it is a straight msg body
+    # currently I am assuming rfc 822 definitions of msg headers
+    # and if the first field of the first line (':' sperated)
+    # does not contain a space then it _should_ be a header
+    # and we can process all lines before a blank "" line as
+    # headers.
+    $field = substr($lines[0],0,strpos($lines[0],":"));
+    $in_headers = false;
+    if(!empty($field) && !strstr($field," ")) {
+      $in_headers = true;
+    }
+
+    $max_line_length = 998; # used below; set here for ease in change
+
+    while(list(,$line) = @each($lines)) {
+      $lines_out = null;
+      if($line == "" && $in_headers) {
+        $in_headers = false;
+      }
+      # ok we need to break this line up into several
+      # smaller lines
+      while(strlen($line) > $max_line_length) {
+        $pos = strrpos(substr($line,0,$max_line_length)," ");
+
+        # Patch to fix DOS attack
+        if(!$pos) {
+          $pos = $max_line_length - 1;
+        }
+
+        $lines_out[] = substr($line,0,$pos);
+        $line = substr($line,$pos + 1);
+        # if we are processing headers we need to
+        # add a LWSP-char to the front of the new line
+        # rfc 822 on long msg headers
+        if($in_headers) {
+          $line = "\t" . $line;
+        }
+      }
+      $lines_out[] = $line;
+
+      # now send the lines to the server
+      while(list(,$line_out) = @each($lines_out)) {
+        if(strlen($line_out) > 0)
+        {
+          if(substr($line_out, 0, 1) == ".") {
+            $line_out = "." . $line_out;
+          }
+        }
+        fputs($this->smtp_conn,$line_out . $this->CRLF);
+      }
+    }
+
+    # ok all the message data has been sent so lets get this
+    # over with aleady
+    fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "DATA not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Expand takes the name and asks the server to list all the
+   * people who are members of the _list_. Expand will return
+   * back and array of the result or false if an error occurs.
+   * Each value in the array returned has the format of:
+   *     [ <full-name> <sp> ] <path>
+   * The definition of <path> is defined in rfc 821
+   *
+   * Implements rfc 821: EXPN <SP> <string> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE FAILURE: 550
+   * SMTP CODE ERROR  : 500,501,502,504,421
+   * @access public
+   * @return string array
+   */
+  function Expand($name) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+            "error" => "Called Expand() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "EXPN not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    # parse the reply and place in our array to return to user
+    $entries = explode($this->CRLF,$rply);
+    while(list(,$l) = @each($entries)) {
+      $list[] = substr($l,4);
+    }
+
+    return $list;
+  }
+
+  /**
+   * Sends the HELO command to the smtp server.
+   * This makes sure that we and the server are in
+   * the same known state.
+   *
+   * Implements from rfc 821: HELO <SP> <domain> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE ERROR  : 500, 501, 504, 421
+   * @access public
+   * @return bool
+   */
+  function Hello($host="") {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+            "error" => "Called Hello() without being connected");
+      return false;
+    }
+
+    # if a hostname for the HELO was not specified determine
+    # a suitable one to send
+    if(empty($host)) {
+      # we need to determine some sort of appopiate default
+      # to send to the server
+      $host = "localhost";
+    }
+
+    // Send extended hello first (RFC 2821)
+    if(!$this->SendHello("EHLO", $host))
+    {
+      if(!$this->SendHello("HELO", $host))
+          return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Sends a HELO/EHLO command.
+   * @access private
+   * @return bool
+   */
+  function SendHello($hello, $host) {
+    fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => $hello . " not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    $this->helo_rply = $rply;
+
+    return true;
+  }
+
+  /**
+   * Gets help information on the keyword specified. If the keyword
+   * is not specified then returns generic help, ussually contianing
+   * A list of keywords that help is available on. This function
+   * returns the results back to the user. It is up to the user to
+   * handle the returned data. If an error occurs then false is
+   * returned with $this->error set appropiately.
+   *
+   * Implements rfc 821: HELP [ <SP> <string> ] <CRLF>
+   *
+   * SMTP CODE SUCCESS: 211,214
+   * SMTP CODE ERROR  : 500,501,502,504,421
+   * @access public
+   * @return string
+   */
+  function Help($keyword="") {
+    $this->error = null; # to avoid confusion
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Help() without being connected");
+      return false;
+    }
+
+    $extra = "";
+    if(!empty($keyword)) {
+      $extra = " " . $keyword;
+    }
+
+    fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 211 && $code != 214) {
+      $this->error =
+        array("error" => "HELP not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    return $rply;
+  }
+
+  /**
+   * Starts a mail transaction from the email address specified in
+   * $from. Returns true if successful or false otherwise. If True
+   * the mail transaction is started and then one or more Recipient
+   * commands may be called followed by a Data command.
+   *
+   * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE SUCCESS: 552,451,452
+   * SMTP CODE SUCCESS: 500,501,421
+   * @access public
+   * @return bool
+   */
+  function Mail($from) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Mail() without being connected");
+      return false;
+    }
+
+    $useVerp = ($this->do_verp ? "XVERP" : "");
+    fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "MAIL not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Sends the command NOOP to the SMTP server.
+   *
+   * Implements from rfc 821: NOOP <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE ERROR  : 500, 421
+   * @access public
+   * @return bool
+   */
+  function Noop() {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Noop() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"NOOP" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "NOOP not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Sends the quit command to the server and then closes the socket
+   * if there is no error or the $close_on_error argument is true.
+   *
+   * Implements from rfc 821: QUIT <CRLF>
+   *
+   * SMTP CODE SUCCESS: 221
+   * SMTP CODE ERROR  : 500
+   * @access public
+   * @return bool
+   */
+  function Quit($close_on_error=true) {
+    $this->error = null; # so there is no confusion
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Quit() without being connected");
+      return false;
+    }
+
+    # send the quit command to the server
+    fputs($this->smtp_conn,"quit" . $this->CRLF);
+
+    # get any good-bye messages
+    $byemsg = $this->get_lines();
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg;
+    }
+
+    $rval = true;
+    $e = null;
+
+    $code = substr($byemsg,0,3);
+    if($code != 221) {
+      # use e as a tmp var cause Close will overwrite $this->error
+      $e = array("error" => "SMTP server rejected quit command",
+                 "smtp_code" => $code,
+                 "smtp_rply" => substr($byemsg,4));
+      $rval = false;
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $e["error"] . ": " .
+                 $byemsg . $this->CRLF;
+      }
+    }
+
+    if(empty($e) || $close_on_error) {
+      $this->Close();
+    }
+
+    return $rval;
+  }
+
+  /**
+   * Sends the command RCPT to the SMTP server with the TO: argument of $to.
+   * Returns true if the recipient was accepted false if it was rejected.
+   *
+   * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250,251
+   * SMTP CODE FAILURE: 550,551,552,553,450,451,452
+   * SMTP CODE ERROR  : 500,501,503,421
+   * @access public
+   * @return bool
+   */
+  function Recipient($to) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Recipient() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250 && $code != 251) {
+      $this->error =
+        array("error" => "RCPT not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Sends the RSET command to abort and transaction that is
+   * currently in progress. Returns true if successful false
+   * otherwise.
+   *
+   * Implements rfc 821: RSET <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE ERROR  : 500,501,504,421
+   * @access public
+   * @return bool
+   */
+  function Reset() {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Reset() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"RSET" . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "RSET failed",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+
+    return true;
+  }
+
+  /**
+   * Starts a mail transaction from the email address specified in
+   * $from. Returns true if successful or false otherwise. If True
+   * the mail transaction is started and then one or more Recipient
+   * commands may be called followed by a Data command. This command
+   * will send the message to the users terminal if they are logged
+   * in.
+   *
+   * Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE SUCCESS: 552,451,452
+   * SMTP CODE SUCCESS: 500,501,502,421
+   * @access public
+   * @return bool
+   */
+  function Send($from) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Send() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "SEND not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Starts a mail transaction from the email address specified in
+   * $from. Returns true if successful or false otherwise. If True
+   * the mail transaction is started and then one or more Recipient
+   * commands may be called followed by a Data command. This command
+   * will send the message to the users terminal if they are logged
+   * in and send them an email.
+   *
+   * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE SUCCESS: 552,451,452
+   * SMTP CODE SUCCESS: 500,501,502,421
+   * @access public
+   * @return bool
+   */
+  function SendAndMail($from) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+          "error" => "Called SendAndMail() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "SAML not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * Starts a mail transaction from the email address specified in
+   * $from. Returns true if successful or false otherwise. If True
+   * the mail transaction is started and then one or more Recipient
+   * commands may be called followed by a Data command. This command
+   * will send the message to the users terminal if they are logged
+   * in or mail it to them if they are not.
+   *
+   * Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE SUCCESS: 552,451,452
+   * SMTP CODE SUCCESS: 500,501,502,421
+   * @access public
+   * @return bool
+   */
+  function SendOrMail($from) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+          "error" => "Called SendOrMail() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250) {
+      $this->error =
+        array("error" => "SOML not accepted from server",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return true;
+  }
+
+  /**
+   * This is an optional command for SMTP that this class does not
+   * support. This method is here to make the RFC821 Definition
+   * complete for this class and __may__ be implimented in the future
+   *
+   * Implements from rfc 821: TURN <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250
+   * SMTP CODE FAILURE: 502
+   * SMTP CODE ERROR  : 500, 503
+   * @access public
+   * @return bool
+   */
+  function Turn() {
+    $this->error = array("error" => "This method, TURN, of the SMTP ".
+                                    "is not implemented");
+    if($this->do_debug >= 1) {
+      echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF;
+    }
+    return false;
+  }
+
+  /**
+   * Verifies that the name is recognized by the server.
+   * Returns false if the name could not be verified otherwise
+   * the response from the server is returned.
+   *
+   * Implements rfc 821: VRFY <SP> <string> <CRLF>
+   *
+   * SMTP CODE SUCCESS: 250,251
+   * SMTP CODE FAILURE: 550,551,553
+   * SMTP CODE ERROR  : 500,501,502,421
+   * @access public
+   * @return int
+   */
+  function Verify($name) {
+    $this->error = null; # so no confusion is caused
+
+    if(!$this->connected()) {
+      $this->error = array(
+              "error" => "Called Verify() without being connected");
+      return false;
+    }
+
+    fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF);
+
+    $rply = $this->get_lines();
+    $code = substr($rply,0,3);
+
+    if($this->do_debug >= 2) {
+      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+    }
+
+    if($code != 250 && $code != 251) {
+      $this->error =
+        array("error" => "VRFY failed on name '$name'",
+              "smtp_code" => $code,
+              "smtp_msg" => substr($rply,4));
+      if($this->do_debug >= 1) {
+        echo "SMTP -> ERROR: " . $this->error["error"] .
+                 ": " . $rply . $this->CRLF;
+      }
+      return false;
+    }
+    return $rply;
+  }
+
+  /*******************************************************************
+   *                       INTERNAL FUNCTIONS                       *
+   ******************************************************************/
+
+  /**
+   * Read in as many lines as possible
+   * either before eof or socket timeout occurs on the operation.
+   * With SMTP we can tell if we have more lines to read if the
+   * 4th character is '-' symbol. If it is a space then we don't
+   * need to read anything else.
+   * @access private
+   * @return string
+   */
+  function get_lines() {
+    $data = "";
+    while($str = @fgets($this->smtp_conn,515)) {
+      if($this->do_debug >= 4) {
+        echo "SMTP -> get_lines(): \$data was \"$data\"" .
+                 $this->CRLF;
+        echo "SMTP -> get_lines(): \$str is \"$str\"" .
+                 $this->CRLF;
+      }
+      $data .= $str;
+      if($this->do_debug >= 4) {
+        echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF;
+      }
+      # if the 4th character is a space then we are done reading
+      # so just break the loop
+      if(substr($str,3,1) == " ") { break; }
+    }
+    return $data;
+  }
+
+}
+
+
+ ?>
diff --git a/0.2.1/inc/phpmailer/codeworxtech.html b/0.2.1/inc/phpmailer/codeworxtech.html
new file mode 100644 (file)
index 0000000..9129a4d
--- /dev/null
@@ -0,0 +1,72 @@
+<html>
+<head>
+<style>
+body, p {
+  font-family: Arial, Helvetica, sans-serif;
+  font-size: 12px;
+}
+div.width {
+  width: 500px;
+  text-align: left;
+}
+</style>
+</head>
+<body>
+<center>
+<div class="width">
+<p><b>My name is Andy Prevost, AKA "codeworxtech".</b><br>
+<a href="http://www.codeworxtech.com">www.codeworxtech.com</a> for more information.<br>
+<a href="http://www.worxhost.com">www.worxhost.com</a> our webhosting division.</p>
+<p>Before I introduce myself, our company and our developer tools to you, let me answer a huge question you likely have:</p>
+<p><strong>WHY USE OUR TOOLS &amp; WHAT&#39;S IN IT FOR YOU?</strong></p>
+<p>A valid question. We're developers too. We've been writing software, primarily for the internet, for more than 15 years. Along the way, there are two major things that had tremendous impact of our company: PHP and Open Source. PHP is without doubt the most popular platform for the internet. There has been more progress in this area of technology because of Open Source software than in any other IT segment. We have used many open source tools, some as learning tools, some as components in projects we were working on. To us, it's not about popularity ... we're committed to robust, stable, and efficient tools you can use to get your projects in your user's hands quickly. So the shorter answer: what's in it for you? rapid development and rapid deployment without fuss and with straight forward open source licensing.</p>
+<p>Now, the introductions:</p>
+<p>Our company, <strong>Codeworx Technologies</strong>, is the publisher of several Open Source applications and developer tools as well as several commercial PHP applications. The Open Source applications are ttCMS and DCP Portal. The Open Source developer tools include QuickComponents (QuickSkin, QuickCache, and QuickTabs) and now PHPMailer. 
+We have staff and offices in the United States, Canada, Caribbean, the Middle 
+East, and our primary development center in India. Our company is represented by 
+agents and resellers globally.</p>
+<p><strong>Codeworx Technologies</strong> is at the forefront of developing PHP applications. Our staff are all Zend Certified university educated and experts at object oriented programming. While <strong>Codeworx Technologies</strong> can handle any project from trouble shooting programs written by others all the way to finished mission-critical applications, we specialize in taking projects from inception all the way through to implementation - on budget, and on time. If you need help with your projects, we&#39;re the team to get it done right at a reasonable price.</p>
+<p>Over the years, there have been a number of tools that have been constant favorites in all of our projects. We have become the project administrators for most of these tools.</p>
+<p>Our developer tools are all Open Source. Here&#39;s a brief description:</p>
+<ul>
+  <li><strong>PHPMailer</strong>. Originally authored by Brent Matzelle, PHPMailer is the leading "email transfer class" for PHP. PHPMailer is downloaded more than 18000 times each and every month by developers looking for a stable, simple email solution. We used it ourselves for years as our favorite tool. It&#39;s always been small (the entire footprint is around 100 Kb), stable, and as complete a solution as you can find. Other tools are nowhere near as simple. And more importantly, most of our applications (including PHPMailer) is implemented in a smaller footprint than one competing email class. Our thanks to Brent Matzelle for this superb tool - our commitment is to keep it lean, keep it focused, and compliant with standards. Visit the PHPMailer website at
+  <a href="http://phpmailer.codeworxtech.com/">http://phpmailer.codeworxtech.com/</a>.<br>
+  <br>
+  </li>
+  <li><strong>QuickCache</strong>. Originally authored by Jean Pierre Deckers as jpCache, QuickCache is an HTTP OpCode caching strategy that works on your entire site with only one line of code at the top of your script. The cached pages can be stored as files or as database objects. The benefits are absolutely astounding: bandwidth savings of up to 80% and screen display times increased by 8 - 10x. Visit the QuickCache website at
+  <a href="http://quickcache.codeworxtech.com/">http://quickcache.codeworxtech.com/</a>.<br>
+  <br>
+  </li>
+  <li><strong>QuickSkin</strong>. Originally authored by Philipp v. Criegern and named "SmartTemplate". The project was taken over by Manuel 'EndelWar' Dalla Lana and now by "codeworxtech". QuickSkin is one of the truly outstanding templating engines available, but has always been confused with Smarty Templating Engine. QuickSkin is even more relevant today than when it was launched. It&#39;s a small footprint with big impact on your projects. It features a built in caching technology, token based substitution, and works on the concept of one single HTML file as the template. The HTML template file can contain variable information making it one small powerful tool for your developer tool kit. Visit the QuickSkin website at
+  <a href="http://quickskin.codeworxtech.com/">http://quickskin.codeworxtech.com/</a>.<br>
+  <br>
+  </li>
+  <li><strong>QuickTabs</strong>. If you read about the projects above, you'll get the sense that we are minimalists and that's pretty accurate. We prefer using tools that are small, efficient, and effective. We have no use for software bloat. QuickTabs came to life in several of our projects where we needed to display complex information in a simplified manner to users. It had to function something like a "wizard" interface, but with more flexibility to float from one item to another. We looked at various Ajax-based solutions, but found one annoying problem with Ajax - page reloads if switching between items (with corresponding data loss if changed by the customer). QuickTabs is our solution to this by presenting complex data in a Javascript show/hide div set. It&#39;s not a complex architecture, but it works! Visit the QuickTabs website at <a href="http://quicktabs.codeworxtech.com/">http://quicktabs.codeworxtech.com/</a>.</li>
+</ul>
+<p>We're committed to PHP and to the Open Source community.</p>
+<p>Opportunities with <strong>Codeworx Technologies</strong>:</p>
+<ul>
+<li>Resellers/Agents: We're always interested in talking with companies that 
+want to represent
+<strong>Codeworx Technologies</strong> in their markets. We also have private label programs for our commercial products (in certain circumstances).</li>
+<li>Programmers/Developers: We are usually fully staffed, however, if you would like to be considered for a career with
+<strong>Codeworx Technologies</strong>, we would be pleased to hear from you.<br>
+A few things to note:<br>
+<ul>
+  <li>we do not hire contractors and we do not outsource (these are services we offer)</li>
+  <li>experience level does not matter: from fresh out of college to multi-year experience - it&#39;s your 
+  creative mind and a positive attitude we want</li>
+  <li>if you contact us looking for employment, include a cover letter, indicate what type of work/career you are looking for and expected compensation</li>
+  <li>if you are representing someone else looking for work, do not contact us. We have an exclusive relationship with a recruiting partner already and not interested in altering the arrangement. We will not hire your candidate under any circumstances unless they wish to approach us individually.</li>
+  <li>any contact that ignores any of these points will be discarded</li>
+</ul></li>
+<li>Affiliates/Partnerships: We are interested in partnering with other firms who are leaders in their field. We clearly understand that successful companies are built on successful relationships in all industries world-wide. We currently have innovative relationships throughout the world that are mutually beneficial. Drop us a line and let&#39;s talk.</li>
+</ul>
+Regards,<br>
+Andy Prevost (aka, codeworxtech)<br>
+<a href="mailto:codeworxtech@users.sourceforge.net">codeworxtech@users.sourceforge.net</a><br>
+<br>
+</div>
+</center>
+</body>
+</html>
diff --git a/0.2.1/inc/phpmailer/docs/extending.html b/0.2.1/inc/phpmailer/docs/extending.html
new file mode 100644 (file)
index 0000000..34f3720
--- /dev/null
@@ -0,0 +1,148 @@
+<html>
+<head>
+<title>Examples using phpmailer</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+<h2>Examples using phpmailer</h2>
+
+<h3>1. Advanced Example</h3>
+<p>
+
+This demonstrates sending out multiple email messages with binary attachments
+from a MySQL database with multipart/alternative support.<p>
+<table cellpadding="4" border="1" width="80%">
+<tr>
+<td bgcolor="#CCCCCC">
+<pre>
+require("class.phpmailer.php");
+
+$mail = new phpmailer();
+
+$mail->From     = "list@example.com";
+$mail->FromName = "List manager";
+$mail->Host     = "smtp1.example.com;smtp2.example.com";
+$mail->Mailer   = "smtp";
+
+@MYSQL_CONNECT("localhost","root","password");
+@mysql_select_db("my_company");
+$query� =�"SELECT full_name, email,�photo�FROM employee�WHERE�id=$id";
+$result�=�@MYSQL_QUERY($query);
+
+while ($row = mysql_fetch_array ($result))
+{
+    // HTML body
+    $body  = "Hello &lt;font size=\"4\"&gt;" . $row["full_name"] . "&lt;/font&gt;, &lt;p&gt;";
+    $body .= "&lt;i&gt;Your&lt;/i&gt; personal photograph to this message.&lt;p&gt;";
+    $body .= "Sincerely, &lt;br&gt;";
+    $body .= "phpmailer List manager";
+
+    // Plain text body (for mail clients that cannot read HTML)
+    $text_body  = "Hello " . $row["full_name"] . ", \n\n";
+    $text_body .= "Your personal photograph to this message.\n\n";
+    $text_body .= "Sincerely, \n";
+    $text_body .= "phpmailer List manager";
+
+    $mail->Body    = $body;
+    $mail->AltBody = $text_body;
+    $mail->AddAddress($row["email"], $row["full_name"]);
+    $mail->AddStringAttachment($row["photo"], "YourPhoto.jpg");
+
+    if(!$mail->Send())
+        echo "There has been a mail error sending to " . $row["email"] . "&lt;br&gt;";
+
+    // Clear all addresses and attachments for next loop
+    $mail->ClearAddresses();
+    $mail->ClearAttachments();
+}
+</pre>
+</td>
+</tr>
+</table>
+<p>
+
+<h3>2. Extending phpmailer</h3>
+<p>
+
+Extending classes with inheritance is one of the most
+powerful features of object-oriented
+programming.  It allows you to make changes to the
+original class for your
+own personal use without hacking the original
+classes.  Plus, it is very
+easy to do. I've provided an example:
+
+<p>
+Here's a class that extends the phpmailer class and sets the defaults
+for the particular site:<br>
+PHP include file: <b>mail.inc.php</b>
+<p>
+
+<table cellpadding="4" border="1" width="80%">
+<tr>
+<td bgcolor="#CCCCCC">
+<pre>
+require("class.phpmailer.php");
+
+class my_phpmailer extends phpmailer {
+    // Set default variables for all new objects
+    var $From     = "from@example.com";
+    var $FromName = "Mailer";
+    var $Host     = "smtp1.example.com;smtp2.example.com";
+    var $Mailer   = "smtp";                         // Alternative to IsSMTP()
+    var $WordWrap = 75;
+
+    // Replace the default error_handler
+    function error_handler($msg) {
+        print("My Site Error");
+        print("Description:");
+        printf("%s", $msg);
+        exit;
+    }
+
+    // Create an additional function
+    function do_something($something) {
+        // Place your new code here
+    }
+}
+</td>
+</tr>
+</table>
+<br>
+
+Now here's a normal PHP page in the site, which will have all the defaults set
+above:<br>
+Normal PHP file: <b>mail_test.php</b>
+<p>
+
+<table cellpadding="4" border="1" width="80%">
+<tr>
+<td bgcolor="#CCCCCC">
+<pre>
+require("mail.inc.php");
+
+// Instantiate your new class
+$mail = new my_phpmailer;
+
+// Now you only need to add the necessary stuff
+$mail->AddAddress("josh@example.com", "Josh Adams");
+$mail->Subject = "Here is the subject";
+$mail->Body    = "This is the message body";
+$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip");  // optional name
+
+if(!$mail->Send())
+{
+   echo "There was an error sending the message";
+   exit;
+}
+
+echo "Message was sent successfully";
+</pre>
+</td>
+</tr>
+</table>
+</p>
+
+</body>
+</html>
diff --git a/0.2.1/inc/phpmailer/docs/faq.html b/0.2.1/inc/phpmailer/docs/faq.html
new file mode 100644 (file)
index 0000000..283e651
--- /dev/null
@@ -0,0 +1,66 @@
+<html>
+<head>
+<title>phpmailer FAQ</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+<h2>phpmailer FAQ</h2>
+
+<p>
+<b>I'm using the SMTP mailer and I keep on getting a timeout message 
+well before the X seconds I set it for.  What gives?</b>
+<br>
+PHP versions 4.0.4pl1 and earlier have a bug in which sockets timeout 
+early.  You can fix this by re-compiling PHP 4.0.4pl1 with this fix: 
+<a href="timeoutfix.diff">timeoutfix.diff</a>. Otherwise you can wait 
+for the new PHP release.
+</p>
+
+<p>
+<b>I am concerned that using include files will take up too much
+processing time on my computer.  How can I make it run faster?</b>
+<br>
+PHP by itself is very fast.  Much faster than ASP or JSP running on
+the same type of server.  This is because it has very little overhead compared
+to its competitors and it pre-compiles all of
+its code before it runs each script (in PHP4).  However, all of
+this compiling and re-compiling can take up a lot of valuable
+computer resources.  However, there are programs out there that compile
+PHP code and store it in memory (or on mmaped files) to reduce the
+processing immensely.  Two of these: <a href="http://apc.communityconnect.com">APC
+(Alternative PHP Cache)</a> and <a href="http://bwcache.bware.it/index.htm">Afterburner</a> 
+(<a href="http://www.mm4.de/php4win/mod_php4_win32/">Win32 download</a>) 
+are excellent free tools that do just this.  If you have the money
+you might also try <a href="http://www.zend.com">Zend Cache</a>, it is
+even faster than the open source varieties.  All of these tools make your
+scripts run faster while also reducing the load on your server. I have tried
+them myself and they are quite stable too.
+</p>
+
+
+<p>
+<b>What mailer gives me the best performance?</b>
+<br>
+On a single machine the mail() or sendmail mailers give you the best 
+performance because they do not have the added overhead of SMTP.
+If you have you have your mail server on a another machine then
+SMTP is your only option, but you do get the benefit of redundant
+mail servers.
+</p>
+
+<p>
+<b>When I try to attach a file with on my server I get a 
+"Could not find {file} on filesystem error".  Why is this?</b>
+<br>
+If you are using a Unix machine this is probably because the user 
+running your web server does not have read access to the directory 
+in question.  If you are using Windows, then the problem probably is 
+that you have used single backslashes to denote directories ("\").  
+A single backslash has a special meaning to PHP so these are not 
+valid.  Instead use double backslashes ("\\") or a single forward 
+slash ("/").
+</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/docs/pop3_article.txt b/0.2.1/inc/phpmailer/docs/pop3_article.txt
new file mode 100644 (file)
index 0000000..cc54f7c
--- /dev/null
@@ -0,0 +1,39 @@
+This is built for PHP Mailer 1.72 and was not tested with any previous version. It was developed under PHP 4.3.11 (E_ALL). It works under PHP 5 and 5.1 with E_ALL, but not in Strict mode due to var deprecation (but then neither does PHP Mailer either!). It follows the RFC 1939 standard explicitly and is fully commented.
+
+With that noted, here is how to implement it:
+Install the class file
+
+I didn't want to modify the PHP Mailer classes at all, so you will have to include/require this class along with the base one. It can sit quite happily in the phpmailer-1.72 directory:
+[geshi lang=php] require 'phpmailer-1.72/class.phpmailer.php'; require 'phpmailer-1.72/class.pop3.php'; [/geshi]
+When you need it, create your POP3 object
+
+Right before I invoke PHP Mailer I activate the POP3 authorisation. POP3 before SMTP is a process whereby you login to your web hosts POP3 mail server BEFORE sending out any emails via SMTP. The POP3 logon 'verifies' your ability to send email by SMTP, which typically otherwise blocks you. On my web host (Pair Networks) a single POP3 logon is enough to 'verify' you for 90 minutes. Here is some sample PHP code that activates the POP3 logon and then sends an email via PHP Mailer:
+[geshi lang=php] Authorise('pop3.example.com', 110, 30, 'mailer', 'password', 1); $mail = new PHPMailer(); $mail->SMTPDebug = 2; $mail->IsSMTP(); $mail->IsHTML(false); $mail->Host = 'relay.example.com'; $mail->From = 'mailer@example.com'; $mail->FromName = 'Example Mailer'; $mail->Subject = 'My subject'; $mail->Body = 'Hello world'; $mail->AddAddress('rich@corephp.co.uk', 'Richard Davey'); if (!$mail->Send()) { echo $mail->ErrorInfo; } ?> [/geshi]
+
+The PHP Mailer parts of this code should be obvious to anyone who has used PHP Mailer before. One thing to note - you almost certainly will not need to use SMTP Authentication *and* POP3 before SMTP together. The Authorisation method is a proxy method to all of the others within that class. There are Connect, Logon and Disconnect methods available, but I wrapped them in the single Authorisation one to make things easier.
+The Parameters
+
+The Authorise parameters are as follows:
+[geshi lang=php]$pop->Authorise('pop3.example.com', 110, 30, 'mailer', 'password', 1);[/geshi]
+
+   1. pop3.example.com - The POP3 Mail Server Name (hostname or IP address)
+   2. 110 - The POP3 Port on which to connect (default is usually 110, but check with your host)
+   3. 30 - A connection time-out value (in seconds)
+   4. mailer - The POP3 Username required to logon
+   5. password - The POP3 Password required to logon
+   6. 1 - The class debug level (0 = off, 1+ = debug output is echoed to the browser)
+
+Final Comments + the Download
+
+1) This class does not support APOP connections. This is only because I did not have an APOP server to test with, but if you'd like to see that added just contact me.
+
+2) Opening and closing lots of POP3 connections can be quite a resource/network drain. If you need to send a whole batch of emails then just perform the authentication once at the start, and then loop through your mail sending script. Providing this process doesn't take longer than the verification period lasts on your POP3 server, you should be fine. With my host that period is 90 minutes, i.e. plenty of time.
+
+3) If you have heavy requirements for this script (i.e. send a LOT of email on a frequent basis) then I would advise seeking out an alternative sending method (direct SMTP ideally). If this isn't possible then you could modify this class so the 'last authorised' date is recorded somewhere (MySQL, Flat file, etc) meaning you only open a new connection if the old one has expired, saving you precious overhead.
+
+4) There are lots of other POP3 classes for PHP available. However most of them implement the full POP3 command set, where-as this one is purely for authentication, and much lighter as a result. However using any of the other POP3 classes to just logon to your server would have the same net result. At the end of the day, use whatever method you feel most comfortable with.
+Download
+
+Here is the full class file plus my test script: POP_before_SMTP_PHPMailer.zip (4 KB) - Please note that it does not include PHPMailer itself.
+
+My thanks to Chris Ryan for the inspiration (even if indirectly, via his SMTP class)
diff --git a/0.2.1/inc/phpmailer/docs/use_gmail.txt b/0.2.1/inc/phpmailer/docs/use_gmail.txt
new file mode 100644 (file)
index 0000000..3f384eb
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+
+// example on using PHPMailer with GMAIL 
+
+include("class.phpmailer.php");
+include("class.smtp.php");
+
+$mail=new PHPMailer();
+
+$mail->IsSMTP();
+$mail->SMTPAuth   = true;                  // enable SMTP authentication
+$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
+$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
+$mail->Port       = 465;                   // set the SMTP port 
+
+$mail->Username   = "yourname@gmail.com";  // GMAIL username
+$mail->Password   = "password";            // GMAIL password
+
+$mail->From       = "replyto@yourdomain.com";
+$mail->FromName   = "Webmaster";
+$mail->Subject    = "This is the subject";
+$mail->Body       = "Hi,<br>This is the HTML BODY<br>";                      //HTML Body
+$mail->AltBody    = "This is the body when user views in plain text format"; //Text Body
+
+$mail->WordWrap   = 50; // set word wrap
+
+$mail->AddAddress("username@domain.com","First Last");
+$mail->AddReplyTo("replyto@yourdomain.com","Webmaster");
+$mail->AddAttachment("/path/to/file.zip");             // attachment
+$mail->AddAttachment("/path/to/image.jpg", "new.jpg"); // attachment
+
+$mail->IsHTML(true); // send as HTML
+
+if(!$mail->Send()) {
+  echo "Mailer Error: " . $mail->ErrorInfo;
+} else {
+  echo "Message has been sent";
+}
+
+?>
diff --git a/0.2.1/inc/phpmailer/examples/contents.html b/0.2.1/inc/phpmailer/examples/contents.html
new file mode 100644 (file)
index 0000000..3efbda2
--- /dev/null
@@ -0,0 +1,12 @@
+<body background="images/bkgrnd.gif" style="margin: 0px;">
+<div style="width: 640px; font-family: Arial, Helvetica, sans-serif; font-size: 11px;">
+<div align="center"><img src="images/phpmailer.gif" style="height: 90px; width: 340px"></div><br>
+<br>
+&nbsp;This is a test of PHPMailer v2.0.0 rc1.<br>
+<br>
+This particular example uses <strong>HTML</strong>, with a &lt;div&gt; tag and inline<br>
+styles.<br>
+<br>
+Also note the use of the PHPMailer at the top with no specific code to handle
+including it in the body of the email.</div>
+</body>
diff --git a/0.2.1/inc/phpmailer/examples/images/bkgrnd.gif b/0.2.1/inc/phpmailer/examples/images/bkgrnd.gif
new file mode 100644 (file)
index 0000000..bc89624
Binary files /dev/null and b/0.2.1/inc/phpmailer/examples/images/bkgrnd.gif differ
diff --git a/0.2.1/inc/phpmailer/examples/images/phpmailer.gif b/0.2.1/inc/phpmailer/examples/images/phpmailer.gif
new file mode 100644 (file)
index 0000000..5e26971
Binary files /dev/null and b/0.2.1/inc/phpmailer/examples/images/phpmailer.gif differ
diff --git a/0.2.1/inc/phpmailer/examples/images/phpmailer.png b/0.2.1/inc/phpmailer/examples/images/phpmailer.png
new file mode 100644 (file)
index 0000000..abe0101
Binary files /dev/null and b/0.2.1/inc/phpmailer/examples/images/phpmailer.png differ
diff --git a/0.2.1/inc/phpmailer/examples/images/phpmailer_mini.gif b/0.2.1/inc/phpmailer/examples/images/phpmailer_mini.gif
new file mode 100644 (file)
index 0000000..dc7d782
Binary files /dev/null and b/0.2.1/inc/phpmailer/examples/images/phpmailer_mini.gif differ
diff --git a/0.2.1/inc/phpmailer/examples/index.html b/0.2.1/inc/phpmailer/examples/index.html
new file mode 100644 (file)
index 0000000..1dbc47b
--- /dev/null
@@ -0,0 +1,73 @@
+<p>The example file &quot;test1.php&quot; contents include:</p>
+<div style="width: 600px; background-color: #CCCCCC;">
+<code>
+&lt;?php<br>
+<br>
+include_once('../class.phpmailer.php');<br>
+<br>
+$mail    = new PHPMailer();<br>
+<br>
+$body    = $mail->getFile('contents.html');<br>
+<br>
+$body    = eregi_replace("[\]",'',$body);<br>
+$subject = eregi_replace("[\]",'',$subject);<br>
+<br>
+$mail->From     = "name@yourdomain.com";<br>
+$mail->FromName = "First Last";<br>
+<br>
+$mail->Subject = "PHPMailer Test Subject";<br>
+<br>
+$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test<br>
+<br>
+$mail->MsgHTML($body);<br>
+<br>
+$mail->AddAddress("whoto@otherdomain.com", "John Doe");<br>
+<br>
+if(!$mail->Send()) {<br>
+  echo 'Failed to send mail';<br>
+} else {<br>
+  echo 'Mail sent';<br>
+}<br>
+<br>
+?&gt;
+</code>
+</div>
+<br>
+Although you could use full compabitility with PHPMailer 1.7.3, this example
+shows how to use the new features. If you view 'contents.html', you will note
+that there is a background image used in the &lt;body tag as well as an image used
+with a regular &lt;img tag. Here&#39;s what the HTML file looks like:<br>
+<br>
+<div style="width: 600px; background-color: #CCCCCC;">
+<code>
+&lt;body background="images/bkgrnd.gif" style="margin: 0px;"&gt;<br>
+&lt;div style="width: 640px; font-family: Arial, Helvetica, sans-serif; font-size: 11px;"&gt;<br>
+&lt;div align="center"&gt;&lt;img src="images/phpmailer.gif" style="height: 90px; width: 340px"&gt;&lt;/div&gt;&lt;br&gt;<br>
+&lt;br&gt;<br>
+&nbsp;This is a test of PHPMailer v2.0.0 rc1.&lt;br&gt;<br>
+&lt;br&gt;<br>
+This particular example uses &lt;strong&gt;HTML&lt;/strong&gt;, with a &lt;div&gt; tag and inline&lt;br&gt;<br>
+styles.&lt;br&gt;<br>
+&lt;br&gt;<br>
+Also note the use of the PHPMailer at the top with no specific code to handle<br>
+including it in the body of the email.&lt;/div&gt;<br>
+&lt;/body&gt;<br>
+</code>
+</div>
+<br>
+A few things to notice in the PHP script that generates the email:
+<ul>
+  <li>the use of $mail-&gt;AltBody is completely optional. If not used, PHPMailer
+  will use the HTML text with htmlentities().</li>
+  <li>the background= and &lt;img src= images were processed without any directives
+  or methods from the PHP script</li>
+  <li>there is no specific code to define the image type ... that is handled
+  automatically by PHPMailer when it parses the images</li>
+  <li>we are using a new class method '$mail->MsgHTML($body)' ... that is what will handle the parsing of the images and creating the AltBody text</li>
+</ul>
+<p>Of course, you can still use PHPMailer the same way you have in the past.
+That provides full compatibility with all existing scripts, while new scripts
+can take advantage of the new features.</p>
+<p>Modify test1.php now with your own email address and try it out.</p>
+To see what the email SHOULD look like in your HTML compatible email viewer: <a href="contents.html">click here</a><br>
+
diff --git a/0.2.1/inc/phpmailer/examples/pop3_before_smtp_test.php b/0.2.1/inc/phpmailer/examples/pop3_before_smtp_test.php
new file mode 100644 (file)
index 0000000..b10b5e1
--- /dev/null
@@ -0,0 +1,39 @@
+<html>
+<head>
+<title>POP before SMTP Test</title>
+</head>
+
+<body>
+
+<pre>
+<?php
+  require 'class.phpmailer.php';
+  require 'class.pop3.php';
+
+  $pop = new POP3();
+  $pop->Authorise('pop3.example.com', 110, 30, 'mailer', 'password', 1);
+
+  $mail = new PHPMailer();
+
+  $mail->IsSMTP();
+  $mail->SMTPDebug = 2;
+  $mail->IsHTML(false);
+
+  $mail->Host     = 'relay.example.com';
+
+  $mail->From     = 'mailer@example.com';
+  $mail->FromName = 'Example Mailer';
+
+  $mail->Subject  =  'My subject';
+  $mail->Body     =  'Hello world';
+  $mail->AddAddress('name@anydomain.com', 'First Last');
+
+  if (!$mail->Send())
+  {
+    echo $mail->ErrorInfo;
+  }
+?>
+</pre>
+
+</body>
+</html>
diff --git a/0.2.1/inc/phpmailer/examples/test1.php b/0.2.1/inc/phpmailer/examples/test1.php
new file mode 100644 (file)
index 0000000..8093828
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+include_once('../class.phpmailer.php');
+
+$mail    = new PHPMailer();
+
+$body    = $mail->getFile('contents.html');
+
+$body    = eregi_replace("[\]",'',$body);
+
+$mail->From     = "name@yourdomain.com";
+$mail->FromName = "First Last";
+
+$mail->Subject = "PHPMailer Test Subject";
+
+$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
+
+$mail->MsgHTML($body);
+
+$mail->AddAddress("whoto@otherdomain.com", "John Doe");
+
+if(!$mail->Send()) {
+  echo 'Failed to send mail';
+} else {
+  echo 'Mail sent';
+}
+
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-br.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-br.php
new file mode 100644 (file)
index 0000000..7e79e18
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Portuguese Version
+ * By Paulo Henrique Garcia - paulo@controllerweb.com.br
+ */
+
+$PHPMAILER_LANG = array();
+$PHPMAILER_LANG["provide_address"] = 'Voc� deve fornecer pelo menos um endere�o de destinat�rio de email.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer n�o suportado.';
+$PHPMAILER_LANG["execute"] = 'N�o foi poss�vel executar: ';
+$PHPMAILER_LANG["instantiate"] = 'N�o foi poss�vel instanciar a fun��o mail.';
+$PHPMAILER_LANG["authenticate"] = 'Erro de SMTP: N�o foi poss�vel autenticar.';
+$PHPMAILER_LANG["from_failed"] = 'Os endere�os de rementente a seguir falharam: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Erro de SMTP: Os endere�os de destinat�rio a seguir falharam: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Erro de SMTP: Dados n�o aceitos.';
+$PHPMAILER_LANG["connect_host"] = 'Erro de SMTP: N�o foi poss�vel conectar com o servidor SMTP.';
+$PHPMAILER_LANG["file_access"] = 'N�o foi poss�vel acessar o arquivo: ';
+$PHPMAILER_LANG["file_open"] = 'Erro de Arquivo: N�o foi poss�vel abrir o arquivo: ';
+$PHPMAILER_LANG["encoding"] = 'Codifica��o desconhecida: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-ca.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-ca.php
new file mode 100644 (file)
index 0000000..41516d5
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Catalan Version
+ * By Ivan: web AT microstudi DOT com
+ */
+
+$PHPMAILER_LANG = array(); 
+
+$PHPMAILER_LANG["provide_address"] = 'S\'ha de proveir almenys una adre�a d\'email com a destinatari.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer no est� suportat';
+$PHPMAILER_LANG["execute"] = 'No es pot executar: ';
+$PHPMAILER_LANG["instantiate"] = 'No s\'ha pogut crear una inst�ncia de la funci� Mail.';
+$PHPMAILER_LANG["authenticate"] = 'Error SMTP: No s\'hapogut autenticar.';
+$PHPMAILER_LANG["from_failed"] = 'La(s) seg�ent(s) adreces de remitent han fallat: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Error SMTP: Els seg�ents destinataris han fallat: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Error SMTP: Dades no acceptades.';
+$PHPMAILER_LANG["connect_host"] = 'Error SMTP: No es pot connectar al servidor SMTP.';
+$PHPMAILER_LANG["file_access"] = 'No es pot accedir a l\'arxiu: ';
+$PHPMAILER_LANG["file_open"] = 'Error d\'Arxiu: No es pot obrir l\'arxiu: ';
+$PHPMAILER_LANG["encoding"] = 'Codificaci� desconeguda: ';
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-cz.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-cz.php
new file mode 100644 (file)
index 0000000..8500264
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Czech Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Mus�te zadat alespo� jednu ' .
+                                     'emailovou adresu p��jemce.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailov� klient nen� podporov�n.';
+$PHPMAILER_LANG["execute"] = 'Nelze prov�st: ';
+$PHPMAILER_LANG["instantiate"] = 'Nelze vytvo�it instanci emailov� funkce.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Chyba autentikace.';
+$PHPMAILER_LANG["from_failed"] = 'N�sleduj�c� adresa From je nespr�vn�: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: Adresy p��jemc� ' .
+                                       'nejsou spr�vn� ' .
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data nebyla p�ijata';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Nelze nav�zat spojen� se ' .
+                                  ' SMTP serverem.';
+$PHPMAILER_LANG["file_access"] = 'Soubor nenalezen: ';
+$PHPMAILER_LANG["file_open"] = 'File Error: Nelze otev��t soubor pro �ten�: ';
+$PHPMAILER_LANG["encoding"] = 'Nezn�m� k�dov�n�: ';
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-de.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-de.php
new file mode 100644 (file)
index 0000000..d21836a
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * German Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Bitte geben Sie mindestens eine ' .
+                                     'Empf&auml;nger Emailadresse an.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer wird nicht unterst&uuml;tzt.';
+$PHPMAILER_LANG["execute"] = 'Konnte folgenden Befehl nicht ausf&uuml;hren: ';
+$PHPMAILER_LANG["instantiate"] = 'Mail Funktion konnte nicht initialisiert werden.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Fehler: Authentifizierung fehlgeschlagen.';
+$PHPMAILER_LANG["from_failed"] = 'Die folgende Absenderadresse ist nicht korrekt: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Fehler: Die folgenden ' .
+                                       'Empf&auml;nger sind nicht korrekt: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Fehler: Daten werden nicht akzeptiert.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Fehler: Konnte keine Verbindung zum SMTP-Host herstellen.';
+$PHPMAILER_LANG["file_access"] = 'Zugriff auf folgende Datei fehlgeschlagen: ';
+$PHPMAILER_LANG["file_open"] = 'Datei Fehler: konnte folgende Datei nicht &ouml;ffnen: ';
+$PHPMAILER_LANG["encoding"] = 'Unbekanntes Encoding-Format: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-dk.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-dk.php
new file mode 100644 (file)
index 0000000..e7cf2ac
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Danish Version
+ * Author: Mikael Stokkebro <info@stokkebro.dk>
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Du skal indtaste mindst en ' .
+                                     'modtagers emailadresse.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer underst�ttes ikke.';
+$PHPMAILER_LANG["execute"] = 'Kunne ikke k�re: ';
+$PHPMAILER_LANG["instantiate"] = 'Kunne ikke initialisere email funktionen.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP fejl: Kunne ikke logge p�.';
+$PHPMAILER_LANG["from_failed"] = 'F�lgende afsenderadresse er forkert: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP fejl: F�lgende' .
+                                       'modtagere er forkerte: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP fejl: Data kunne ikke accepteres.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.';
+$PHPMAILER_LANG["file_access"] = 'Ingen adgang til fil: ';
+$PHPMAILER_LANG["file_open"] = 'Fil fejl: Kunne ikke �bne filen: ';
+$PHPMAILER_LANG["encoding"] = 'Ukendt encode-format: ';
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-en.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-en.php
new file mode 100644 (file)
index 0000000..2f45383
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * English Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'You must provide at least one ' .
+                                     'recipient email address.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.';
+$PHPMAILER_LANG["execute"] = 'Could not execute: ';
+$PHPMAILER_LANG["instantiate"] = 'Could not instantiate mail function.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Could not authenticate.';
+$PHPMAILER_LANG["from_failed"] = 'The following From address failed: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: The following ' .
+                                       'recipients failed: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data not accepted.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Could not connect to SMTP host.';
+$PHPMAILER_LANG["file_access"] = 'Could not access file: ';
+$PHPMAILER_LANG["file_open"] = 'File Error: Could not open file: ';
+$PHPMAILER_LANG["encoding"] = 'Unknown encoding: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-es.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-es.php
new file mode 100644 (file)
index 0000000..77cf15f
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Versi�n en espa�ol
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Debe proveer al menos una ' .
+                                     'direcci�n de email como destinatario.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer no est� soportado.';
+$PHPMAILER_LANG["execute"] = 'No puedo ejecutar: ';
+$PHPMAILER_LANG["instantiate"] = 'No pude crear una instancia de la funci�n Mail.';
+$PHPMAILER_LANG["authenticate"] = 'Error SMTP: No se pudo autentificar.';
+$PHPMAILER_LANG["from_failed"] = 'La(s) siguiente(s) direcciones de remitente fallaron: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Error SMTP: Los siguientes ' .
+                                       'destinatarios fallaron: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Error SMTP: Datos no aceptados.';
+$PHPMAILER_LANG["connect_host"] = 'Error SMTP: No puedo conectar al servidor SMTP.';
+$PHPMAILER_LANG["file_access"] = 'No puedo acceder al archivo: ';
+$PHPMAILER_LANG["file_open"] = 'Error de Archivo: No puede abrir el archivo: ';
+$PHPMAILER_LANG["encoding"] = 'Codificaci�n desconocida: ';
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-et.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-et.php
new file mode 100644 (file)
index 0000000..eb56de7
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Estonian Version
+ * By Indrek P&auml;ri
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Te peate m&auml;&auml;rama v&auml;hemalt &uuml;he saaja e-posti aadressi.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' maileri tugi puudub.';
+$PHPMAILER_LANG["execute"] = 'Tegevus eba&otilde;nnestus: ';
+$PHPMAILER_LANG["instantiate"] = 'mail funktiooni k&auml;ivitamine eba&otilde;nnestus.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Viga: Autoriseerimise viga.';
+$PHPMAILER_LANG["from_failed"] = 'J&auml;rgnev saatja e-posti aadress on vigane: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Viga: J&auml;rgnevate saajate e-posti aadressid on vigased: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Viga: Vigased andmed.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Viga: Ei &otilde;nnestunud luua &uuml;hendust SMTP serveriga.';
+$PHPMAILER_LANG["file_access"] = 'Pole piisavalt &otilde;iguseid j&auml;rgneva faili avamiseks: ';
+$PHPMAILER_LANG["file_open"] = 'Faili Viga: Faili avamine eba&otilde;nnestus: ';
+$PHPMAILER_LANG["encoding"] = 'Tundmatu Unknown kodeering: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-fi.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-fi.php
new file mode 100644 (file)
index 0000000..d881080
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Finnish Version
+ * By Jyry Kuukanen
+ */
+
+$PHPMAILER_LANG = array(); 
+
+$PHPMAILER_LANG["provide_address"] = 'Aseta v&auml;hint&auml;&auml;n yksi vastaanottajan ' . 
+                                     's&auml;hk&ouml;postiosoite.'; 
+$PHPMAILER_LANG["mailer_not_supported"] = 'postiv&auml;litintyyppi&auml; ei tueta.'; 
+$PHPMAILER_LANG["execute"] = 'Suoritus ep&auml;onnistui: '; 
+$PHPMAILER_LANG["instantiate"] = 'mail-funktion luonti ep&auml;onnistui.'; 
+$PHPMAILER_LANG["authenticate"] = 'SMTP-virhe: k&auml;ytt&auml;j&auml;tunnistus ep&auml;onnistui.'; 
+$PHPMAILER_LANG["from_failed"] = 'Seuraava l&auml;hett&auml;j&auml;n osoite on virheellinen: '; 
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP-virhe: seuraava vastaanottaja osoite on virheellinen.'; 
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP-virhe: data on virheellinen.'; 
+$PHPMAILER_LANG["connect_host"] = 'SMTP-virhe: yhteys palvelimeen ei onnistu.'; 
+$PHPMAILER_LANG["file_access"] = 'Seuraavaan tiedostoon ei ole oikeuksia: '; 
+$PHPMAILER_LANG["file_open"] = 'Tiedostovirhe: Ei voida avata tiedostoa: '; 
+$PHPMAILER_LANG["encoding"] = 'Tuntematon koodaustyyppi: '; 
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-fo.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-fo.php
new file mode 100644 (file)
index 0000000..e015ced
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Faroese Version [language of the Faroe Islands, a Danish dominion]
+ * This file created: 11-06-2004
+ * Supplied by D�vur S�rensen [www.profo-webdesign.dk]
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'T� skal uppgeva minst ' .
+                                     'm�ttakara-emailadressu(r).';
+$PHPMAILER_LANG["mailer_not_supported"] = ' er ikki supportera�.';
+$PHPMAILER_LANG["execute"] = 'Kundi ikki �tf�ra: ';
+$PHPMAILER_LANG["instantiate"] = 'Kuni ikki instantiera mail funkti�n.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP feilur: Kundi ikki g��kenna.';
+$PHPMAILER_LANG["from_failed"] = 'fylgjandi Fr�/From adressa miseydna�ist: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Feilur: Fylgjandi ' .
+                                       'm�ttakarar miseydna�ust: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP feilur: Data ikki g��kent.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP feilur: Kundi ikki kn�ta samband vi� SMTP vert.';
+$PHPMAILER_LANG["file_access"] = 'Kundi ikki tilganga f�lu: ';
+$PHPMAILER_LANG["file_open"] = 'F�lu feilur: Kundi ikki opna f�lu: ';
+$PHPMAILER_LANG["encoding"] = '�kend encoding: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-fr.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-fr.php
new file mode 100644 (file)
index 0000000..cf63443
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * French Version
+ * bruno@ioda-net.ch 09.08.2003
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Vous devez fournir au moins ' .
+                                     'une adresse de destinataire.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer non support�.';
+$PHPMAILER_LANG["execute"] = 'Ne peut pas lancer l\'ex�cution: ';
+$PHPMAILER_LANG["instantiate"] = 'Impossible d\'instancier la fonction mail.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Erreur: Echec de l\'authentification.';
+$PHPMAILER_LANG["from_failed"] = 'L\'adresse From suivante a �chou� : ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Erreur: Les destinataires ' .
+                                       'suivants sont en erreur : ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Erreur: Data non accept�e.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Erreur: Impossible de connecter le serveur SMTP .';
+$PHPMAILER_LANG["file_access"] = 'N\'arrive pas � acc�der au fichier: ';
+$PHPMAILER_LANG["file_open"] = 'Erreur Fichier: ouverture impossible: ';
+$PHPMAILER_LANG["encoding"] = 'Encodage inconnu: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-hu.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-hu.php
new file mode 100644 (file)
index 0000000..5323aed
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Hungarian Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Meg kell adnod legal�bb egy ' .
+                                     'c�mzett email c�met.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' levelez� nem t�mogatott.';
+$PHPMAILER_LANG["execute"] = 'Nem tudtam v�grehajtani: ';
+$PHPMAILER_LANG["instantiate"] = 'Nem siker�lt p�ld�nyos�tani a mail funkci�t.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Hiba: Sikertelen autentik�ci�.';
+$PHPMAILER_LANG["from_failed"] = 'Az al�bbi Felad� c�m hib�s: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Hiba: Az al�bbi ' .
+                                       'c�mzettek hib�sak: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Hiba: Nem elfogadhat� adat.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Hiba: Nem tudtam csatlakozni az SMTP host-hoz.';
+$PHPMAILER_LANG["file_access"] = 'Nem siker�lt el�rni a k�vetkez� f�jlt: ';
+$PHPMAILER_LANG["file_open"] = 'F�jl Hiba: Nem siker�lt megnyitni a k�vetkez� f�jlt: ';
+$PHPMAILER_LANG["encoding"] = 'Ismeretlen k�dol�s: ';
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-it.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-it.php
new file mode 100644 (file)
index 0000000..26ef64d
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+/**
+* PHPMailer language file.
+* Italian version
+* @package PHPMailer
+* @author Ilias Bartolini <brain79@inwind.it>
+*/
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Deve essere fornito almeno un'.
+                                     ' indirizzo ricevente';
+$PHPMAILER_LANG["mailer_not_supported"] = 'Mailer non supportato';
+$PHPMAILER_LANG["execute"] = "Impossibile eseguire l'operazione: ";
+$PHPMAILER_LANG["instantiate"] = 'Impossibile istanziare la funzione mail';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Impossibile autenticarsi.';
+$PHPMAILER_LANG["from_failed"] = 'I seguenti indirizzi mittenti hanno'.
+                                 ' generato errore: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: I seguenti indirizzi'.
+                                       'destinatari hanno generato errore: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data non accettati dal'.
+                                       'server.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Impossibile connettersi'.
+                                  ' all\'host SMTP.';
+$PHPMAILER_LANG["file_access"] = 'Impossibile accedere al file: ';
+$PHPMAILER_LANG["file_open"] = 'File Error: Impossibile aprire il file: ';
+$PHPMAILER_LANG["encoding"] = 'Encoding set dei caratteri sconosciuto: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-ja.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-ja.php
new file mode 100644 (file)
index 0000000..75e3843
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Japanese Version
+ * By Mitsuhiro Yoshida - http://mitstek.com/
+ * This file is written in EUC-JP.
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = '���ʤ��Ȥ�1�ĥ᡼�륢�ɥ쥹��' .
+                                     '���ꤹ��ɬ�פ�����ޤ���';
+$PHPMAILER_LANG["mailer_not_supported"] = ' �᡼�顼�����ݡ��Ȥ���Ƥ��ޤ���';
+$PHPMAILER_LANG["execute"] = '�¹ԤǤ��ޤ���Ǥ���: ';
+$PHPMAILER_LANG["instantiate"] = '�᡼��ؿ�5���ư��ޤ���Ǥ�����';
+$PHPMAILER_LANG["authenticate"] = 'SMTP���顼: ǧ�ڤǤ��ޤ���Ǥ�����';
+$PHPMAILER_LANG["from_failed"] = '����From���ɥ쥹�˴ְ㤤������ޤ�: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP���顼: ���μ�ԥ��ɥ쥹�� ' .
+                                       '�ְ㤤������ޤ�: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP���顼: �ǡ��������դ����ޤ���Ǥ�����';
+$PHPMAILER_LANG["connect_host"] = 'SMTP���顼: SMTP�ۥ��Ȥ���³�Ǥ��ޤ���Ǥ�����';
+$PHPMAILER_LANG["file_access"] = '�ե�����˥��������Ǥ��ޤ���: ';
+$PHPMAILER_LANG["file_open"] = '�ե����륨�顼: �ե�����򳫤��ޤ���: ';
+$PHPMAILER_LANG["encoding"] = '���$ʥ��󥳡��ǥ���: ';
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-nl.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-nl.php
new file mode 100644 (file)
index 0000000..13aa733
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Dutch Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Er moet tenmiste &eacute;&eacute;n ' .
+                                     'ontvanger emailadres opgegeven worden.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer wordt niet ondersteund.';
+$PHPMAILER_LANG["execute"] = 'Kon niet uitvoeren: ';
+$PHPMAILER_LANG["instantiate"] = 'Kon mail functie niet initialiseren.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Fout: authenticatie mislukt.';
+$PHPMAILER_LANG["from_failed"] = 'De volgende afzender adressen zijn mislukt: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Fout: De volgende ' .
+                                       'ontvangers zijn mislukt: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Fout: Data niet geaccepteerd.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Fout: Kon niet verbinden met SMTP host.';
+$PHPMAILER_LANG["file_access"] = 'Kreeg geen toegang tot bestand: ';
+$PHPMAILER_LANG["file_open"] = 'Bestandsfout: Kon bestand niet openen: ';
+$PHPMAILER_LANG["encoding"] = 'Onbekende codering: ';
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-no.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-no.php
new file mode 100644 (file)
index 0000000..c8767a2
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Norwegian Version
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Du m� ha med minst en' .
+                                     'mottager adresse.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer er ikke supportert.';
+$PHPMAILER_LANG["execute"] = 'Kunne ikke utf�re: ';
+$PHPMAILER_LANG["instantiate"] = 'Kunne ikke instantiate mail funksjonen.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Feil: Kunne ikke authentisere.';
+$PHPMAILER_LANG["from_failed"] = 'F�lgende Fra feilet: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Feil: F�lgende' .
+                                       'mottagere feilet: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Feil: Data ble ikke akseptert.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Feil: Kunne ikke koble til SMTP host.';
+$PHPMAILER_LANG["file_access"] = 'Kunne ikke f� tilgang til filen: ';
+$PHPMAILER_LANG["file_open"] = 'Fil feil: Kunne ikke �pne filen: ';
+$PHPMAILER_LANG["encoding"] = 'Ukjent encoding: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-pl.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-pl.php
new file mode 100644 (file)
index 0000000..61b7deb
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Polish Version, encoding: windows-1250
+ * translated from english lang file ver. 1.72
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Nale�y poda� prawid�owy adres email Odbiorcy.';
+$PHPMAILER_LANG["mailer_not_supported"] = 'Wybrana metoda wysy�ki wiadomo�ci nie jest obs�ugiwana.';
+$PHPMAILER_LANG["execute"] = 'Nie mo�na uruchomi�: ';
+$PHPMAILER_LANG["instantiate"] = 'Nie mo�na wywo�a� funkcji mail(). Sprawd� konfiguracj� serwera.';
+$PHPMAILER_LANG["authenticate"] = 'B��d SMTP: Nie mo�na przeprowadzi� autentykacji.';
+$PHPMAILER_LANG["from_failed"] = 'Nast�puj�cy adres Nadawcy jest jest nieprawid�owy: ';
+$PHPMAILER_LANG["recipients_failed"] = 'B��d SMTP: Nast�puj�cy ' .
+                                       'odbiorcy s� nieprawid�owi: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'B��d SMTP: Dane nie zosta�y przyj�te.';
+$PHPMAILER_LANG["connect_host"] = 'B��d SMTP: Nie mo�na po��czy� si� z wybranym hostem.';
+$PHPMAILER_LANG["file_access"] = 'Brak dost�pu do pliku: ';
+$PHPMAILER_LANG["file_open"] = 'Nie mo�na otworzy� pliku: ';
+$PHPMAILER_LANG["encoding"] = 'Nieznany spos�b kodowania znak�w: ';
+
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-ro.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-ro.php
new file mode 100644 (file)
index 0000000..a330b4a
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Romanian Version
+ * @package PHPMailer
+ * @author Catalin Constantin <catalin@dazoot.ro>
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Trebuie sa adaugati cel putin un recipient (adresa de mail).';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer nu este suportat.';
+$PHPMAILER_LANG["execute"] = 'Nu pot executa:  ';
+$PHPMAILER_LANG["instantiate"] = 'Nu am putut instantia functia mail.';
+$PHPMAILER_LANG["authenticate"] = 'Eroare SMTP: Nu a functionat autentificarea.';
+$PHPMAILER_LANG["from_failed"] = 'Urmatoarele adrese From au dat eroare: ';
+$PHPMAILER_LANG["recipients_failed"] = 'Eroare SMTP: Urmatoarele adrese de mail au dat eroare: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'Eroare SMTP: Continutul mailului nu a fost acceptat.';
+$PHPMAILER_LANG["connect_host"] = 'Eroare SMTP: Nu m-am putut conecta la adresa SMTP.';
+$PHPMAILER_LANG["file_access"] = 'Nu pot accesa fisierul: ';
+$PHPMAILER_LANG["file_open"] = 'Eroare de fisier: Nu pot deschide fisierul: ';
+$PHPMAILER_LANG["encoding"] = 'Encodare necunoscuta: ';
+?>
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-ru.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-ru.php
new file mode 100644 (file)
index 0000000..46f7322
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * PHPMailer language file.
+ * Russian Version by Alexey Chumakov <alex@chumakov.ru>
+ */
+
+$PHPMAILER_LANG = array();
+$PHPMAILER_LANG["provide_address"] = '����������, ������� ���� �� ���� ����� e-mail ' .
+                                     '����������.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' - �������� ������ �� ��������������.';
+$PHPMAILER_LANG["execute"] = '���������� ��������� �������: ';
+$PHPMAILER_LANG["instantiate"] = '���������� ��������� ������� mail.';
+$PHPMAILER_LANG["authenticate"] = '������ SMTP: ������ �����������.';
+$PHPMAILER_LANG["from_failed"] = '�������� ����� �����������: ';
+$PHPMAILER_LANG["recipients_failed"] = '������ SMTP: �������� �� ��������� ' .
+                                       '������� ����������� �� �������: ';
+$PHPMAILER_LANG["data_not_accepted"] = '������ SMTP: ������ �� �������.';
+$PHPMAILER_LANG["connect_host"] = '������ SMTP: �� ������� ������������ � ������� SMTP.';
+$PHPMAILER_LANG["file_access"] = '��� ������� � �����: ';
+$PHPMAILER_LANG["file_open"] = '�������� ������: �� ������� ������� ����: ';
+$PHPMAILER_LANG["encoding"] = '����������� ��� ���������: ';
+?>
+
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-se.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-se.php
new file mode 100644 (file)
index 0000000..44042a8
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * PHPMailer language file.  
+ * Swedish Version
+ * Author: Johan Linn�r <johan@linner.biz>
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'Du m�ste ange minst en ' .
+                                     'mottagares e-postadress.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailer st�ds inte.';
+$PHPMAILER_LANG["execute"] = 'Kunde inte k�ra: ';
+$PHPMAILER_LANG["instantiate"] = 'Kunde inte initiera e-postfunktion.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP fel: Kunde inte autentisera.';
+$PHPMAILER_LANG["from_failed"] = 'F�ljande avs�ndaradress �r felaktig: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP fel: F�ljande ' .
+                                       'mottagare �r felaktig: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP fel: Data accepterades inte.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP fel: Kunde inte ansluta till SMTP-server.';
+$PHPMAILER_LANG["file_access"] = 'Ingen �tkomst till fil: ';
+$PHPMAILER_LANG["file_open"] = 'Fil fel: Kunde inte �ppna fil: ';
+$PHPMAILER_LANG["encoding"] = 'Ok�nt encode-format: ';
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/language/phpmailer.lang-tr.php b/0.2.1/inc/phpmailer/language/phpmailer.lang-tr.php
new file mode 100644 (file)
index 0000000..6bd3c0c
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+/**
+ * PHPMailer dil dosyas�.
+ * T�rk�e Versiyonu
+ * �ZYAZILIM - El�in �zel - Can Y�lmaz - Mehmet Benlio�lu
+ */
+
+$PHPMAILER_LANG = array();
+
+$PHPMAILER_LANG["provide_address"] = 'En az bir tane mail adresi belirtmek zorundas�n�z ' .
+                                     'al�c�n�n email adresi.';
+$PHPMAILER_LANG["mailer_not_supported"] = ' mailler desteklenmemektedir.';
+$PHPMAILER_LANG["execute"] = '�al��t�r�lam�yor: ';
+$PHPMAILER_LANG["instantiate"] = '�rnek mail fonksiyonu yarat�lamad�.';
+$PHPMAILER_LANG["authenticate"] = 'SMTP Hatas�: Do�rulanam�yor.';
+$PHPMAILER_LANG["from_failed"] = 'Ba�ar�s�z olan g�nderici adresi: ';
+$PHPMAILER_LANG["recipients_failed"] = 'SMTP Hatas�:  ' .
+                                       'al�c�lara ula�mad�: ';
+$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Hatas�: Veri kabul edilmedi.';
+$PHPMAILER_LANG["connect_host"] = 'SMTP Hatas�: SMTP hosta ba�lan�lam�yor.';
+$PHPMAILER_LANG["file_access"] = 'Dosyaya eri�ilemiyor: ';
+$PHPMAILER_LANG["file_open"] = 'Dosya Hatas�: Dosya a��lam�yor: ';
+$PHPMAILER_LANG["encoding"] = 'Bilinmeyen �ifreleme: ';
+
+?>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/PHPMailer/PHPMailer.html b/0.2.1/inc/phpmailer/phpdoc/PHPMailer/PHPMailer.html
new file mode 100644 (file)
index 0000000..87be402
--- /dev/null
@@ -0,0 +1,1475 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title>Docs For Class PHPMailer</title>
+                       <link rel="stylesheet" href="../media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                       <div class="page-body">                 
+<h2 class="class-name">Class PHPMailer</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+       <div class="info-box-title">Description</div>
+       <div class="nav-bar">
+                                       <span class="disabled">Description</span> |
+                                                                                                       <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+                                               |                                                                                       <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+                                               
+                       </div>
+       <div class="info-box-body">
+               <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">PHPMailer - PHP email transport class</p>
+       <ul class="tags">
+                               <li><span class="field">copyright:</span> <p>2001 - 2003 Brent R. Matzelle</p></li>
+                               <li><span class="field">author:</span> <p>Brent R. Matzelle</p></li>
+                       </ul>
+               <p class="notes">
+                       Located in <a class="field" href="_class_phpmailer_php.html">Program_Root/class.phpmailer.php</a> (line <span class="field">20</span>)
+               </p>
+               
+                               
+               <pre></pre>
+       
+                       </div>
+</div>
+
+
+       <a name="sec-var-summary"></a>
+       <div class="info-box">
+               <div class="info-box-title">Variable Summary</span></div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                                               <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+                                                       | 
+                                                                       <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+                                                       
+                                       </div>
+               <div class="info-box-body">
+                       <div class="var-summary">
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$AltBody" title="details" class="var-name">$AltBody</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Body" title="details" class="var-name">$Body</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$CharSet" title="details" class="var-name">$CharSet</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$ConfirmReadingTo" title="details" class="var-name">$ConfirmReadingTo</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$ContentType" title="details" class="var-name">$ContentType</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Encoding" title="details" class="var-name">$Encoding</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$ErrorInfo" title="details" class="var-name">$ErrorInfo</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$From" title="details" class="var-name">$From</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$FromName" title="details" class="var-name">$FromName</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Helo" title="details" class="var-name">$Helo</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Host" title="details" class="var-name">$Host</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Hostname" title="details" class="var-name">$Hostname</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Mailer" title="details" class="var-name">$Mailer</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Password" title="details" class="var-name">$Password</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$PluginDir" title="details" class="var-name">$PluginDir</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">int</span>
+                                       <a href="#$Port" title="details" class="var-name">$Port</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">int</span>
+                                       <a href="#$Priority" title="details" class="var-name">$Priority</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Sender" title="details" class="var-name">$Sender</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Sendmail" title="details" class="var-name">$Sendmail</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">bool</span>
+                                       <a href="#$SMTPAuth" title="details" class="var-name">$SMTPAuth</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">bool</span>
+                                       <a href="#$SMTPDebug" title="details" class="var-name">$SMTPDebug</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">bool</span>
+                                       <a href="#$SMTPKeepAlive" title="details" class="var-name">$SMTPKeepAlive</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Subject" title="details" class="var-name">$Subject</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">int</span>
+                                       <a href="#$Timeout" title="details" class="var-name">$Timeout</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Username" title="details" class="var-name">$Username</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$Version" title="details" class="var-name">$Version</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">int</span>
+                                       <a href="#$WordWrap" title="details" class="var-name">$WordWrap</a>
+                               </div>
+                                                       </div>
+               </div>
+       </div>
+
+       <a name="sec-method-summary"></a>
+       <div class="info-box">
+               <div class="info-box-title">Method Summary</span></div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                                                                                                                       <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+                                
+                               |
+                                               <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+               </div>
+               <div class="info-box-body">                     
+                       <div class="method-summary">
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#AddAddress" title="details" class="method-name">AddAddress</a>
+                                                                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$address</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#AddAttachment" title="details" class="method-name">AddAttachment</a>
+                                                                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$path</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$encoding</span> = <span class="var-default">"base64"</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$type</span> = <span class="var-default">"application/octet-stream"</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#AddBCC" title="details" class="method-name">AddBCC</a>
+                                                                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$address</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#AddCC" title="details" class="method-name">AddCC</a>
+                                                                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$address</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#AddCustomHeader" title="details" class="method-name">AddCustomHeader</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$custom_header</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#AddEmbeddedImage" title="details" class="method-name">AddEmbeddedImage</a>
+                                                                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$path</span>, <span class="var-type">string</span>&nbsp;<span class="var-name">$cid</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$encoding</span> = <span class="var-default">"base64"</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$type</span> = <span class="var-default">"application/octet-stream"</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#AddReplyTo" title="details" class="method-name">AddReplyTo</a>
+                                                                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$address</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#AddStringAttachment" title="details" class="method-name">AddStringAttachment</a>
+                                                                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$string</span>, <span class="var-type">string</span>&nbsp;<span class="var-name">$filename</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$encoding</span> = <span class="var-default">"base64"</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$type</span> = <span class="var-default">"application/octet-stream"</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#ClearAddresses" title="details" class="method-name">ClearAddresses</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#ClearAllRecipients" title="details" class="method-name">ClearAllRecipients</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#ClearAttachments" title="details" class="method-name">ClearAttachments</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#ClearBCCs" title="details" class="method-name">ClearBCCs</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#ClearCCs" title="details" class="method-name">ClearCCs</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#ClearCustomHeaders" title="details" class="method-name">ClearCustomHeaders</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#ClearReplyTos" title="details" class="method-name">ClearReplyTos</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#IsError" title="details" class="method-name">IsError</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#IsHTML" title="details" class="method-name">IsHTML</a>
+                                                                                       (<span class="var-type">bool</span>&nbsp;<span class="var-name">$bool</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#IsMail" title="details" class="method-name">IsMail</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#IsQmail" title="details" class="method-name">IsQmail</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#IsSendmail" title="details" class="method-name">IsSendmail</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#IsSMTP" title="details" class="method-name">IsSMTP</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Send" title="details" class="method-name">Send</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#SetLanguage" title="details" class="method-name">SetLanguage</a>
+                                                                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$lang_type</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$lang_path</span> = <span class="var-default">""</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#SmtpClose" title="details" class="method-name">SmtpClose</a>
+                                                                               ()
+                                                                       </div>
+                                                       </div>
+               </div>
+       </div>          
+
+       <a name="sec-vars"></a>
+       <div class="info-box">
+               <div class="info-box-title">Variables</div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                                                                               <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+                                               
+                       
+                                                       | 
+                                                                       <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+                                                       
+                                       </div>
+               <div class="info-box-body">
+                       <a name="var$AltBody" id="$AltBody"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$AltBody</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">96</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the text-only body of the message.  This automatically sets the  email to multipart/alternative.  This body can be read by mail  clients that do not have HTML email capability such as mutt. Clients  that can read HTML will view the normal Body.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Body" id="$Body"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Body</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">87</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the Body of the message.  This can be either an HTML or text body.</p>
+<p class="description"><p>If HTML then run IsHTML(true).</p></p>
+       
+       
+               
+               
+
+</div>
+<a name="var$CharSet" id="$CharSet"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$CharSet</span>
+                        = <span class="var-default"> &quot;iso-8859-1&quot;</span>                     (line <span class="line-number">36</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the CharSet of the message.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$ConfirmReadingTo" id="$ConfirmReadingTo"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$ConfirmReadingTo</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">134</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the email address that a reading confirmation will be sent.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$ContentType" id="$ContentType"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$ContentType</span>
+                        = <span class="var-default"> &quot;text/plain&quot;</span>                     (line <span class="line-number">42</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the Content-type of the message.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Encoding" id="$Encoding"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Encoding</span>
+                        = <span class="var-default"> &quot;8bit&quot;</span>                   (line <span class="line-number">49</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the Encoding of the message. Options for this are &quot;8bit&quot;,  &quot;7bit&quot;, &quot;binary&quot;, &quot;base64&quot;, and &quot;quoted-printable&quot;.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$ErrorInfo" id="$ErrorInfo"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$ErrorInfo</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">55</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Holds the most recent mailer error message.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$From" id="$From"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$From</span>
+                        = <span class="var-default"> &quot;root@localhost&quot;</span>                 (line <span class="line-number">61</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the From email address for the message.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$FromName" id="$FromName"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$FromName</span>
+                        = <span class="var-default"> &quot;Root User&quot;</span>                      (line <span class="line-number">67</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the From name of the message.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Helo" id="$Helo"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Helo</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">169</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the SMTP HELO of the message (Default is $Hostname).</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Host" id="$Host"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Host</span>
+                        = <span class="var-default"> &quot;localhost&quot;</span>                      (line <span class="line-number">157</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the SMTP hosts.  All hosts must be separated by a   semicolon.  You can also specify a different port   for each host by using this format: [hostname:port]   (e.g. &quot;smtp1.example.com:25;smtp2.example.com&quot;).</p>
+<p class="description"><p>Hosts will be tried in order.</p></p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Hostname" id="$Hostname"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Hostname</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">142</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the hostname to use in Message-Id and Received headers   and as default HELO string. If empty, the value returned   by SERVER_NAME is used or 'localhost.localdomain'.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Mailer" id="$Mailer"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Mailer</span>
+                        = <span class="var-default"> &quot;mail&quot;</span>                   (line <span class="line-number">109</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Method to send mail: (&quot;mail&quot;, &quot;sendmail&quot;, or &quot;smtp&quot;).</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Password" id="$Password"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Password</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">187</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets SMTP password.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$PluginDir" id="$PluginDir"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$PluginDir</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">122</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Path to PHPMailer plugins.  This is now only useful if the SMTP class  is in a different directory than the PHP include path.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Port" id="$Port"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">int</span>
+                       <span class="var-name">$Port</span>
+                        = <span class="var-default"> 25</span>                 (line <span class="line-number">163</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the default SMTP server port.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Priority" id="$Priority"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">int</span>
+                       <span class="var-name">$Priority</span>
+                        = <span class="var-default"> 3</span>                  (line <span class="line-number">30</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Email priority (1 = High, 3 = Normal, 5 = low).</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Sender" id="$Sender"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Sender</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">74</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the Sender email (Return-Path) of the message.  If not empty,  will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Sendmail" id="$Sendmail"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Sendmail</span>
+                        = <span class="var-default"> &quot;/usr/sbin/sendmail&quot;</span>                     (line <span class="line-number">115</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the path of the sendmail program.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$SMTPAuth" id="$SMTPAuth"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">bool</span>
+                       <span class="var-name">$SMTPAuth</span>
+                        = <span class="var-default"> false</span>                      (line <span class="line-number">175</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets SMTP authentication. Utilizes the Username and Password variables.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$SMTPDebug" id="$SMTPDebug"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">bool</span>
+                       <span class="var-name">$SMTPDebug</span>
+                        = <span class="var-default"> false</span>                      (line <span class="line-number">200</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets SMTP class debugging on or off.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$SMTPKeepAlive" id="$SMTPKeepAlive"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">bool</span>
+                       <span class="var-name">$SMTPKeepAlive</span>
+                        = <span class="var-default"> false</span>                      (line <span class="line-number">208</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Prevents the SMTP connection from being closed after each mail  sending.  If this is set to true then to close the connection  requires an explicit call to SmtpClose().</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Subject" id="$Subject"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Subject</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">80</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the Subject of the message.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Timeout" id="$Timeout"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">int</span>
+                       <span class="var-name">$Timeout</span>
+                        = <span class="var-default"> 10</span>                 (line <span class="line-number">194</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the SMTP server timeout in seconds. This function will not   work with the win32 version.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Username" id="$Username"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Username</span>
+                        = <span class="var-default"> &quot;&quot;</span>                       (line <span class="line-number">181</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets SMTP username.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$Version" id="$Version"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$Version</span>
+                        = <span class="var-default"> &quot;1.71&quot;</span>                   (line <span class="line-number">128</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Holds PHPMailer version.</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$WordWrap" id="$WordWrap"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">int</span>
+                       <span class="var-name">$WordWrap</span>
+                        = <span class="var-default"> 0</span>                  (line <span class="line-number">103</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets word wrapping on the body of the message to a given number of  characters.</p>
+       
+       
+               
+               
+
+</div>
+                                               
+               </div>
+       </div>
+       
+       <a name="sec-methods"></a>
+       <div class="info-box">
+               <div class="info-box-title">Methods</div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                                                                                                                       <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+                                                                                                               <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+                                               
+               </div>
+               <div class="info-box-body">
+                       <A NAME='method_detail'></A>
+<a name="methodAddAddress" id="AddAddress"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">AddAddress</span> (line <span class="line-number">287</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Adds a &quot;To&quot; address.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       AddAddress
+               </span>
+                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$address</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>])
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$address</span>                  </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$name</span>                     </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodAddAttachment" id="AddAttachment"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">AddAttachment</span> (line <span class="line-number">1000</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Adds an attachment from a path on the filesystem.</p>
+<p class="description"><p>Returns false if the file could not be found  or accessed.</p></p>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       AddAttachment
+               </span>
+                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$path</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$encoding</span> = <span class="var-default">"base64"</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$type</span> = <span class="var-default">"application/octet-stream"</span>])
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$path</span><span class="var-description">: <p>Path to the attachment.</p></span>                        </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$name</span><span class="var-description">: <p>Overrides the attachment name.</p></span>                 </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$encoding</span><span class="var-description">: <p>File encoding (see $Encoding).</p></span>                     </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$type</span><span class="var-description">: <p>File extension (MIME) type.</p></span>                    </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodAddBCC" id="AddBCC"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">AddBCC</span> (line <span class="line-number">315</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Adds a &quot;Bcc&quot; address. Note: this function works  with the SMTP mailer on win32, not with the &quot;mail&quot;  mailer.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       AddBCC
+               </span>
+                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$address</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>])
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$address</span>                  </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$name</span>                     </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodAddCC" id="AddCC"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">AddCC</span> (line <span class="line-number">301</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Adds a &quot;Cc&quot; address. Note: this function works  with the SMTP mailer on win32, not with the &quot;mail&quot;  mailer.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       AddCC
+               </span>
+                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$address</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>])
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$address</span>                  </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$name</span>                     </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodAddCustomHeader" id="AddCustomHeader"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">AddCustomHeader</span> (line <span class="line-number">1525</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Adds a custom header.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       AddCustomHeader
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$custom_header</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodAddEmbeddedImage" id="AddEmbeddedImage"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">AddEmbeddedImage</span> (line <span class="line-number">1275</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Adds an embedded attachment.  This can include images, sounds, and  just about any other document.  Make sure to set the $type to an  image type.  For JPEG images use &quot;image/jpeg&quot; and for GIF images  use &quot;image/gif&quot;.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       AddEmbeddedImage
+               </span>
+                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$path</span>, <span class="var-type">string</span>&nbsp;<span class="var-name">$cid</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$encoding</span> = <span class="var-default">"base64"</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$type</span> = <span class="var-default">"application/octet-stream"</span>])
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$path</span><span class="var-description">: <p>Path to the attachment.</p></span>                        </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$cid</span><span class="var-description">: <p>Content ID of the attachment.  Use this to identify         the Id for accessing the image in an HTML form.</p></span>                     </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$name</span><span class="var-description">: <p>Overrides the attachment name.</p></span>                 </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$encoding</span><span class="var-description">: <p>File encoding (see $Encoding).</p></span>                     </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$type</span><span class="var-description">: <p>File extension (MIME) type.</p></span>                    </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodAddReplyTo" id="AddReplyTo"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">AddReplyTo</span> (line <span class="line-number">327</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Adds a &quot;Reply-to&quot; address.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       AddReplyTo
+               </span>
+                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$address</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span> = <span class="var-default">""</span>])
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$address</span>                  </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$name</span>                     </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodAddStringAttachment" id="AddStringAttachment"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">AddStringAttachment</span> (line <span class="line-number">1248</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Adds a string or binary attachment (non-filesystem) to the list.</p>
+<p class="description"><p>This method can be used to attach ascii or binary data,  such as a BLOB record from a database.</p></p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       AddStringAttachment
+               </span>
+                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$string</span>, <span class="var-type">string</span>&nbsp;<span class="var-name">$filename</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$encoding</span> = <span class="var-default">"base64"</span>], [<span class="var-type">string</span>&nbsp;<span class="var-name">$type</span> = <span class="var-default">"application/octet-stream"</span>])
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$string</span><span class="var-description">: <p>String attachment data.</p></span>                      </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$filename</span><span class="var-description">: <p>Name of the attachment.</p></span>                    </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$encoding</span><span class="var-description">: <p>File encoding (see $Encoding).</p></span>                     </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$type</span><span class="var-description">: <p>File extension (MIME) type.</p></span>                    </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodClearAddresses" id="ClearAddresses"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">ClearAddresses</span> (line <span class="line-number">1329</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Clears all recipients assigned in the TO array.  Returns void.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       ClearAddresses
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodClearAllRecipients" id="ClearAllRecipients"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">ClearAllRecipients</span> (line <span class="line-number">1362</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Clears all recipients assigned in the TO, CC and BCC  array.  Returns void.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       ClearAllRecipients
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodClearAttachments" id="ClearAttachments"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">ClearAttachments</span> (line <span class="line-number">1373</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Clears all previously set filesystem, string, and binary  attachments.  Returns void.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       ClearAttachments
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodClearBCCs" id="ClearBCCs"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">ClearBCCs</span> (line <span class="line-number">1345</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Clears all recipients assigned in the BCC array.  Returns void.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       ClearBCCs
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodClearCCs" id="ClearCCs"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">ClearCCs</span> (line <span class="line-number">1337</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Clears all recipients assigned in the CC array.  Returns void.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       ClearCCs
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodClearCustomHeaders" id="ClearCustomHeaders"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">ClearCustomHeaders</span> (line <span class="line-number">1381</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Clears all custom headers.  Returns void.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       ClearCustomHeaders
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodClearReplyTos" id="ClearReplyTos"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">ClearReplyTos</span> (line <span class="line-number">1353</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Clears all recipients assigned in the ReplyTo array.  Returns void.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       ClearReplyTos
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodIsError" id="IsError"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">IsError</span> (line <span class="line-number">1505</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Returns true if an error occurred.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       IsError
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodIsHTML" id="IsHTML"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">IsHTML</span> (line <span class="line-number">236</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets message type to HTML.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       IsHTML
+               </span>
+                                       (<span class="var-type">bool</span>&nbsp;<span class="var-name">$bool</span>)
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">bool</span>
+                               <span class="var-name">$bool</span>                     </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodIsMail" id="IsMail"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">IsMail</span> (line <span class="line-number">255</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets Mailer to send message using PHP mail() function.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       IsMail
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodIsQmail" id="IsQmail"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">IsQmail</span> (line <span class="line-number">271</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets Mailer to send message using the qmail MTA.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       IsQmail
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodIsSendmail" id="IsSendmail"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">IsSendmail</span> (line <span class="line-number">263</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets Mailer to send message using the $Sendmail program.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       IsSendmail
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodIsSMTP" id="IsSMTP"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">IsSMTP</span> (line <span class="line-number">247</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets Mailer to send message using SMTP.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       IsSMTP
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodSend" id="Send"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Send</span> (line <span class="line-number">344</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Creates message and assigns Mailer. If the message is  not sent successfully then it returns false.  Use the ErrorInfo  variable to view description of the error.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Send
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodSetLanguage" id="SetLanguage"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">SetLanguage</span> (line <span class="line-number">599</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets the language for all class error messages.  Returns false  if it cannot load the language file.  The default language type  is English.</p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       SetLanguage
+               </span>
+                                       (<span class="var-type">string</span>&nbsp;<span class="var-name">$lang_type</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$lang_path</span> = <span class="var-default">""</span>])
+                       </div>
+       
+                       <ul class="parameters">
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$lang_type</span><span class="var-description">: <p>Type of language (e.g. Portuguese: &quot;br&quot;)</p></span>                        </li>
+                                       <li>
+                               <span class="var-type">string</span>
+                               <span class="var-name">$lang_path</span><span class="var-description">: <p>Path to the language file directory</p></span>                       </li>
+                               </ul>
+               
+               
+       </div>
+<a name="methodSmtpClose" id="SmtpClose"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">SmtpClose</span> (line <span class="line-number">579</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Closes the active SMTP session if one exists.</p>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       SmtpClose
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+                                               
+               </div>
+       </div>
+       
+       <p class="notes" id="credit">
+               Documention generated on Mon, 28 Jul 2003 23:25:49 -0400 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.2.0</a>
+       </p>
+       </div></body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/PHPMailer/SMTP.html b/0.2.1/inc/phpmailer/phpdoc/PHPMailer/SMTP.html
new file mode 100644 (file)
index 0000000..4fdecb1
--- /dev/null
@@ -0,0 +1,734 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title>Docs For Class SMTP</title>
+                       <link rel="stylesheet" href="../media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                       <div class="page-body">                 
+<h2 class="class-name">Class SMTP</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+       <div class="info-box-title">Description</div>
+       <div class="nav-bar">
+                                       <span class="disabled">Description</span> |
+                                                                                                       <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+                                               |                                                                                       <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+                                               
+                       </div>
+       <div class="info-box-body">
+               <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">SMTP is rfc 821 compliant and implements all the rfc 821 SMTP  commands except TURN which will always return a not implemented  error. SMTP also provides some utility methods for sending mail  to an SMTP server.</p>
+       <ul class="tags">
+                               <li><span class="field">author:</span> <p>Chris Ryan</p></li>
+                       </ul>
+               <p class="notes">
+                       Located in <a class="field" href="_class_smtp_php.html">Program_Root/class.smtp.php</a> (line <span class="field">24</span>)
+               </p>
+               
+                               
+               <pre></pre>
+       
+                       </div>
+</div>
+
+
+       <a name="sec-var-summary"></a>
+       <div class="info-box">
+               <div class="info-box-title">Variable Summary</span></div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                                               <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+                                                       | 
+                                                                       <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+                                                       
+                                       </div>
+               <div class="info-box-body">
+                       <div class="var-summary">
+                                                               <div class="var-title">
+                                       <span class="var-type">string</span>
+                                       <a href="#$CRLF" title="details" class="var-name">$CRLF</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">bool</span>
+                                       <a href="#$do_debug" title="details" class="var-name">$do_debug</a>
+                               </div>
+                                                               <div class="var-title">
+                                       <span class="var-type">int</span>
+                                       <a href="#$SMTP_PORT" title="details" class="var-name">$SMTP_PORT</a>
+                               </div>
+                                                       </div>
+               </div>
+       </div>
+
+       <a name="sec-method-summary"></a>
+       <div class="info-box">
+               <div class="info-box-title">Method Summary</span></div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                                                                                                                       <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+                                
+                               |
+                                               <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+               </div>
+               <div class="info-box-body">                     
+                       <div class="method-summary">
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#SMTP" title="details" class="method-name">SMTP</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Authenticate" title="details" class="method-name">Authenticate</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$username</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$password</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">void</span>
+                                                                               <a href="#Close" title="details" class="method-name">Close</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Connect" title="details" class="method-name">Connect</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$host</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$port</span>, [<span class="var-type">mixed</span>&nbsp;<span class="var-name">$tval</span> = <span class="var-default">30</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Data" title="details" class="method-name">Data</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$msg_data</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">string</span>
+                                                                               <a href="#Expand" title="details" class="method-name">Expand</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$name</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Hello" title="details" class="method-name">Hello</a>
+                                                                                       ([<span class="var-type">mixed</span>&nbsp;<span class="var-name">$host</span> = <span class="var-default">""</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">string</span>
+                                                                               <a href="#Help" title="details" class="method-name">Help</a>
+                                                                                       ([<span class="var-type">mixed</span>&nbsp;<span class="var-name">$keyword</span> = <span class="var-default">""</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Mail" title="details" class="method-name">Mail</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$from</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Noop" title="details" class="method-name">Noop</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Quit" title="details" class="method-name">Quit</a>
+                                                                                       ([<span class="var-type">mixed</span>&nbsp;<span class="var-name">$close_on_error</span> = <span class="var-default">true</span>])
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Recipient" title="details" class="method-name">Recipient</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$to</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Reset" title="details" class="method-name">Reset</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Send" title="details" class="method-name">Send</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$from</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#SendAndMail" title="details" class="method-name">SendAndMail</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$from</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#SendOrMail" title="details" class="method-name">SendOrMail</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$from</span>)
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">bool</span>
+                                                                               <a href="#Turn" title="details" class="method-name">Turn</a>
+                                                                               ()
+                                                                       </div>
+                                                               
+                               <div class="method-definition">
+                                                                                       <span class="method-result">int</span>
+                                                                               <a href="#Verify" title="details" class="method-name">Verify</a>
+                                                                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$name</span>)
+                                                                       </div>
+                                                       </div>
+               </div>
+       </div>          
+
+       <a name="sec-vars"></a>
+       <div class="info-box">
+               <div class="info-box-title">Variables</div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                                                                               <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+                                               
+                       
+                                                       | 
+                                                                       <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+                                                       
+                                       </div>
+               <div class="info-box-body">
+                       <a name="var$CRLF" id="$CRLF"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">string</span>
+                       <span class="var-name">$CRLF</span>
+                        = <span class="var-default"> &quot;\r\n&quot;</span>                   (line <span class="line-number">36</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">SMTP reply line ending</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$do_debug" id="$do_debug"><!-- --></A>
+<div class="evenrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">bool</span>
+                       <span class="var-name">$do_debug</span>
+                                               (line <span class="line-number">42</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sets whether debugging is turned on</p>
+       
+       
+               
+               
+
+</div>
+<a name="var$SMTP_PORT" id="$SMTP_PORT"><!-- --></A>
+<div class="oddrow">
+
+       <div class="var-header">
+               <span class="var-title">
+                       <span class="var-type">int</span>
+                       <span class="var-name">$SMTP_PORT</span>
+                        = <span class="var-default"> 25</span>                 (line <span class="line-number">30</span>)
+               </span>
+       </div>
+
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">SMTP server port</p>
+       
+       
+               
+               
+
+</div>
+                                               
+               </div>
+       </div>
+       
+       <a name="sec-methods"></a>
+       <div class="info-box">
+               <div class="info-box-title">Methods</div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                                                                                                                       <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+                                                                                                               <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+                                               
+               </div>
+               <div class="info-box-body">
+                       <A NAME='method_detail'></A>
+<a name="methodSMTP" id="SMTP"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Constructor SMTP</span> (line <span class="line-number">57</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Initialize the class so that the data is in a known state.</p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       SMTP
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodAuthenticate" id="Authenticate"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">Authenticate</span> (line <span class="line-number">144</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Performs SMTP authentication.  Must be run after running the  Hello() method.  Returns true if successfully authenticated.</p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Authenticate
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$username</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$password</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodClose" id="Close"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Close</span> (line <span class="line-number">232</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Closes the socket and cleans up the state of the class.</p>
+<p class="description"><p>It is not considered good to use this function without  first trying to use QUIT.</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">void</span>
+               <span class="method-name">
+                       Close
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodConnect" id="Connect"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">Connect</span> (line <span class="line-number">82</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Connect to the server specified on the port specified.</p>
+<p class="description"><p>If the port is not specified use the default SMTP_PORT.  If tval is specified then a connection will try and be  established with the server for that number of seconds.  If tval is not specified the default is 30 seconds to  try on the connection.</p><p>SMTP CODE SUCCESS: 220  SMTP CODE FAILURE: 421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Connect
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$host</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$port</span>, [<span class="var-type">mixed</span>&nbsp;<span class="var-name">$tval</span> = <span class="var-default">30</span>])
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodData" id="Data"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Data</span> (line <span class="line-number">266</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Issues a data command and sends the msg_data to the server</p>
+<p class="description"><p>finializing the mail transaction. $msg_data is the message  that is to be send with the headers. Each header needs to be  on a single line followed by a &lt;CRLF&gt; with the message headers  and the message body being seperated by and additional &lt;CRLF&gt;.</p><p>Implements rfc 821: DATA &lt;CRLF&gt;</p><p>SMTP CODE INTERMEDIATE: 354      [data]      &lt;CRLF&gt;.&lt;CRLF&gt;      SMTP CODE SUCCESS: 250      SMTP CODE FAILURE: 552,554,451,452  SMTP CODE FAILURE: 451,554  SMTP CODE ERROR  : 500,501,503,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Data
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$msg_data</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodExpand" id="Expand"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">Expand</span> (line <span class="line-number">399</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Expand takes the name and asks the server to list all the  people who are members of the _list_. Expand will return  back and array of the result or false if an error occurs.</p>
+<p class="description"><p>Each value in the array returned has the format of:      [ &lt;full-name&gt; &lt;sp&gt; ] &lt;path&gt;  The definition of &lt;path&gt; is defined in rfc 821</p><p>Implements rfc 821: EXPN &lt;SP&gt; &lt;string&gt; &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE FAILURE: 550  SMTP CODE ERROR  : 500,501,502,504,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">return:</span> <p>array</p></li>
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">string</span>
+               <span class="method-name">
+                       Expand
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$name</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodHello" id="Hello"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Hello</span> (line <span class="line-number">450</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sends the HELO command to the smtp server.</p>
+<p class="description"><p>This makes sure that we and the server are in  the same known state.</p><p>Implements from rfc 821: HELO &lt;SP&gt; &lt;domain&gt; &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE ERROR  : 500, 501, 504, 421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Hello
+               </span>
+                                       ([<span class="var-type">mixed</span>&nbsp;<span class="var-name">$host</span> = <span class="var-default">""</span>])
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodHelp" id="Help"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">Help</span> (line <span class="line-number">524</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Gets help information on the keyword specified. If the keyword</p>
+<p class="description"><p>is not specified then returns generic help, ussually contianing  A list of keywords that help is available on. This function  returns the results back to the user. It is up to the user to  handle the returned data. If an error occurs then false is  returned with $this-&gt;error set appropiately.</p><p>Implements rfc 821: HELP [ &lt;SP&gt; &lt;string&gt; ] &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 211,214  SMTP CODE ERROR  : 500,501,502,504,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">string</span>
+               <span class="method-name">
+                       Help
+               </span>
+                                       ([<span class="var-type">mixed</span>&nbsp;<span class="var-name">$keyword</span> = <span class="var-default">""</span>])
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodMail" id="Mail"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Mail</span> (line <span class="line-number">576</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Starts a mail transaction from the email address specified in  $from. Returns true if successful or false otherwise. If True  the mail transaction is started and then one or more Recipient  commands may be called followed by a Data command.</p>
+<p class="description"><p>Implements rfc 821: MAIL &lt;SP&gt; FROM:&lt;reverse-path&gt; &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE SUCCESS: 552,451,452  SMTP CODE SUCCESS: 500,501,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Mail
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$from</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodNoop" id="Noop"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">Noop</span> (line <span class="line-number">618</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sends the command NOOP to the SMTP server.</p>
+<p class="description"><p>Implements from rfc 821: NOOP &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE ERROR  : 500, 421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Noop
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodQuit" id="Quit"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Quit</span> (line <span class="line-number">661</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sends the quit command to the server and then closes the socket  if there is no error or the $close_on_error argument is true.</p>
+<p class="description"><p>Implements from rfc 821: QUIT &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 221  SMTP CODE ERROR  : 500</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Quit
+               </span>
+                                       ([<span class="var-type">mixed</span>&nbsp;<span class="var-name">$close_on_error</span> = <span class="var-default">true</span>])
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodRecipient" id="Recipient"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">Recipient</span> (line <span class="line-number">715</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sends the command RCPT to the SMTP server with the TO: argument of $to.</p>
+<p class="description"><p>Returns true if the recipient was accepted false if it was rejected.</p><p>Implements from rfc 821: RCPT &lt;SP&gt; TO:&lt;forward-path&gt; &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250,251  SMTP CODE FAILURE: 550,551,552,553,450,451,452  SMTP CODE ERROR  : 500,501,503,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Recipient
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$to</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodReset" id="Reset"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Reset</span> (line <span class="line-number">759</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Sends the RSET command to abort and transaction that is  currently in progress. Returns true if successful false  otherwise.</p>
+<p class="description"><p>Implements rfc 821: RSET &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE ERROR  : 500,501,504,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Reset
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodSend" id="Send"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">Send</span> (line <span class="line-number">808</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Starts a mail transaction from the email address specified in</p>
+<p class="description"><p>$from. Returns true if successful or false otherwise. If True  the mail transaction is started and then one or more Recipient  commands may be called followed by a Data command. This command  will send the message to the users terminal if they are logged  in.</p><p>Implements rfc 821: SEND &lt;SP&gt; FROM:&lt;reverse-path&gt; &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE SUCCESS: 552,451,452  SMTP CODE SUCCESS: 500,501,502,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Send
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$from</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodSendAndMail" id="SendAndMail"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">SendAndMail</span> (line <span class="line-number">856</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Starts a mail transaction from the email address specified in</p>
+<p class="description"><p>$from. Returns true if successful or false otherwise. If True  the mail transaction is started and then one or more Recipient  commands may be called followed by a Data command. This command  will send the message to the users terminal if they are logged  in and send them an email.</p><p>Implements rfc 821: SAML &lt;SP&gt; FROM:&lt;reverse-path&gt; &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE SUCCESS: 552,451,452  SMTP CODE SUCCESS: 500,501,502,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       SendAndMail
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$from</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodSendOrMail" id="SendOrMail"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">SendOrMail</span> (line <span class="line-number">904</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Starts a mail transaction from the email address specified in</p>
+<p class="description"><p>$from. Returns true if successful or false otherwise. If True  the mail transaction is started and then one or more Recipient  commands may be called followed by a Data command. This command  will send the message to the users terminal if they are logged  in or mail it to them if they are not.</p><p>Implements rfc 821: SOML &lt;SP&gt; FROM:&lt;reverse-path&gt; &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE SUCCESS: 552,451,452  SMTP CODE SUCCESS: 500,501,502,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       SendOrMail
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$from</span>)
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodTurn" id="Turn"><!-- --></a>
+<div class="evenrow">
+       
+       <div class="method-header">
+               <span class="method-title">Turn</span> (line <span class="line-number">949</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">This is an optional command for SMTP that this class does not  support. This method is here to make the RFC821 Definition  complete for this class and __may__ be implimented in the future</p>
+<p class="description"><p>Implements from rfc 821: TURN &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250  SMTP CODE FAILURE: 502  SMTP CODE ERROR  : 500, 503</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">bool</span>
+               <span class="method-name">
+                       Turn
+               </span>
+                               ()
+                       </div>
+       
+               
+               
+       </div>
+<a name="methodVerify" id="Verify"><!-- --></a>
+<div class="oddrow">
+       
+       <div class="method-header">
+               <span class="method-title">Verify</span> (line <span class="line-number">971</span>)
+       </div> 
+       
+       <!-- ========== Info from phpDoc block ========= -->
+<p class="short-description">Verifies that the name is recognized by the server.</p>
+<p class="description"><p>Returns false if the name could not be verified otherwise  the response from the server is returned.</p><p>Implements rfc 821: VRFY &lt;SP&gt; &lt;string&gt; &lt;CRLF&gt;</p><p>SMTP CODE SUCCESS: 250,251  SMTP CODE FAILURE: 550,551,553  SMTP CODE ERROR  : 500,501,502,421</p></p>
+       <ul class="tags">
+                               <li><span class="field">access:</span> public</li>
+                       </ul>
+       
+       <div class="method-signature">
+               <span class="method-result">int</span>
+               <span class="method-name">
+                       Verify
+               </span>
+                                       (<span class="var-type">mixed</span>&nbsp;<span class="var-name">$name</span>)
+                       </div>
+       
+               
+               
+       </div>
+                                               
+               </div>
+       </div>
+       
+       <p class="notes" id="credit">
+               Documention generated on Mon, 28 Jul 2003 23:25:50 -0400 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.2.0</a>
+       </p>
+       </div></body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/PHPMailer/_class_phpmailer_php.html b/0.2.1/inc/phpmailer/phpdoc/PHPMailer/_class_phpmailer_php.html
new file mode 100644 (file)
index 0000000..f7bde2c
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title>Docs for page class.phpmailer.php</title>
+                       <link rel="stylesheet" href="../media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                       <div class="page-body">                 
+<h2 class="file-name">Program_Root/class.phpmailer.php</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+       <div class="info-box-title">Description</div>
+       <div class="nav-bar">
+                                       <span class="disabled">Description</span> |
+                                                       <a href="#sec-classes">Classes</a>
+                                                                                                               </div>
+       <div class="info-box-body">     
+               <!-- ========== Info from phpDoc block ========= -->
+               
+                       </div>
+</div>
+               
+       <a name="sec-classes"></a>      
+       <div class="info-box">
+               <div class="info-box-title">Classes</div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                       <span class="disabled">Classes</span>
+                                                                                                                                       </div>
+               <div class="info-box-body">     
+                       <table cellpadding="2" cellspacing="0" class="class-table">
+                               <tr>
+                                       <th class="class-table-header">Class</th>
+                                       <th class="class-table-header">Description</th>
+                               </tr>
+                                                               <tr>
+                                       <td style="padding-right: 2em; vertical-align: top">
+                                               <a href="../PHPMailer/PHPMailer.html">PHPMailer</a>
+                                       </td>
+                                       <td>
+                                                                                       PHPMailer - PHP email transport class
+                                                                               </td>
+                               </tr>
+                                                       </table>
+               </div>
+       </div>
+
+       
+       
+       
+       
+       <p class="notes" id="credit">
+               Documention generated on Mon, 28 Jul 2003 23:25:49 -0400 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.2.0</a>
+       </p>
+       </div></body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/PHPMailer/_class_smtp_php.html b/0.2.1/inc/phpmailer/phpdoc/PHPMailer/_class_smtp_php.html
new file mode 100644 (file)
index 0000000..1b7d1b5
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title>Docs for page class.smtp.php</title>
+                       <link rel="stylesheet" href="../media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                       <div class="page-body">                 
+<h2 class="file-name">Program_Root/class.smtp.php</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+       <div class="info-box-title">Description</div>
+       <div class="nav-bar">
+                                       <span class="disabled">Description</span> |
+                                                       <a href="#sec-classes">Classes</a>
+                                                                                                               </div>
+       <div class="info-box-body">     
+               <!-- ========== Info from phpDoc block ========= -->
+               
+                       </div>
+</div>
+               
+       <a name="sec-classes"></a>      
+       <div class="info-box">
+               <div class="info-box-title">Classes</div>
+               <div class="nav-bar">
+                       <a href="#sec-description">Description</a> |
+                       <span class="disabled">Classes</span>
+                                                                                                                                       </div>
+               <div class="info-box-body">     
+                       <table cellpadding="2" cellspacing="0" class="class-table">
+                               <tr>
+                                       <th class="class-table-header">Class</th>
+                                       <th class="class-table-header">Description</th>
+                               </tr>
+                                                               <tr>
+                                       <td style="padding-right: 2em; vertical-align: top">
+                                               <a href="../PHPMailer/SMTP.html">SMTP</a>
+                                       </td>
+                                       <td>
+                                                                                       SMTP is rfc 821 compliant and implements all the rfc 821 SMTP  commands except TURN which will always return a not implemented  error. SMTP also provides some utility methods for sending mail  to an SMTP server.
+                                                                               </td>
+                               </tr>
+                                                       </table>
+               </div>
+       </div>
+
+       
+       
+       
+       
+       <p class="notes" id="credit">
+               Documention generated on Mon, 28 Jul 2003 23:25:50 -0400 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.2.0</a>
+       </p>
+       </div></body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/blank.html b/0.2.1/inc/phpmailer/phpdoc/blank.html
new file mode 100644 (file)
index 0000000..4382bc9
--- /dev/null
@@ -0,0 +1,13 @@
+<html>
+<head>
+       <title>Generated Documentation</title>
+                       <link rel="stylesheet" href="media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<div align="center"><h1>Generated Documentation</h1></div>
+<b>Welcome to default!</b><br />
+<br />
+This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.2.0</a><br />
+</body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/classtrees_PHPMailer.html b/0.2.1/inc/phpmailer/phpdoc/classtrees_PHPMailer.html
new file mode 100644 (file)
index 0000000..f8a48da
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title></title>
+                       <link rel="stylesheet" href="media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                                               
+<!-- Start of Class Data -->
+<H2>
+       
+</H2>
+<h2>Root class PHPMailer</h2>
+<ul>
+<li><a href="PHPMailer/PHPMailer.html">PHPMailer</a></li></ul>
+
+<h2>Root class SMTP</h2>
+<ul>
+<li><a href="PHPMailer/SMTP.html">SMTP</a></li></ul>
+
+       <p class="notes" id="credit">
+               Documention generated on Mon, 28 Jul 2003 23:25:49 -0400 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.2.0</a>
+       </p>
+       </body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/elementindex.html b/0.2.1/inc/phpmailer/phpdoc/elementindex.html
new file mode 100644 (file)
index 0000000..7f65a76
--- /dev/null
@@ -0,0 +1,734 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title></title>
+                       <link rel="stylesheet" href="media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                                               <a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+       <li><a href="elementindex_PHPMailer.html">PHPMailer</a></li>
+</ul>
+<br />
+<div class="index-letter-menu">
+       <a class="index-letter" href="elementindex.html#a">a</a>
+       <a class="index-letter" href="elementindex.html#b">b</a>
+       <a class="index-letter" href="elementindex.html#c">c</a>
+       <a class="index-letter" href="elementindex.html#d">d</a>
+       <a class="index-letter" href="elementindex.html#e">e</a>
+       <a class="index-letter" href="elementindex.html#f">f</a>
+       <a class="index-letter" href="elementindex.html#h">h</a>
+       <a class="index-letter" href="elementindex.html#i">i</a>
+       <a class="index-letter" href="elementindex.html#m">m</a>
+       <a class="index-letter" href="elementindex.html#n">n</a>
+       <a class="index-letter" href="elementindex.html#p">p</a>
+       <a class="index-letter" href="elementindex.html#q">q</a>
+       <a class="index-letter" href="elementindex.html#r">r</a>
+       <a class="index-letter" href="elementindex.html#s">s</a>
+       <a class="index-letter" href="elementindex.html#t">t</a>
+       <a class="index-letter" href="elementindex.html#u">u</a>
+       <a class="index-letter" href="elementindex.html#v">v</a>
+       <a class="index-letter" href="elementindex.html#w">w</a>
+</div>
+
+       <a name="a"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">a</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$AltBody</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$AltBody">PHPMailer::$AltBody</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the text-only body of the message.  This automatically sets the  email to multipart/alternative.  This body can be read by mail  clients that do not have HTML email capability such as mutt. Clients  that can read HTML will view the normal Body.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddAddress</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddAddress">PHPMailer::AddAddress()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a &quot;To&quot; address.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddAttachment</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddAttachment">PHPMailer::AddAttachment()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds an attachment from a path on the filesystem.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddBCC</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddBCC">PHPMailer::AddBCC()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a &quot;Bcc&quot; address. Note: this function works  with the SMTP mailer on win32, not with the &quot;mail&quot;  mailer.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddCC</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddCC">PHPMailer::AddCC()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a &quot;Cc&quot; address. Note: this function works  with the SMTP mailer on win32, not with the &quot;mail&quot;  mailer.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddCustomHeader</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddCustomHeader">PHPMailer::AddCustomHeader()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a custom header.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddEmbeddedImage</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddEmbeddedImage">PHPMailer::AddEmbeddedImage()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds an embedded attachment.  This can include images, sounds, and  just about any other document.  Make sure to set the $type to an  image type.  For JPEG images use &quot;image/jpeg&quot; and for GIF images  use &quot;image/gif&quot;.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddReplyTo</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddReplyTo">PHPMailer::AddReplyTo()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a &quot;Reply-to&quot; address.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddStringAttachment</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddStringAttachment">PHPMailer::AddStringAttachment()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a string or binary attachment (non-filesystem) to the list.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Authenticate</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodAuthenticate">SMTP::Authenticate()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Performs SMTP authentication.  Must be run after running the  Hello() method.  Returns true if successfully authenticated.</div>
+                                       </dd>
+               </dl>
+       <a name="b"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">b</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Body</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Body">PHPMailer::$Body</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Body of the message.  This can be either an HTML or text body.</div>
+                                       </dd>
+               </dl>
+       <a name="c"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">c</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$CharSet</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$CharSet">PHPMailer::$CharSet</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the CharSet of the message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$ConfirmReadingTo</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$ConfirmReadingTo">PHPMailer::$ConfirmReadingTo</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the email address that a reading confirmation will be sent.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$ContentType</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$ContentType">PHPMailer::$ContentType</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Content-type of the message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$CRLF</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#var$CRLF">SMTP::$CRLF</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">SMTP reply line ending</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="include-title">class.phpmailer.php</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/_class_phpmailer_php.html">class.phpmailer.php</a> in class.phpmailer.php</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="include-title">class.smtp.php</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/_class_smtp_php.html">class.smtp.php</a> in class.smtp.php</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearAddresses</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearAddresses">PHPMailer::ClearAddresses()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the TO array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearAllRecipients</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearAllRecipients">PHPMailer::ClearAllRecipients()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the TO, CC and BCC  array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearAttachments</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearAttachments">PHPMailer::ClearAttachments()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all previously set filesystem, string, and binary  attachments.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearBCCs</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearBCCs">PHPMailer::ClearBCCs()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the BCC array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearCCs</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearCCs">PHPMailer::ClearCCs()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the CC array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearCustomHeaders</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearCustomHeaders">PHPMailer::ClearCustomHeaders()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all custom headers.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearReplyTos</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearReplyTos">PHPMailer::ClearReplyTos()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the ReplyTo array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Close</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodClose">SMTP::Close()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Closes the socket and cleans up the state of the class.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Connect</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodConnect">SMTP::Connect()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Connect to the server specified on the port specified.</div>
+                                       </dd>
+               </dl>
+       <a name="d"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">d</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$do_debug</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#var$do_debug">SMTP::$do_debug</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sets whether debugging is turned on</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Data</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodData">SMTP::Data()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Issues a data command and sends the msg_data to the server</div>
+                                       </dd>
+               </dl>
+       <a name="e"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">e</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Encoding</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Encoding">PHPMailer::$Encoding</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Encoding of the message. Options for this are &quot;8bit&quot;,  &quot;7bit&quot;, &quot;binary&quot;, &quot;base64&quot;, and &quot;quoted-printable&quot;.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$ErrorInfo</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$ErrorInfo">PHPMailer::$ErrorInfo</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Holds the most recent mailer error message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Expand</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodExpand">SMTP::Expand()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Expand takes the name and asks the server to list all the  people who are members of the _list_. Expand will return  back and array of the result or false if an error occurs.</div>
+                                       </dd>
+               </dl>
+       <a name="f"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">f</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$From</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$From">PHPMailer::$From</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the From email address for the message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$FromName</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$FromName">PHPMailer::$FromName</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the From name of the message.</div>
+                                       </dd>
+               </dl>
+       <a name="h"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">h</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Helo</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Helo">PHPMailer::$Helo</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the SMTP HELO of the message (Default is $Hostname).</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Host</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Host">PHPMailer::$Host</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the SMTP hosts.  All hosts must be separated by a   semicolon.  You can also specify a different port   for each host by using this format: [hostname:port]   (e.g. &quot;smtp1.example.com:25;smtp2.example.com&quot;).</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Hostname</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Hostname">PHPMailer::$Hostname</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the hostname to use in Message-Id and Received headers   and as default HELO string. If empty, the value returned   by SERVER_NAME is used or 'localhost.localdomain'.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Hello</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodHello">SMTP::Hello()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the HELO command to the smtp server.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Help</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodHelp">SMTP::Help()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Gets help information on the keyword specified. If the keyword</div>
+                                       </dd>
+               </dl>
+       <a name="i"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">i</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="method-title">IsError</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsError">PHPMailer::IsError()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Returns true if an error occurred.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsHTML</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsHTML">PHPMailer::IsHTML()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets message type to HTML.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsMail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsMail">PHPMailer::IsMail()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets Mailer to send message using PHP mail() function.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsQmail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsQmail">PHPMailer::IsQmail()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets Mailer to send message using the qmail MTA.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsSendmail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsSendmail">PHPMailer::IsSendmail()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets Mailer to send message using the $Sendmail program.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsSMTP</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsSMTP">PHPMailer::IsSMTP()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets Mailer to send message using SMTP.</div>
+                                       </dd>
+               </dl>
+       <a name="m"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">m</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Mailer</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Mailer">PHPMailer::$Mailer</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Method to send mail: (&quot;mail&quot;, &quot;sendmail&quot;, or &quot;smtp&quot;).</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Mail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodMail">SMTP::Mail()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Starts a mail transaction from the email address specified in  $from. Returns true if successful or false otherwise. If True  the mail transaction is started and then one or more Recipient  commands may be called followed by a Data command.</div>
+                                       </dd>
+               </dl>
+       <a name="n"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">n</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="method-title">Noop</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodNoop">SMTP::Noop()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the command NOOP to the SMTP server.</div>
+                                       </dd>
+               </dl>
+       <a name="p"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">p</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Password</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Password">PHPMailer::$Password</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets SMTP password.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$PluginDir</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$PluginDir">PHPMailer::$PluginDir</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Path to PHPMailer plugins.  This is now only useful if the SMTP class  is in a different directory than the PHP include path.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Port</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Port">PHPMailer::$Port</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the default SMTP server port.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Priority</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Priority">PHPMailer::$Priority</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Email priority (1 = High, 3 = Normal, 5 = low).</div>
+                                       </dd>
+                       <dt class="field">
+                                               PHPMailer
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html">PHPMailer</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">PHPMailer - PHP email transport class</div>
+                                       </dd>
+               </dl>
+       <a name="q"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">q</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="method-title">Quit</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodQuit">SMTP::Quit()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the quit command to the server and then closes the socket  if there is no error or the $close_on_error argument is true.</div>
+                                       </dd>
+               </dl>
+       <a name="r"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">r</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="method-title">Recipient</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodRecipient">SMTP::Recipient()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the command RCPT to the SMTP server with the TO: argument of $to.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Reset</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodReset">SMTP::Reset()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the RSET command to abort and transaction that is  currently in progress. Returns true if successful false  otherwise.</div>
+                                       </dd>
+               </dl>
+       <a name="s"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">s</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Sender</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Sender">PHPMailer::$Sender</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Sender email (Return-Path) of the message.  If not empty,  will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Sendmail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Sendmail">PHPMailer::$Sendmail</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the path of the sendmail program.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$SMTPAuth</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$SMTPAuth">PHPMailer::$SMTPAuth</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets SMTP authentication. Utilizes the Username and Password variables.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$SMTPDebug</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$SMTPDebug">PHPMailer::$SMTPDebug</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets SMTP class debugging on or off.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$SMTPKeepAlive</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$SMTPKeepAlive">PHPMailer::$SMTPKeepAlive</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Prevents the SMTP connection from being closed after each mail  sending.  If this is set to true then to close the connection  requires an explicit call to SmtpClose().</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$SMTP_PORT</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#var$SMTP_PORT">SMTP::$SMTP_PORT</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">SMTP server port</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Subject</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Subject">PHPMailer::$Subject</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Subject of the message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Send</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodSend">SMTP::Send()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Starts a mail transaction from the email address specified in</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Send</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodSend">PHPMailer::Send()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Creates message and assigns Mailer. If the message is  not sent successfully then it returns false.  Use the ErrorInfo  variable to view description of the error.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SendAndMail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodSendAndMail">SMTP::SendAndMail()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Starts a mail transaction from the email address specified in</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SendOrMail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodSendOrMail">SMTP::SendOrMail()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Starts a mail transaction from the email address specified in</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SetLanguage</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodSetLanguage">PHPMailer::SetLanguage()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the language for all class error messages.  Returns false  if it cannot load the language file.  The default language type  is English.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SMTP</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodSMTP">SMTP::SMTP()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Initialize the class so that the data is in a known state.</div>
+                                       </dd>
+                       <dt class="field">
+                                               SMTP
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html">SMTP</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">SMTP is rfc 821 compliant and implements all the rfc 821 SMTP  commands except TURN which will always return a not implemented  error. SMTP also provides some utility methods for sending mail  to an SMTP server.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SmtpClose</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodSmtpClose">PHPMailer::SmtpClose()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Closes the active SMTP session if one exists.</div>
+                                       </dd>
+               </dl>
+       <a name="t"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">t</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Timeout</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Timeout">PHPMailer::$Timeout</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the SMTP server timeout in seconds. This function will not   work with the win32 version.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Turn</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodTurn">SMTP::Turn()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">This is an optional command for SMTP that this class does not  support. This method is here to make the RFC821 Definition  complete for this class and __may__ be implimented in the future</div>
+                                       </dd>
+               </dl>
+       <a name="u"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">u</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Username</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Username">PHPMailer::$Username</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets SMTP username.</div>
+                                       </dd>
+               </dl>
+       <a name="v"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">v</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Version</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Version">PHPMailer::$Version</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Holds PHPMailer version.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Verify</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodVerify">SMTP::Verify()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Verifies that the name is recognized by the server.</div>
+                                       </dd>
+               </dl>
+       <a name="w"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">w</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$WordWrap</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$WordWrap">PHPMailer::$WordWrap</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets word wrapping on the body of the message to a given number of  characters.</div>
+                                       </dd>
+               </dl>
+
+<div class="index-letter-menu">
+       <a class="index-letter" href="elementindex.html#a">a</a>
+       <a class="index-letter" href="elementindex.html#b">b</a>
+       <a class="index-letter" href="elementindex.html#c">c</a>
+       <a class="index-letter" href="elementindex.html#d">d</a>
+       <a class="index-letter" href="elementindex.html#e">e</a>
+       <a class="index-letter" href="elementindex.html#f">f</a>
+       <a class="index-letter" href="elementindex.html#h">h</a>
+       <a class="index-letter" href="elementindex.html#i">i</a>
+       <a class="index-letter" href="elementindex.html#m">m</a>
+       <a class="index-letter" href="elementindex.html#n">n</a>
+       <a class="index-letter" href="elementindex.html#p">p</a>
+       <a class="index-letter" href="elementindex.html#q">q</a>
+       <a class="index-letter" href="elementindex.html#r">r</a>
+       <a class="index-letter" href="elementindex.html#s">s</a>
+       <a class="index-letter" href="elementindex.html#t">t</a>
+       <a class="index-letter" href="elementindex.html#u">u</a>
+       <a class="index-letter" href="elementindex.html#v">v</a>
+       <a class="index-letter" href="elementindex.html#w">w</a>
+</div> </body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/elementindex_PHPMailer.html b/0.2.1/inc/phpmailer/phpdoc/elementindex_PHPMailer.html
new file mode 100644 (file)
index 0000000..e62d5ed
--- /dev/null
@@ -0,0 +1,731 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title></title>
+                       <link rel="stylesheet" href="media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                                               <a name="top"></a>
+<h2>[PHPMailer] element index</h2>
+<a href="elementindex.html">All elements</a>
+<br />
+<div class="index-letter-menu">
+       <a class="index-letter" href="elementindex_PHPMailer.html#a">a</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#b">b</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#c">c</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#d">d</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#e">e</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#f">f</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#h">h</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#i">i</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#m">m</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#n">n</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#p">p</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#q">q</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#r">r</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#s">s</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#t">t</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#u">u</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#v">v</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#w">w</a>
+</div>
+
+       <a name="a"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">a</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$AltBody</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$AltBody">PHPMailer::$AltBody</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the text-only body of the message.  This automatically sets the  email to multipart/alternative.  This body can be read by mail  clients that do not have HTML email capability such as mutt. Clients  that can read HTML will view the normal Body.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddAddress</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddAddress">PHPMailer::AddAddress()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a &quot;To&quot; address.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddAttachment</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddAttachment">PHPMailer::AddAttachment()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds an attachment from a path on the filesystem.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddBCC</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddBCC">PHPMailer::AddBCC()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a &quot;Bcc&quot; address. Note: this function works  with the SMTP mailer on win32, not with the &quot;mail&quot;  mailer.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddCC</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddCC">PHPMailer::AddCC()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a &quot;Cc&quot; address. Note: this function works  with the SMTP mailer on win32, not with the &quot;mail&quot;  mailer.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddCustomHeader</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddCustomHeader">PHPMailer::AddCustomHeader()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a custom header.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddEmbeddedImage</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddEmbeddedImage">PHPMailer::AddEmbeddedImage()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds an embedded attachment.  This can include images, sounds, and  just about any other document.  Make sure to set the $type to an  image type.  For JPEG images use &quot;image/jpeg&quot; and for GIF images  use &quot;image/gif&quot;.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddReplyTo</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddReplyTo">PHPMailer::AddReplyTo()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a &quot;Reply-to&quot; address.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">AddStringAttachment</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodAddStringAttachment">PHPMailer::AddStringAttachment()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Adds a string or binary attachment (non-filesystem) to the list.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Authenticate</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodAuthenticate">SMTP::Authenticate()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Performs SMTP authentication.  Must be run after running the  Hello() method.  Returns true if successfully authenticated.</div>
+                                       </dd>
+               </dl>
+       <a name="b"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">b</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Body</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Body">PHPMailer::$Body</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Body of the message.  This can be either an HTML or text body.</div>
+                                       </dd>
+               </dl>
+       <a name="c"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">c</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$CharSet</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$CharSet">PHPMailer::$CharSet</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the CharSet of the message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$ConfirmReadingTo</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$ConfirmReadingTo">PHPMailer::$ConfirmReadingTo</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the email address that a reading confirmation will be sent.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$ContentType</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$ContentType">PHPMailer::$ContentType</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Content-type of the message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$CRLF</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#var$CRLF">SMTP::$CRLF</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">SMTP reply line ending</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="include-title">class.phpmailer.php</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/_class_phpmailer_php.html">class.phpmailer.php</a> in class.phpmailer.php</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="include-title">class.smtp.php</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/_class_smtp_php.html">class.smtp.php</a> in class.smtp.php</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearAddresses</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearAddresses">PHPMailer::ClearAddresses()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the TO array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearAllRecipients</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearAllRecipients">PHPMailer::ClearAllRecipients()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the TO, CC and BCC  array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearAttachments</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearAttachments">PHPMailer::ClearAttachments()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all previously set filesystem, string, and binary  attachments.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearBCCs</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearBCCs">PHPMailer::ClearBCCs()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the BCC array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearCCs</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearCCs">PHPMailer::ClearCCs()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the CC array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearCustomHeaders</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearCustomHeaders">PHPMailer::ClearCustomHeaders()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all custom headers.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">ClearReplyTos</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodClearReplyTos">PHPMailer::ClearReplyTos()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Clears all recipients assigned in the ReplyTo array.  Returns void.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Close</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodClose">SMTP::Close()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Closes the socket and cleans up the state of the class.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Connect</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodConnect">SMTP::Connect()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Connect to the server specified on the port specified.</div>
+                                       </dd>
+               </dl>
+       <a name="d"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">d</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$do_debug</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#var$do_debug">SMTP::$do_debug</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sets whether debugging is turned on</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Data</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodData">SMTP::Data()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Issues a data command and sends the msg_data to the server</div>
+                                       </dd>
+               </dl>
+       <a name="e"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">e</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Encoding</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Encoding">PHPMailer::$Encoding</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Encoding of the message. Options for this are &quot;8bit&quot;,  &quot;7bit&quot;, &quot;binary&quot;, &quot;base64&quot;, and &quot;quoted-printable&quot;.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$ErrorInfo</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$ErrorInfo">PHPMailer::$ErrorInfo</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Holds the most recent mailer error message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Expand</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodExpand">SMTP::Expand()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Expand takes the name and asks the server to list all the  people who are members of the _list_. Expand will return  back and array of the result or false if an error occurs.</div>
+                                       </dd>
+               </dl>
+       <a name="f"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">f</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$From</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$From">PHPMailer::$From</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the From email address for the message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$FromName</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$FromName">PHPMailer::$FromName</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the From name of the message.</div>
+                                       </dd>
+               </dl>
+       <a name="h"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">h</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Helo</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Helo">PHPMailer::$Helo</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the SMTP HELO of the message (Default is $Hostname).</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Host</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Host">PHPMailer::$Host</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the SMTP hosts.  All hosts must be separated by a   semicolon.  You can also specify a different port   for each host by using this format: [hostname:port]   (e.g. &quot;smtp1.example.com:25;smtp2.example.com&quot;).</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Hostname</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Hostname">PHPMailer::$Hostname</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the hostname to use in Message-Id and Received headers   and as default HELO string. If empty, the value returned   by SERVER_NAME is used or 'localhost.localdomain'.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Hello</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodHello">SMTP::Hello()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the HELO command to the smtp server.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Help</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodHelp">SMTP::Help()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Gets help information on the keyword specified. If the keyword</div>
+                                       </dd>
+               </dl>
+       <a name="i"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">i</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="method-title">IsError</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsError">PHPMailer::IsError()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Returns true if an error occurred.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsHTML</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsHTML">PHPMailer::IsHTML()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets message type to HTML.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsMail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsMail">PHPMailer::IsMail()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets Mailer to send message using PHP mail() function.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsQmail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsQmail">PHPMailer::IsQmail()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets Mailer to send message using the qmail MTA.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsSendmail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsSendmail">PHPMailer::IsSendmail()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets Mailer to send message using the $Sendmail program.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">IsSMTP</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodIsSMTP">PHPMailer::IsSMTP()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets Mailer to send message using SMTP.</div>
+                                       </dd>
+               </dl>
+       <a name="m"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">m</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Mailer</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Mailer">PHPMailer::$Mailer</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Method to send mail: (&quot;mail&quot;, &quot;sendmail&quot;, or &quot;smtp&quot;).</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Mail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodMail">SMTP::Mail()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Starts a mail transaction from the email address specified in  $from. Returns true if successful or false otherwise. If True  the mail transaction is started and then one or more Recipient  commands may be called followed by a Data command.</div>
+                                       </dd>
+               </dl>
+       <a name="n"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">n</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="method-title">Noop</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodNoop">SMTP::Noop()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the command NOOP to the SMTP server.</div>
+                                       </dd>
+               </dl>
+       <a name="p"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">p</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Password</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Password">PHPMailer::$Password</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets SMTP password.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$PluginDir</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$PluginDir">PHPMailer::$PluginDir</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Path to PHPMailer plugins.  This is now only useful if the SMTP class  is in a different directory than the PHP include path.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Port</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Port">PHPMailer::$Port</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the default SMTP server port.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Priority</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Priority">PHPMailer::$Priority</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Email priority (1 = High, 3 = Normal, 5 = low).</div>
+                                       </dd>
+                       <dt class="field">
+                                               PHPMailer
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html">PHPMailer</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">PHPMailer - PHP email transport class</div>
+                                       </dd>
+               </dl>
+       <a name="q"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">q</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="method-title">Quit</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodQuit">SMTP::Quit()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the quit command to the server and then closes the socket  if there is no error or the $close_on_error argument is true.</div>
+                                       </dd>
+               </dl>
+       <a name="r"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">r</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="method-title">Recipient</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodRecipient">SMTP::Recipient()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the command RCPT to the SMTP server with the TO: argument of $to.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Reset</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodReset">SMTP::Reset()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Sends the RSET command to abort and transaction that is  currently in progress. Returns true if successful false  otherwise.</div>
+                                       </dd>
+               </dl>
+       <a name="s"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">s</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Sender</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Sender">PHPMailer::$Sender</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Sender email (Return-Path) of the message.  If not empty,  will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Sendmail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Sendmail">PHPMailer::$Sendmail</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the path of the sendmail program.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$SMTPAuth</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$SMTPAuth">PHPMailer::$SMTPAuth</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets SMTP authentication. Utilizes the Username and Password variables.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$SMTPDebug</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$SMTPDebug">PHPMailer::$SMTPDebug</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets SMTP class debugging on or off.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$SMTPKeepAlive</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$SMTPKeepAlive">PHPMailer::$SMTPKeepAlive</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Prevents the SMTP connection from being closed after each mail  sending.  If this is set to true then to close the connection  requires an explicit call to SmtpClose().</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$SMTP_PORT</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#var$SMTP_PORT">SMTP::$SMTP_PORT</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">SMTP server port</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="var-title">$Subject</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Subject">PHPMailer::$Subject</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the Subject of the message.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Send</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodSend">SMTP::Send()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Starts a mail transaction from the email address specified in</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Send</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodSend">PHPMailer::Send()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Creates message and assigns Mailer. If the message is  not sent successfully then it returns false.  Use the ErrorInfo  variable to view description of the error.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SendAndMail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodSendAndMail">SMTP::SendAndMail()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Starts a mail transaction from the email address specified in</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SendOrMail</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodSendOrMail">SMTP::SendOrMail()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Starts a mail transaction from the email address specified in</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SetLanguage</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodSetLanguage">PHPMailer::SetLanguage()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the language for all class error messages.  Returns false  if it cannot load the language file.  The default language type  is English.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SMTP</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodSMTP">SMTP::SMTP()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Initialize the class so that the data is in a known state.</div>
+                                       </dd>
+                       <dt class="field">
+                                               SMTP
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html">SMTP</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">SMTP is rfc 821 compliant and implements all the rfc 821 SMTP  commands except TURN which will always return a not implemented  error. SMTP also provides some utility methods for sending mail  to an SMTP server.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">SmtpClose</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#methodSmtpClose">PHPMailer::SmtpClose()</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Closes the active SMTP session if one exists.</div>
+                                       </dd>
+               </dl>
+       <a name="t"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">t</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Timeout</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Timeout">PHPMailer::$Timeout</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets the SMTP server timeout in seconds. This function will not   work with the win32 version.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Turn</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodTurn">SMTP::Turn()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">This is an optional command for SMTP that this class does not  support. This method is here to make the RFC821 Definition  complete for this class and __may__ be implimented in the future</div>
+                                       </dd>
+               </dl>
+       <a name="u"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">u</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Username</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Username">PHPMailer::$Username</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets SMTP username.</div>
+                                       </dd>
+               </dl>
+       <a name="v"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">v</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$Version</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$Version">PHPMailer::$Version</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Holds PHPMailer version.</div>
+                                       </dd>
+                       <dt class="field">
+                                               <span class="method-title">Verify</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/SMTP.html#methodVerify">SMTP::Verify()</a> in class.smtp.php</div>
+                                                       <div class="index-item-description">Verifies that the name is recognized by the server.</div>
+                                       </dd>
+               </dl>
+       <a name="w"></a>
+       <div class="index-letter-section">
+               <div style="float: left" class="index-letter-title">w</div>
+               <div style="float: right"><a href="#top">top</a></div>
+               <div style="clear: both"></div>
+       </div>
+       <dl>
+                       <dt class="field">
+                                               <span class="var-title">$WordWrap</span>
+                                       </dt>
+               <dd class="index-item-body">
+                       <div class="index-item-details"><a href="PHPMailer/PHPMailer.html#var$WordWrap">PHPMailer::$WordWrap</a> in class.phpmailer.php</div>
+                                                       <div class="index-item-description">Sets word wrapping on the body of the message to a given number of  characters.</div>
+                                       </dd>
+               </dl>
+
+<div class="index-letter-menu">
+       <a class="index-letter" href="elementindex_PHPMailer.html#a">a</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#b">b</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#c">c</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#d">d</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#e">e</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#f">f</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#h">h</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#i">i</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#m">m</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#n">n</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#p">p</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#q">q</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#r">r</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#s">s</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#t">t</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#u">u</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#v">v</a>
+       <a class="index-letter" href="elementindex_PHPMailer.html#w">w</a>
+</div> </body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/errors.html b/0.2.1/inc/phpmailer/phpdoc/errors.html
new file mode 100644 (file)
index 0000000..d5781a0
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title>phpDocumentor Parser Errors and Warnings</title>
+                       <link rel="stylesheet" href="media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                                               <a href="#Post-parsing">Post-parsing</a><br>
+<a href="#class.smtp.php">class.smtp.php</a><br>
+<h1>class.phpmailer.php</h1>
+<h2>Warnings:</h2><br>
+<b>Warning on line 1530</b> - no @package tag was used in a DocBlock for file C:\dev\phpDocumentor-1.2.0\Classes\class.phpmailer.php<br>
+<h1>class.smtp.php</h1>
+<h2>Warnings:</h2><br>
+<b>Warning on line 1039</b> - no @package tag was used in a DocBlock for file C:\dev\phpDocumentor-1.2.0\Classes\class.smtp.php<br>
+       <p class="notes" id="credit">
+               Documention generated on Mon, 28 Jul 2003 23:25:50 -0400 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.2.0</a>
+       </p>
+       </body>
+</html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/index.html b/0.2.1/inc/phpmailer/phpdoc/index.html
new file mode 100644 (file)
index 0000000..f2b2c7a
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html 
+     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+   <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+       <!-- Generated by phpDocumentor on Mon, 28 Jul 2003 23:25:49 -0400  -->
+  <title>Generated Documentation</title>
+  <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='100,*'>
+       <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+       <FRAMESET cols='25%,*'>
+               <FRAME src='li_PHPMailer.html' name='left_bottom' frameborder="1" bordercolor="#999999">
+               <FRAME src='blank.html' name='right' frameborder="1" bordercolor="#999999">
+       </FRAMESET>
+       <NOFRAMES>
+               <H2>Frame Alert</H2>
+               <P>This document is designed to be viewed using the frames feature.
+               If you see this message, you are using a non-frame-capable web client.</P>
+       </NOFRAMES>
+</FRAMESET>
+</HTML>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/li_PHPMailer.html b/0.2.1/inc/phpmailer/phpdoc/li_PHPMailer.html
new file mode 100644 (file)
index 0000000..ec8456a
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title></title>
+                       <link rel="stylesheet" href="media/stylesheet.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                                               <div class="package-title">PHPMailer</div>
+<div class="package-details">
+
+       <dl class="tree">
+               
+               <dt class="folder-title">Description</dt>
+               <dd>
+                       <a href='classtrees_PHPMailer.html' target='right'>Class trees</a><br />
+                       <a href='elementindex_PHPMailer.html' target='right'>Index of elements</a><br />
+                                       </dd>
+       
+                                                       
+                                                       
+                                                                                                       <dt class="folder-title">Classes</dt>
+                                                                                       <dd><a href='PHPMailer/PHPMailer.html' target='right'>PHPMailer</a></dd>
+                                                                                       <dd><a href='PHPMailer/SMTP.html' target='right'>SMTP</a></dd>
+                                                                                                                                                                               <dt class="folder-title">Files</dt>
+                                                                                       <dd><a href='PHPMailer/_class_phpmailer_php.html' target='right'>class.phpmailer.php</a></dd>
+                                                                                       <dd><a href='PHPMailer/_class_smtp_php.html' target='right'>class.smtp.php</a></dd>
+                                                                                                                                       
+                                               
+                       </dl>
+</div>
+<p class="notes"><a href="http://www.phpdoc.org" target="_blank">phpDocumentor v <span class="field">1.2.0</span></a></p>
+</BODY>
+</HTML>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/phpdoc/media/banner.css b/0.2.1/inc/phpmailer/phpdoc/media/banner.css
new file mode 100644 (file)
index 0000000..f2149eb
--- /dev/null
@@ -0,0 +1,32 @@
+body 
+{ 
+       background-color: #CCCCFF; 
+       margin: 0px; 
+       padding: 0px;
+}
+
+/* Banner (top bar) classes */
+
+.banner {  }
+
+.banner-menu 
+{ 
+       clear: both;
+       padding: .5em;
+       border-top: 2px solid #6666AA;  
+}
+
+.banner-title 
+{ 
+       text-align: right; 
+       font-size: 20pt; 
+       font-weight: bold; 
+       margin: .2em;
+}
+
+.package-selector 
+{ 
+       background-color: #AAAADD; 
+       border: 1px solid black; 
+       color: yellow;
+}
diff --git a/0.2.1/inc/phpmailer/phpdoc/media/stylesheet.css b/0.2.1/inc/phpmailer/phpdoc/media/stylesheet.css
new file mode 100644 (file)
index 0000000..7a81139
--- /dev/null
@@ -0,0 +1,133 @@
+a { color: #336699; text-decoration: none; }
+a:hover { color: #6699CC; text-decoration: underline; }
+a:active { color: #6699CC; text-decoration: underline; }
+
+body, table { font-family: Georgia, Times New Roman, Times, serif; font-size: 10pt }
+p, li { line-height: 140% }
+a img { border: 0px; }
+dd { margin-left: 0px; padding-left: 1em; }
+
+/* Page layout/boxes */
+
+.info-box {}
+.info-box-title { margin: 1em 0em 0em 0em; padding: .25em; font-weight: normal; font-size: 14pt; border: 2px solid #999999; background-color: #CCCCFF }
+.info-box-body { border: 1px solid #999999; padding: .5em; }
+.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; }
+
+.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
+.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
+
+.page-body { max-width: 800px; margin: auto; }
+.tree dl { margin: 0px }
+
+/* Index formatting classes */
+
+.index-item-body { margin-top: .5em; margin-bottom: .5em}
+.index-item-description { margin-top: .25em }
+.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt }
+.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em}
+.index-letter-title { font-size: 12pt; font-weight: bold }
+.index-letter-menu { text-align: center; margin: 1em }
+.index-letter { font-size: 12pt }
+
+/* Docbook classes */
+
+.description {}
+.short-description { font-weight: bold; color: #666666; }
+.tags {        padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; }
+.parameters {  padding-left: 0em; margin-left: 3em; font-style: italic; list-style-type: square; }
+.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; }
+.package {  }
+.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black }
+.package-details { font-size: 85%; }
+.sub-package { font-weight: bold; font-size: 120% }
+.tutorial { border-width: thin; border-color: #0066ff }
+.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; }
+.nav-button-disabled { color: #999999; }
+.nav-button:active, 
+.nav-button:focus, 
+.nav-button:hover { background-color: #DDDDDD; outline: 1px solid #999999; text-decoration: none }
+.folder-title { font-style: italic }
+
+/* Generic formatting */
+
+.field { font-weight: bold; }
+.detail { font-size: 8pt; }
+.notes { font-style: italic; font-size: 8pt; }
+.separator { background-color: #999999; height: 2px; }
+.warning {  color: #FF6600; }
+.disabled { font-style: italic; color: #999999; }
+
+/* Code elements */
+
+.line-number {  }
+
+.class-table { width: 100%; }
+.class-table-header { border-bottom: 1px dotted #666666; text-align: left}
+.class-name { color: #000000; font-weight: bold; }
+
+.method-summary { padding-left: 1em; font-size: 8pt }
+.method-header { }
+.method-definition { margin-bottom: .3em }
+.method-title { font-weight: bold; }
+.method-name { font-weight: bold; }
+.method-signature { font-size: 85%; color: #666666; margin: .5em 0em }
+.method-result { font-style: italic; }
+
+.var-summary { padding-left: 1em; font-size: 8pt; }
+.var-header { }
+.var-title { margin-bottom: .3em }
+.var-type { font-style: italic; }
+.var-name { font-weight: bold; }
+.var-default {}
+.var-description { font-weight: normal; color: #000000; }
+
+.include-title {  }
+.include-type { font-style: italic; }
+.include-name { font-weight: bold; }
+
+.const-title {  }
+.const-name { font-weight: bold; }
+
+/* Syntax highlighting */
+
+.src-code {  border: 1px solid #336699; padding: 1em; background-color: #EEEEEE; }
+
+.src-comm { color: green; }
+.src-id {  }
+.src-inc { color: #0000FF; }
+.src-key { color: #0000FF; }
+.src-num { color: #CC0000; }
+.src-str { color: #66cccc; }
+.src-sym { font-weight: bold; }
+.src-var { }
+
+.src-php { font-weight: bold; }
+
+.src-doc { color: #009999 }
+.src-doc-close-template { color: #0000FF }
+.src-doc-coretag { color: #0099FF; font-weight: bold }
+.src-doc-inlinetag { color: #0099FF }
+.src-doc-internal { color: #6699cc }
+.src-doc-tag { color: #0080CC }
+.src-doc-template { color: #0000FF }
+.src-doc-type { font-style: italic }
+.src-doc-var { font-style: italic }
+
+/* tutorial */
+
+.authors {  }
+.author { font-style: italic; font-weight: bold }
+.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal }
+.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em }
+.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap }
+.release-info { font-size: 85%; font-style: italic; margin: 1em 0em }
+.ref-title-box {  }
+.ref-title {  }
+.ref-purpose { font-style: italic; color: #666666 }
+.ref-synopsis {  }
+.title { font-weight: bold; margin: 1em 0em 0em 0em; padding: .25em; border: 2px solid #999999; background-color: #CCCCFF  }
+.cmd-synopsis { margin: 1em 0em }
+.cmd-title { font-weight: bold }
+.toc { margin-left: 2em; padding-left: 0em }
+
diff --git a/0.2.1/inc/phpmailer/phpdoc/packages.html b/0.2.1/inc/phpmailer/phpdoc/packages.html
new file mode 100644 (file)
index 0000000..fdf40b0
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+               <head>
+                       <!-- template designed by Marco Von Ballmoos -->
+                       <title></title>
+                       <link rel="stylesheet" href="media/stylesheet.css" />
+                       <link rel="stylesheet" href="media/banner.css" />
+                       <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+               </head>
+               <body>
+                       <div class="banner">
+                               <div class="banner-title">PHPMailer</div>
+                               <div class="banner-menu">
+               <table cellpadding="0" cellspacing="0" style="width: 100%">
+                 <tr>
+              <td>
+                                                                             </td>
+              <td style="width: 2em">&nbsp;</td>
+              <td style="text-align: right">
+                                                                             </td>
+                                               </tr>
+          </table>
+                               </div>
+                       </div>
+               </body>
+       </html>
\ No newline at end of file
diff --git a/0.2.1/inc/phpmailer/test/phpmailer_test.php b/0.2.1/inc/phpmailer/test/phpmailer_test.php
new file mode 100644 (file)
index 0000000..ffbe4bd
--- /dev/null
@@ -0,0 +1,572 @@
+<?php
+/*******************
+  Unit Test
+  Type: phpmailer class
+********************/
+
+$INCLUDE_DIR = "../";
+
+require("phpunit.php");
+require($INCLUDE_DIR . "class.phpmailer.php");
+error_reporting(E_ALL);
+
+/**
+ * Performs authentication tests
+ */
+class phpmailerTest extends TestCase
+{
+    /**
+     * Holds the default phpmailer instance.
+     * @private
+     * @type object
+     */
+    var $Mail = false;
+
+    /**
+     * Holds the SMTP mail host.
+     * @public
+     * @type string
+     */
+    var $Host = "";
+    
+    /**
+     * Holds the change log.
+     * @private
+     * @type string array
+     */
+    var $ChangeLog = array();
+    
+     /**
+     * Holds the note log.
+     * @private
+     * @type string array
+     */
+    var $NoteLog = array();   
+
+    /**
+     * Class constuctor.
+     */
+    function phpmailerTest($name) {
+        /* must define this constructor */
+        $this->TestCase( $name );
+    }
+    
+    /**
+     * Run before each test is started.
+     */
+    function setUp() {
+        global $global_vars;
+        global $INCLUDE_DIR;
+
+        $this->Mail = new PHPMailer();
+
+        $this->Mail->Priority = 3;
+        $this->Mail->Encoding = "8bit";
+        $this->Mail->CharSet = "iso-8859-1";
+        $this->Mail->From = "unit_test@phpmailer.sf.net";
+        $this->Mail->FromName = "Unit Tester";
+        $this->Mail->Sender = "";
+        $this->Mail->Subject = "Unit Test";
+        $this->Mail->Body = "";
+        $this->Mail->AltBody = "";
+        $this->Mail->WordWrap = 0;
+        $this->Mail->Host = $global_vars["mail_host"];
+        $this->Mail->Port = 25;
+        $this->Mail->Helo = "localhost.localdomain";
+        $this->Mail->SMTPAuth = false;
+        $this->Mail->Username = "";
+        $this->Mail->Password = "";
+        $this->Mail->PluginDir = $INCLUDE_DIR;
+               $this->Mail->AddReplyTo("no_reply@phpmailer.sf.net", "Reply Guy");
+        $this->Mail->Sender = "unit_test@phpmailer.sf.net";
+
+        if(strlen($this->Mail->Host) > 0)
+            $this->Mail->Mailer = "smtp";
+        else
+        {
+            $this->Mail->Mailer = "mail";
+            $this->Sender = "unit_test@phpmailer.sf.net";
+        }
+        
+        global $global_vars;
+        $this->SetAddress($global_vars["mail_to"], "Test User");
+        if(strlen($global_vars["mail_cc"]) > 0)
+            $this->SetAddress($global_vars["mail_cc"], "Carbon User", "cc");
+    }     
+
+    /**
+     * Run after each test is completed.
+     */
+    function tearDown() {
+        // Clean global variables
+        $this->Mail = NULL;
+        $this->ChangeLog = array();
+        $this->NoteLog = array();
+    }
+
+
+    /**
+     * Build the body of the message in the appropriate format.
+     * @private
+     * @returns void
+     */
+    function BuildBody() {
+        $this->CheckChanges();
+        
+        // Determine line endings for message        
+        if($this->Mail->ContentType == "text/html" || strlen($this->Mail->AltBody) > 0)
+        {
+            $eol = "<br/>";
+            $bullet = "<li>";
+            $bullet_start = "<ul>";
+            $bullet_end = "</ul>";
+        }
+        else
+        {
+            $eol = "\n";
+            $bullet = " - ";
+            $bullet_start = "";
+            $bullet_end = "";
+        }
+        
+        $ReportBody = "";
+        
+        $ReportBody .= "---------------------" . $eol;
+        $ReportBody .= "Unit Test Information" . $eol;
+        $ReportBody .= "---------------------" . $eol;
+        $ReportBody .= "phpmailer version: " . $this->Mail->Version . $eol;
+        $ReportBody .= "Content Type: " . $this->Mail->ContentType . $eol;
+        
+        if(strlen($this->Mail->Host) > 0)
+            $ReportBody .= "Host: " . $this->Mail->Host . $eol;
+        
+        // If attachments then create an attachment list
+        if(count($this->Mail->attachment) > 0)
+        {
+            $ReportBody .= "Attachments:" . $eol;
+            $ReportBody .= $bullet_start;
+            for($i = 0; $i < count($this->Mail->attachment); $i++)
+            {
+                $ReportBody .= $bullet . "Name: " . $this->Mail->attachment[$i][1] . ", ";
+                $ReportBody .= "Encoding: " . $this->Mail->attachment[$i][3] . ", ";
+                $ReportBody .= "Type: " . $this->Mail->attachment[$i][4] . $eol;
+            }
+            $ReportBody .= $bullet_end . $eol;
+        }
+        
+        // If there are changes then list them
+        if(count($this->ChangeLog) > 0)
+        {
+            $ReportBody .= "Changes" . $eol;
+            $ReportBody .= "-------" . $eol;
+
+            $ReportBody .= $bullet_start;
+            for($i = 0; $i < count($this->ChangeLog); $i++)
+            {
+                $ReportBody .= $bullet . $this->ChangeLog[$i][0] . " was changed to [" . 
+                               $this->ChangeLog[$i][1] . "]" . $eol;
+            }
+            $ReportBody .= $bullet_end . $eol . $eol;
+        }
+        
+        // If there are notes then list them
+        if(count($this->NoteLog) > 0)
+        {
+            $ReportBody .= "Notes" . $eol;
+            $ReportBody .= "-----" . $eol;
+
+            $ReportBody .= $bullet_start;
+            for($i = 0; $i < count($this->NoteLog); $i++)
+            {
+                $ReportBody .= $bullet . $this->NoteLog[$i] . $eol;
+            }
+            $ReportBody .= $bullet_end;
+        }
+        
+        // Re-attach the original body
+        $this->Mail->Body .= $eol . $eol . $ReportBody;
+    }
+    
+    /**
+     * Check which default settings have been changed for the report.
+     * @private
+     * @returns void
+     */
+    function CheckChanges() {
+        if($this->Mail->Priority != 3)
+            $this->AddChange("Priority", $this->Mail->Priority);
+        if($this->Mail->Encoding != "8bit")
+            $this->AddChange("Encoding", $this->Mail->Encoding);
+        if($this->Mail->CharSet != "iso-8859-1")
+            $this->AddChange("CharSet", $this->Mail->CharSet);
+        if($this->Mail->Sender != "")
+            $this->AddChange("Sender", $this->Mail->Sender);
+        if($this->Mail->WordWrap != 0)
+            $this->AddChange("WordWrap", $this->Mail->WordWrap);
+        if($this->Mail->Mailer != "mail")
+            $this->AddChange("Mailer", $this->Mail->Mailer);
+        if($this->Mail->Port != 25)
+            $this->AddChange("Port", $this->Mail->Port);
+        if($this->Mail->Helo != "localhost.localdomain")
+            $this->AddChange("Helo", $this->Mail->Helo);
+        if($this->Mail->SMTPAuth)
+            $this->AddChange("SMTPAuth", "true");
+    }
+    
+    /**
+     * Adds a change entry.
+     * @private
+     * @returns void
+     */
+    function AddChange($sName, $sNewValue) {
+        $cur = count($this->ChangeLog);
+        $this->ChangeLog[$cur][0] = $sName;
+        $this->ChangeLog[$cur][1] = $sNewValue;
+    }
+    
+    /**
+     * Adds a simple note to the message.
+     * @public
+     * @returns void
+     */
+    function AddNote($sValue) {
+        $this->NoteLog[] = $sValue;
+    }
+
+    /**
+     * Adds all of the addresses
+     * @public
+     * @returns void
+     */
+    function SetAddress($sAddress, $sName = "", $sType = "to") {
+        switch($sType)
+        {
+            case "to":
+                $this->Mail->AddAddress($sAddress, $sName);
+                break;
+            case "cc":
+                $this->Mail->AddCC($sAddress, $sName);
+                break;
+            case "bcc":
+                $this->Mail->AddBCC($sAddress, $sName);
+                break;
+        }
+    }
+
+    /////////////////////////////////////////////////
+    // UNIT TESTS
+    /////////////////////////////////////////////////
+
+    /**
+     * Try a plain message.
+     */
+    function test_WordWrap() {
+
+        $this->Mail->WordWrap = 40;
+        $my_body = "Here is the main body of this message.  It should " .
+                   "be quite a few lines.  It should be wrapped at the " .
+                   "40 characters.  Make sure that it is.";
+        $nBodyLen = strlen($my_body);
+        $my_body .= "\n\nThis is the above body length: " . $nBodyLen;
+
+        $this->Mail->Body = $my_body;
+        $this->Mail->Subject .= ": Wordwrap";
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * Try a plain message.
+     */
+    function test_Low_Priority() {
+    
+        $this->Mail->Priority = 5;
+        $this->Mail->Body = "Here is the main body.  There should be " .
+                            "a reply to address in this message.";
+        $this->Mail->Subject .= ": Low Priority";
+        $this->Mail->AddReplyTo("nobody@nobody.com", "Nobody (Unit Test)");
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * Simple plain file attachment test.
+     */
+    function test_Multiple_Plain_FileAttachment() {
+
+        $this->Mail->Body = "Here is the text body";
+        $this->Mail->Subject .= ": Plain + Multiple FileAttachments";
+
+        if(!$this->Mail->AddAttachment("test.png"))
+        {
+            $this->assert(false, $this->Mail->ErrorInfo);
+            return;
+        }
+
+        if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt"))
+        {
+            $this->assert(false, $this->Mail->ErrorInfo);
+            return;
+        }
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * Simple plain string attachment test.
+     */
+    function test_Plain_StringAttachment() {
+
+        $this->Mail->Body = "Here is the text body";
+        $this->Mail->Subject .= ": Plain + StringAttachment";
+        
+        $sAttachment = "These characters are the content of the " .
+                       "string attachment.\nThis might be taken from a ".
+                       "database or some other such thing. ";
+        
+        $this->Mail->AddStringAttachment($sAttachment, "string_attach.txt");
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * Plain quoted-printable message.
+     */
+    function test_Quoted_Printable() {
+
+        $this->Mail->Body = "Here is the main body";
+        $this->Mail->Subject .= ": Plain + Quoted-printable";
+        $this->Mail->Encoding = "quoted-printable";
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * Try a plain message.
+     */
+    function test_Html() {
+    
+        $this->Mail->IsHTML(true);
+        $this->Mail->Subject .= ": HTML only";
+        
+        $this->Mail->Body = "This is a <b>test message</b> written in HTML. </br>" .
+                            "Go to <a href=\"http://phpmailer.sourceforge.net/\">" .
+                            "http://phpmailer.sourceforge.net/</a> for new versions of " .
+                            "phpmailer.  <p/> Thank you!";
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * Simple HTML and attachment test
+     */
+    function test_HTML_Attachment() {
+
+        $this->Mail->Body = "This is the <b>HTML</b> part of the email.";
+        $this->Mail->Subject .= ": HTML + Attachment";
+        $this->Mail->IsHTML(true);
+        
+        if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt"))
+        {
+            $this->assert(false, $this->Mail->ErrorInfo);
+            return;
+        }
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * An embedded attachment test.
+     */
+    function test_Embedded_Image() {
+
+        $this->Mail->Body = "Embedded Image: <img alt=\"phpmailer\" src=\"cid:my-attach\">" .
+                     "Here is an image!</a>";
+        $this->Mail->Subject .= ": Embedded Image";
+        $this->Mail->IsHTML(true);
+        
+        if(!$this->Mail->AddEmbeddedImage("test.png", "my-attach", "test.png",
+                                          "base64", "image/png"))
+        {
+            $this->assert(false, $this->Mail->ErrorInfo);
+            return;
+        }
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * An embedded attachment test.
+     */
+    function test_Multi_Embedded_Image() {
+
+        $this->Mail->Body = "Embedded Image: <img alt=\"phpmailer\" src=\"cid:my-attach\">" .
+                     "Here is an image!</a>";
+        $this->Mail->Subject .= ": Embedded Image + Attachment";
+        $this->Mail->IsHTML(true);
+        
+        if(!$this->Mail->AddEmbeddedImage("test.png", "my-attach", "test.png",
+                                          "base64", "image/png"))
+        {
+            $this->assert(false, $this->Mail->ErrorInfo);
+            return;
+        }
+
+        if(!$this->Mail->AddAttachment("phpmailer_test.php", "test.txt"))
+        {
+            $this->assert(false, $this->Mail->ErrorInfo);
+            return;
+        }
+        
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * Simple multipart/alternative test.
+     */
+    function test_AltBody() {
+
+        $this->Mail->Body = "This is the <b>HTML</b> part of the email.";
+        $this->Mail->AltBody = "Here is the text body of this message.  " .
+                   "It should be quite a few lines.  It should be wrapped at the " .
+                   "40 characters.  Make sure that it is.";
+        $this->Mail->WordWrap = 40;
+        $this->AddNote("This is a mulipart alternative email");
+        $this->Mail->Subject .= ": AltBody + Word Wrap";
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    /**
+     * Simple HTML and attachment test
+     */
+    function test_AltBody_Attachment() {
+
+        $this->Mail->Body = "This is the <b>HTML</b> part of the email.";
+        $this->Mail->AltBody = "This is the text part of the email.";
+        $this->Mail->Subject .= ": AltBody + Attachment";
+        $this->Mail->IsHTML(true);
+        
+        if(!$this->Mail->AddAttachment("phpmailer_test.php", "test_attach.txt"))
+        {
+            $this->assert(false, $this->Mail->ErrorInfo);
+            return;
+        }
+
+        $this->BuildBody();
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+
+        $fp = fopen("message.txt", "w");
+        fwrite($fp, $this->Mail->CreateHeader() . $this->Mail->CreateBody());
+        fclose($fp);
+    }    
+
+    function test_MultipleSend() {
+        $this->Mail->Body = "Sending two messages without keepalive";
+        $this->BuildBody();
+        $subject = $this->Mail->Subject;
+
+        $this->Mail->Subject = $subject . ": SMTP 1";
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+        
+        $this->Mail->Subject = $subject . ": SMTP 2";
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+
+    function test_SmtpKeepAlive() {
+        $this->Mail->Body = "This was done using the SMTP keep-alive.";
+        $this->BuildBody();
+        $subject = $this->Mail->Subject;
+
+        $this->Mail->SMTPKeepAlive = true;
+        $this->Mail->Subject = $subject . ": SMTP keep-alive 1";
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+        
+        $this->Mail->Subject = $subject . ": SMTP keep-alive 2";
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+        $this->Mail->SmtpClose();
+    }
+    
+    /**
+     * Tests this denial of service attack: 
+     *    http://www.cybsec.com/vuln/PHPMailer-DOS.pdf
+     */
+    function test_DenialOfServiceAttack() {
+        $this->Mail->Body = "This should no longer cause a denial of service.";
+        $this->BuildBody();
+       
+        $this->Mail->Subject = str_repeat("A", 998);
+        $this->assert($this->Mail->Send(), $this->Mail->ErrorInfo);
+    }
+    
+    function test_Error() {
+        $this->Mail->Subject .= ": This should be sent"; 
+        $this->BuildBody();
+        $this->Mail->ClearAllRecipients(); // no addresses should cause an error
+        $this->assert($this->Mail->IsError() == false, "Error found");
+        $this->assert($this->Mail->Send() == false, "Send succeeded");
+        $this->assert($this->Mail->IsError(), "No error found");
+        $this->assertEquals('You must provide at least one ' .
+                            'recipient email address.', $this->Mail->ErrorInfo);
+        $this->Mail->AddAddress(get("mail_to"));
+        $this->assert($this->Mail->Send(), "Send failed");
+    }
+}  
+/**
+ * Create and run test instance.
+ */
+if(isset($HTTP_GET_VARS))
+    $global_vars = $HTTP_GET_VARS;
+else
+    $global_vars = $_REQUEST;
+
+if(isset($global_vars["submitted"]))
+{
+    echo "Test results:<br>";
+    $suite = new TestSuite( "phpmailerTest" );
+    
+    $testRunner = new TestRunner;
+    $testRunner->run($suite);
+    echo "<hr noshade/>";
+}
+
+function get($sName) {
+    global $global_vars;
+    if(isset($global_vars[$sName]))
+        return $global_vars[$sName];
+    else
+        return "";
+}
+
+?>
+
+<html>
+<body>
+<h3>phpmailer Unit Test</h3>
+By entering a SMTP hostname it will automatically perform tests with SMTP.
+
+<form name="phpmailer_unit" action="phpmailer_test.php" method="get">
+<input type="hidden" name="submitted" value="1"/>
+To Address: <input type="text" size="50" name="mail_to" value="<?php echo get("mail_to"); ?>"/>
+<br/>
+Cc Address: <input type="text" size="50" name="mail_cc" value="<?php echo get("mail_cc"); ?>"/>
+<br/>
+SMTP Hostname: <input type="text" size="50" name="mail_host" value="<?php echo get("mail_host"); ?>"/>
+<p/>
+<input type="submit" value="Run Test"/>
+
+</form>
+</body>
+</html>
diff --git a/0.2.1/inc/phpmailer/test/phpunit.php b/0.2.1/inc/phpmailer/test/phpunit.php
new file mode 100644 (file)
index 0000000..305bbac
--- /dev/null
@@ -0,0 +1,376 @@
+<?php
+//
+// PHP framework for testing, based on the design of "JUnit".
+//
+// Written by Fred Yankowski <fred@ontosys.com>
+//            OntoSys, Inc  <http://www.OntoSys.com>
+//
+// $Id: phpunit.php,v 1.1 2002/03/30 19:32:17 bmatzelle Exp $
+
+// Copyright (c) 2000 Fred Yankowski
+
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use, copy,
+// modify, merge, publish, distribute, sublicense, and/or sell copies
+// of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+//
+error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE |
+               E_CORE_ERROR | E_CORE_WARNING);
+
+/*
+interface Test {
+  function run(&$aTestResult);
+  function countTestCases();
+}
+*/
+
+function trace($msg) {
+  return;
+  print($msg);
+  flush();
+}
+
+
+class Exception {
+    /* Emulate a Java exception, sort of... */
+  var $message;
+  function Exception($message) {
+    $this->message = $message;
+  }
+  function getMessage() {
+    return $this->message;
+  }
+}
+
+class Assert {
+  function assert($boolean, $message=0) {
+    if (! $boolean)
+      $this->fail($message);
+  }
+
+  function assertEquals($expected, $actual, $message=0) {
+    if ($expected != $actual) {
+      $this->failNotEquals($expected, $actual, "expected", $message);
+    }
+  }
+
+  function assertRegexp($regexp, $actual, $message=false) {
+    if (! preg_match($regexp, $actual)) {
+      $this->failNotEquals($regexp, $actual, "pattern", $message);
+    }
+  }
+
+  function failNotEquals($expected, $actual, $expected_label, $message=0) {
+    // Private function for reporting failure to match.
+    $str = $message ? ($message . ' ') : '';
+    $str .= "($expected_label/actual)<br>";
+    $htmlExpected = htmlspecialchars($expected);
+    $htmlActual = htmlspecialchars($actual);
+    $str .= sprintf("<pre>%s\n--------\n%s</pre>",
+                   $htmlExpected, $htmlActual);
+    $this->fail($str);
+  }
+}
+
+class TestCase extends Assert /* implements Test */ {
+  /* Defines context for running tests.  Specific context -- such as
+     instance variables, global variables, global state -- is defined
+     by creating a subclass that specializes the setUp() and
+     tearDown() methods.  A specific test is defined by a subclass
+     that specializes the runTest() method. */
+  var $fName;
+  var $fResult;
+  var $fExceptions = array();
+
+  function TestCase($name) {
+    $this->fName = $name;
+  }
+
+  function run($testResult=0) {
+    /* Run this single test, by calling the run() method of the
+       TestResult object which will in turn call the runBare() method
+       of this object.  That complication allows the TestResult object
+       to do various kinds of progress reporting as it invokes each
+       test.  Create/obtain a TestResult object if none was passed in.
+       Note that if a TestResult object was passed in, it must be by
+       reference. */
+    if (! $testResult)
+      $testResult = $this->_createResult();
+    $this->fResult = $testResult;
+    $testResult->run(&$this);
+    $this->fResult = 0;
+    return $testResult;
+  }
+
+  function countTestCases() {
+    return 1;
+  }
+
+  function runTest() {
+    $name = $this->name();
+    // Since isset($this->$name) is false, no way to run defensive checks
+    $this->$name();
+  }
+
+  function setUp() /* expect override */ {
+    //print("TestCase::setUp()<br>\n");
+  }
+
+  function tearDown() /* possible override */ {
+    //print("TestCase::tearDown()<br>\n");
+  }
+
+  ////////////////////////////////////////////////////////////////
+
+
+  function _createResult() /* protected */ {
+    /* override this to use specialized subclass of TestResult */
+    return new TestResult;
+  }
+
+  function fail($message=0) {
+    //printf("TestCase::fail(%s)<br>\n", ($message) ? $message : '');
+    /* JUnit throws AssertionFailedError here.  We just record the
+       failure and carry on */
+    $this->fExceptions[] = new Exception(&$message);
+  }
+
+  function error($message) {
+    /* report error that requires correction in the test script
+       itself, or (heaven forbid) in this testing infrastructure */
+    printf('<b>ERROR: ' . $message . '</b><br>');
+    $this->fResult->stop();
+  }
+
+  function failed() {
+    return count($this->fExceptions);
+  }
+
+  function getExceptions() {
+    return $this->fExceptions;
+  }
+
+  function name() {
+    return $this->fName;
+  }
+
+  function runBare() {
+    $this->setup();
+    $this->runTest();
+    $this->tearDown();
+  }
+}
+
+
+class TestSuite /* implements Test */ {
+  /* Compose a set of Tests (instances of TestCase or TestSuite), and
+     run them all. */
+  var $fTests = array();
+
+  function TestSuite($classname=false) {
+    if ($classname) {
+      // Find all methods of the given class whose name starts with
+      // "test" and add them to the test suite.  We are just _barely_
+      // able to do this with PHP's limited introspection...  Note
+      // that PHP seems to store method names in lower case, and we
+      // have to avoid the constructor function for the TestCase class
+      // superclass.  This will fail when $classname starts with
+      // "Test" since that will have a constructor method that will
+      // get matched below and then treated (incorrectly) as a test
+      // method.  So don't name any TestCase subclasses as "Test..."!
+      if (floor(phpversion()) >= 4) {
+       // PHP4 introspection, submitted by Dylan Kuhn
+       $names = get_class_methods($classname);
+       while (list($key, $method) = each($names)) {
+         if (preg_match('/^test/', $method) && $method != "testcase") {  
+           $this->addTest(new $classname($method));
+         }
+       }
+      }
+      else {
+       $dummy = new $classname("dummy");
+       $names = (array) $dummy;
+       while (list($key, $value) = each($names)) {
+         $type = gettype($value);
+         if ($type == "user function" && preg_match('/^test/', $key)
+         && $key != "testcase") {  
+           $this->addTest(new $classname($key));
+         }
+       }
+      }
+    }
+  }
+
+  function addTest($test) {
+    /* Add TestCase or TestSuite to this TestSuite */
+    $this->fTests[] = $test;
+  }
+
+  function run(&$testResult) {
+    /* Run all TestCases and TestSuites comprising this TestSuite,
+       accumulating results in the given TestResult object. */
+    reset($this->fTests);
+    while (list($na, $test) = each($this->fTests)) {
+      if ($testResult->shouldStop())
+       break;
+      $test->run(&$testResult);
+    }
+  }
+
+  function countTestCases() {
+    /* Number of TestCases comprising this TestSuite (including those
+       in any constituent TestSuites) */
+    $count = 0;
+    reset($fTests);
+    while (list($na, $test_case) = each($this->fTests)) {
+      $count += $test_case->countTestCases();
+    }
+    return $count;
+  }
+}
+
+
+class TestFailure {
+  /* Record failure of a single TestCase, associating it with the
+     exception(s) that occurred */
+  var $fFailedTestName;
+  var $fExceptions;
+
+  function TestFailure(&$test, &$exceptions) {
+    $this->fFailedTestName = $test->name();
+    $this->fExceptions = $exceptions;
+  }
+
+  function getExceptions() {
+      return $this->fExceptions;
+  }
+  function getTestName() {
+    return $this->fFailedTestName;
+  }
+}
+
+
+class TestResult {
+  /* Collect the results of running a set of TestCases. */
+  var $fFailures = array();
+  var $fRunTests = 0;
+  var $fStop = false;
+
+  function TestResult() { }
+
+  function _endTest($test) /* protected */ {
+      /* specialize this for end-of-test action, such as progress
+        reports  */
+  }
+
+  function getFailures() {
+    return $this->fFailures;
+  }
+
+  function run($test) {
+    /* Run a single TestCase in the context of this TestResult */
+    $this->_startTest($test);
+    $this->fRunTests++;
+
+    $test->runBare();
+
+    /* this is where JUnit would catch AssertionFailedError */
+    $exceptions = $test->getExceptions();
+    if ($exceptions)
+      $this->fFailures[] = new TestFailure(&$test, &$exceptions);
+    $this->_endTest($test);
+  }
+
+  function countTests() {
+    return $this->fRunTests;
+  }
+
+  function shouldStop() {
+    return $this->fStop;
+  }
+
+  function _startTest($test) /* protected */ {
+      /* specialize this for start-of-test actions */
+  }
+
+  function stop() {
+    /* set indication that the test sequence should halt */
+    $fStop = true;
+  }
+
+  function countFailures() {
+    return count($this->fFailures);
+  }
+}
+
+
+class TextTestResult extends TestResult {
+  /* Specialize TestResult to produce text/html report */
+  function TextTestResult() {
+    $this->TestResult();  // call superclass constructor
+  }
+  
+  function report() {
+    /* report result of test run */
+    $nRun = $this->countTests();
+    $nFailures = $this->countFailures();
+    printf("<p>%s test%s run<br>", $nRun, ($nRun == 1) ? '' : 's');
+    printf("%s failure%s.<br>\n", $nFailures, ($nFailures == 1) ? '' : 's');
+    if ($nFailures == 0)
+      return;
+
+    print("<ol>\n");
+    $failures = $this->getFailures();
+    while (list($i, $failure) = each($failures)) {
+      $failedTestName = $failure->getTestName();
+      printf("<li>%s\n", $failedTestName);
+
+      $exceptions = $failure->getExceptions();
+      print("<ul>");
+      while (list($na, $exception) = each($exceptions))
+       printf("<li>%s\n", $exception->getMessage());
+      print("</ul>");
+    }
+    print("</ol>\n");
+  }
+
+  function _startTest($test) {
+    printf("%s ", $test->name());
+    flush();
+  }
+
+  function _endTest($test) {
+    $outcome = $test->failed()
+       ? "<font color=\"red\">FAIL</font>"
+       : "<font color=\"green\">ok</font>";
+    printf("$outcome<br>\n");
+    flush();
+  }
+}
+
+
+class TestRunner {
+  /* Run a suite of tests and report results. */
+  function run($suite) {
+    $result = new TextTestResult;
+    $suite->run($result);
+    $result->report();
+  }
+}
+
+?>
diff --git a/0.2.1/inc/phpmailer/test/test.png b/0.2.1/inc/phpmailer/test/test.png
new file mode 100644 (file)
index 0000000..02de5a7
Binary files /dev/null and b/0.2.1/inc/phpmailer/test/test.png differ
diff --git a/0.2.1/inc/pool-update.php b/0.2.1/inc/pool-update.php
new file mode 100644 (file)
index 0000000..fabbcbd
--- /dev/null
@@ -0,0 +1,476 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/08/2003 *
+ * ===============                              Last change: 07/01/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : pool-update.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Sends queued mails from the pool                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sendet freigegebene Mails aus den Pool           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Test html extensions once
+$HTML_EXT = EXT_IS_ACTIVE("html_mail", true);
+
+// Check for freed mail orders to send out
+if ($HTML_EXT)
+{
+       //                                0     1        2      3       4          5            6      7        8          9       10
+       $result_main = SQL_QUERY("SELECT id, sender, subject, text, receivers, payment_id, timestamp, url, target_send, cat_id, html_msg FROM "._MYSQL_PREFIX."_pool WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);
+}
+ else
+{
+       //                                0     1        2      3       4          5            6      7        8          9    10
+       $result_main = SQL_QUERY("SELECT id, sender, subject, text, receivers, payment_id, timestamp, url, target_send, cat_id, id FROM "._MYSQL_PREFIX."_pool WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);
+}
+
+// Reset variables
+$cnt = "0"; $cnt2 = "0"; $LAST_SENT_ID = "0"; $cnt_back = array("0"); $POINTS_BACK = array("0");
+if (SQL_NUMROWS($result_main) > 0)
+{
+       while ($DATA = SQL_FETCHROW($result_main))
+       {
+               // Check fetched data for HTML
+               $HTML = $DATA[10]; if ($HTML == $DATA[0]) $HTML = "N";
+
+               // Compile URL and subject line
+               $DATA[7] = COMPILE_CODE($DATA[7]);
+
+               // Set mail order as "active". That means it will be sent out
+               $result_active = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='ACTIVE' WHERE id=%d AND data_type='NEW' LIMIT 1",
+                array($DATA[0]), __FILE__, __LINE__);
+               if (SQL_AFFECTEDROWS($result_active) == 1)
+               {
+                       // "Explode" all receivers into an array
+                       if (ereg(";", $DATA[4]))
+                       {
+                               // There's more than one receiver in the list...
+                               $RECEIVERS = explode(";", $DATA[4]);
+                       }
+                        elseif (!empty($DATA[4]))
+                       {
+                               // Only one user left
+                               $RECEIVERS = array($DATA[4]);
+                       }
+                        else
+                       {
+                               // No users left
+                               $RECEIVERS = array("0");
+                       }
+                       $DUMMY = $RECEIVERS;
+
+                       // Now, if we are good little boys and girls Santa left us some user-ids.
+                       // We can now send mails to them...
+                       foreach ($RECEIVERS as $key=>$uid)
+                       {
+                               // Lookup user ID
+                               $result_user = SQL_QUERY_ESC("SELECT sex, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                array(bigintval($uid)), __FILE__, __LINE__);
+
+                               // Is his data available?
+                               //* DEBUG: */ echo "*L:".__LINE__."/".SQL_NUMROWS($result_user)."*<BR>";
+                               if (SQL_NUMROWS($result_user) == 1)
+                               {
+                                       // The final receiver does exists so we can continue...
+                                       list($salut, $sname, $fname, $email) = SQL_FETCHROW($result_user);
+
+                                       // Free memory
+                                       SQL_FREERESULT($result_user);
+
+                                       // Do we have a stats entry?
+                                       $result_stats = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d AND userid=%d AND timestamp_ordered='%s' LIMIT 1",
+                                        array($DATA[0], $DATA[1], $DATA[6]), __FILE__, __LINE__);
+
+                                       // If there's no stats entry add it!
+                                       //* DEBUG: */ echo "!L:".__LINE__."/".SQL_NUMROWS($result_stats)."!<BR>";
+                                       if (SQL_NUMROWS($result_stats) == 0)
+                                       {
+                                               // No entry was found, so we add him!
+                                               $result_stats = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_stats (pool_id , userid, cat_id, payment_id, subject, url , max_rec , timestamp_ordered, timestamp_sstart) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' , UNIX_TIMESTAMP())",
+                                                array(bigintval($DATA[0]), bigintval($DATA[1]), bigintval($DATA[9]), bigintval($DATA[5]), $DATA[2], $DATA[7], $DATA[8], bigintval($DATA[6])), __FILE__, __LINE__);
+
+                                               // Receive it's ID for the links table
+                                               $result_stats = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d AND userid=%d AND timestamp_ordered='%s' LIMIT 1",
+                                                array(bigintval($DATA[0]), bigintval($DATA[1]), bigintval($DATA[6])), __FILE__, __LINE__);
+                                       }
+
+                                       //* DEBUG: */ echo "!L:".__LINE__."/".SQL_NUMROWS($result_stats)."!<BR>";
+                                       if (SQL_NUMROWS($result_stats) == 1)
+                                       {
+                                               // We got one!
+                                               list($stats_id) = SQL_FETCHROW($result_stats);
+                                               SQL_FREERESULT($result_stats);
+
+                                               // Mark this user as "spammed" ;-) And place a line for him...
+                                               //* DEBUG: */ echo "?L:".__LINE__."/".$DUMMY."/".$key."/".$uid."(".$DATA[1].")/".$DATA[0]."/".$stats_id."?<BR>";
+                                               switch (REMOVE_RECEIVER($DUMMY, $key, bigintval($uid), bigintval($DATA[0]), bigintval($stats_id)))
+                                               {
+                                               case "done":
+                                                       // Prepare the mail
+                                                       $DATA[11] = bigintval($stats_id);
+                                                       $DATA[12] = $sname;
+                                                       $DATA[13] = $fname;
+                                                       $DATA[14] = TRANSLATE_SEX($salut);
+
+                                                       // Load message template
+                                                       $msg = LOAD_EMAIL_TEMPLATE("normal-mail", $DATA[3], bigintval($uid));
+
+                                                       // Send mail away
+                                                       SEND_EMAIL($email, $DATA[2], $msg, $HTML);
+
+                                                       // Count sent mails...
+                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET emails_sent=emails_sent+1 WHERE userid=%d LIMIT 1",
+                                                        array(bigintval($DATA[1])), __FILE__, __LINE__);
+
+                                                       if (GET_EXT_VERSION("user") >= "0.1.4")
+                                                       {
+                                                               // Update mails received for receiver
+                                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET emails_received=emails_received+1 WHERE userid=%d LIMIT 1",
+                                                               array(bigintval($uid)), __FILE__, __LINE__);
+                                                       }
+
+                                                       // Update mediadata if version is 0.0.4 or higher
+                                                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                                                       {
+                                                               // Update entry (or add missing)
+                                                               //* DEBUG: */ echo "*MEDIA/L:".__LINE__."*<BR>";
+                                                               MEDIA_UPDATE_ENTRY(array("total_send", "normal_send"), "add", 1);
+                                                       }
+
+                                                       // And count up the mail
+                                                       $cnt++;
+                                                       //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$cnt."*<BR>";
+                                                       break;
+
+                                               case "already":
+                                                       // Entry already found, but we still count one up!
+                                                       $cnt++;
+                                                       //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$cnt."<BR>";
+                                                       break;
+                                               }
+                                       }
+
+                                       // Do we have reached the maximum to send mails? || ($CONFIG['max_send'] >= $cnt)
+                                       //* DEBUG: */ echo "*L:".__LINE__."/".$cnt.">=".$DATA[8]."/".$CONFIG['max_send'].">=".$cnt."/".$LAST_SENT_ID."!=".$DATA[0]."*<BR>";
+                                       if ((($cnt >= $DATA[8])) && ($LAST_SENT_ID != $DATA[0]))
+                                       {
+                                               // Yes we do, so we notify admin and sender about fully sent mail!
+                                               if (GET_EXT_VERSION("admins") >= "0.4.1")
+                                               {
+                                                       // New method
+                                                       SEND_ADMIN_EMAILS_PRO(ADMIN_SUBJ_SEND_DONE, "done-admin", $DATA[3], $uid);
+                                               }
+                                                else
+                                               {
+                                                       // Old method
+                                                       SEND_ADMIN_EMAILS(ADMIN_SUBJ_SEND_DONE, LOAD_EMAIL_TEMPLATE("done-admin", $DATA[3], $uid));
+                                               }
+
+                                               // Get sender's data
+                                               $result_sender = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                                array(bigintval($DATA[1])), __FILE__, __LINE__);
+                                               if (SQL_NUMROWS($result_sender) == 1)
+                                               {
+                                                       // Load data and prepare mail
+                                                       list($sname, $fname, $email) = SQL_FETCHROW($result_sender);
+                                                       SQL_FREERESULT($result_sender);
+                                                       $msg = LOAD_EMAIL_TEMPLATE("done-member", $DATA[3], $DATA[1]);
+
+                                                       // Send it also waway
+                                                       SEND_EMAIL($email, MEMBER_SUBJ_SEND_DONE, $msg);
+                                               }
+
+                                               // Set status to SEND because we completely send it away
+                                               $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='SEND', target_send='0', receivers='' WHERE id=%d LIMIT 1",
+                                                array(bigintval($DATA[0])), __FILE__, __LINE__);
+
+                                               // Update send-completed-time
+                                               $result_user = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_stats SET timestamp_send=UNIX_TIMESTAMP() WHERE pool_id=%d LIMIT 1",
+                                                array(bigintval($DATA[0])), __FILE__, __LINE__);
+
+                                               $LAST_SENT_ID = $DATA[0]; $cnt = "0";
+                                               $cnt2 += $cnt;
+
+                                               // Update mediadata if version is 0.0.4 or higher
+                                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                                               {
+                                                       // Update entry (or add missing)
+                                                       //* DEBUG: */ echo "*MEDIA/L:".__LINE__."*<BR>";
+                                                       MEDIA_UPDATE_ENTRY(array("total_orders", "normal_orders"), "add", 1);
+                                               }
+
+                                               //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$P."<BR>";
+                                               break;
+                                       }
+                                       // Do we have send maximum mails?
+                                        elseif (($cnt >= $CONFIG['max_send']) || ($cnt2 >= $CONFIG['max_send']))
+                                       {
+                                               // There are some mails left to send for next round, so we reset the status back to NEW (=still not fully delivered)
+                                               $ADD = "";
+                                               if ($cnt <= $DATA[8]) $ADD = ", target_send=target_send-".$cnt;
+                                               $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='NEW', receivers='%s'".$ADD." WHERE id=%d LIMIT 1",
+                                                array(implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);
+
+                                               //* DEBUG: */ echo"*EXIT/L:".__LINE__."*<BR>";
+                                               break;
+                                       }
+                               }
+                                else
+                               {
+                                       // User does not exists so we have add the sender's points back to sender's account
+                                       if (($RECEIVERS[0] == "0") || (empty($RECEIVERS[0])))
+                                       {
+                                               // List was empty
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='SEND' WHERE id=%d LIMIT 1",
+                                                array(bigintval($DATA[0])), __FILE__, __LINE__);
+                                       }
+                                        else
+                                       {
+                                               if ($uid > 0)
+                                               {
+                                                       // User does not exists, pay points back
+                                                       $POINTS = GET_PAY_POINTS($DATA[5]);
+                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth='0' LIMIT 1",
+                                                        array($POINTS, bigintval($DATA[1])), __FILE__, __LINE__);
+
+                                                       // Update mediadata as well
+                                                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                                                       {
+                                                               // Update database
+                                                               //* DEBUG: */ echo "*MEDIA/L:".__LINE__."/".$POINTS."*<BR>";
+                                                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $POINTS);
+                                                       }
+
+                                                       // Add points together and remove user
+                                                       $POINTS_BACK[$DATA[1]] += $POINTS;
+                                               }
+                                               $cnt_back[$DATA[1]]++;
+                                       }
+                                       // Remove entry from list
+                                       unset($DUMMY[$key]);
+
+                                       // Update receivers
+                                       $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET receivers='%s' WHERE id=%d LIMIT 1",
+                                        array(implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);
+                               }
+                       }
+               }
+       }
+       if ((sizeof($POINTS_BACK) > 0) && (!empty($POINTS_BACK[0])))
+       {
+               foreach ($POINTS_BACK as $uid=>$PB)
+               {
+                       // Add points only when we have points left to add and a valid user ID
+                       if (($PB > 0) && ($uid > 0))
+                       {
+                               // We have to pay back some points to the sender (we add them directly :-P)
+                               $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                                array(bigintval($uid)), __FILE__, __LINE__);
+                               $DATA[10] = $PB; $DATA[11] = $cnt_back[$uid];
+                               if (SQL_NUMROWS($result) == 1)
+                               {
+                                       list($email) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+
+                                       // User account does exists, so we can safely pay back!
+                                       $msg = LOAD_EMAIL_TEMPLATE("back-member", "", bigintval($uid));
+
+                                       // Send mail out to member
+                                       SEND_EMAIL($email, MEMBER_BACK_JACKPOT." (".$uid.")", $msg);
+                               }
+                                else
+                               {
+                                       // Add to jackpot
+                                       ADD_JACKPOT($PB);
+
+                                       // Send mail out to admin
+                                       if (GET_EXT_VERSION("admins") >= "0.4.1")
+                                       {
+                                               SEND_ADMIN_EMAILS_PRO(ADMIN_BACK_JACKPOT." (".$uid.")", "back-admin", "", "admin");
+                                       }
+                                        else
+                                       {
+                                               SEND_ADMIN_EMAILS(ADMIN_BACK_JACKPOT." (".$uid.")", LOAD_TEMPLATE("back-admin", "", "admin"));
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+// Free memory
+SQL_FREERESULT($result_main);
+
+// Only send bonus mail when bonus extension is active and maximum send-mails is not reached
+if ((EXT_IS_ACTIVE("bonus") && ($cnt < $CONFIG['max_send'])))
+{
+       // Do we need to send out bonus mails?
+       if ($HTML_EXT)
+       {
+               //                                 0     1       2        3        4      5       6          7       8      9         10         11
+               $result_bonus = SQL_QUERY("SELECT id, subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, html_msg FROM "._MYSQL_PREFIX."_bonus WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);
+       }
+        else
+       {
+               //                                 0     1       2        3        4      5       6          7       8      9         10      11
+               $result_bonus = SQL_QUERY("SELECT id, subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, 'N' FROM "._MYSQL_PREFIX."_bonus WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);
+       }
+
+       if (SQL_NUMROWS($result_bonus) > 0)
+       {
+               // Send these mails away...
+               $cnt2 = "";
+               while ($DATA = SQL_FETCHROW($result_bonus))
+               {
+                       // Compile URL
+                       $DATA[8] = COMPILE_CODE($DATA[8]);
+
+                       // Message is active in queue
+                       $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='QUEUE' WHERE id=%d LIMIT 1",
+                        array(bigintval($DATA[0])), __FILE__, __LINE__);
+
+                       // "Explode" all receivers into an array
+                       if (ereg(";", $DATA[3]))
+                       {
+                               // There's more than one receiver in the list...
+                               $RECEIVERS = explode(";", $DATA[3]);
+                       }
+                        elseif (!empty($DATA[4]))
+                       {
+                               // Only one user left
+                               $RECEIVERS = array($DATA[3]);
+                       }
+                        else
+                       {
+                               // No users left
+                               $RECEIVERS = array("0");
+                       }
+                       $DUMMY = $RECEIVERS;
+
+                       // Now, if we are good little boys and girls Santa left us some user-ids.
+                       // We can now send mails to them...
+                       foreach ($RECEIVERS as $key=>$uid)
+                       {
+                               // Load personal data
+                               //* DEBUG: */ echo "*L:".__LINE__."/".$uid."*<BR>";
+                               $result_user = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                array(bigintval($uid)), __FILE__, __LINE__);
+
+                               // Is his data available?
+                               if (SQL_NUMROWS($result_user) == 1)
+                               {
+                                       // The final receiver does exists so we can continue...
+                                       list($sname, $fname, $email) = SQL_FETCHROW($result_user);
+                                       //* DEBUG: */ echo "OK!/L:".__LINE__."<BR>";
+
+                                       // Mark this user as "spammed" ;-) And place a line for him...
+                                       if (REMOVE_RECEIVER($DUMMY, $key, $uid, $DATA[0], $DATA[0], true) == "done")
+                                       {
+                                               // Prepare the mail
+                                               $msg = LOAD_EMAIL_TEMPLATE("bonus-mail", $DATA[2], $uid);
+
+                                               // Send mail away
+                                               SEND_EMAIL($email, $DATA[1], $msg, $DATA[11]);
+
+                                               // Count one up and remove entry from dummy array
+                                               $cnt++; unset($DUMMY[$key]);
+
+                                               if (GET_EXT_VERSION("user") >= "0.1.4")
+                                               {
+                                                       // Update mails received for receiver
+                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET emails_received=emails_received+1 WHERE userid=%d LIMIT 1",
+                                                        array(bigintval($uid)), __FILE__, __LINE__);
+                                               }
+
+                                               // Do we have send maximum mails?
+                                               if (($cnt >= $CONFIG['max_send']) || (SELECTION_COUNT($DUMMY) == 0))
+                                               {
+                                                       // Yes, we have
+                                                       //* DEBUG: */ echo "*EXIT/L:".__LINE__."<BR>";
+                                                       break;
+                                               }
+                                       }
+                               }
+
+                               // Free some memory
+                               SQL_FREERESULT($result_user);
+                       }
+
+                       // Update mediadata if version is 0.0.4 or higher
+                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                       {
+                               // Update entry (or add missing
+                               $P = $cnt;
+                               if (!empty($cnt2) && empty($cnt)) $P = $cnt2;
+                               //* DEBUG: */ echo "+MEDIA/L:".__LINE__."/".$P."+<BR>";
+                               MEDIA_UPDATE_ENTRY(array("total_send", "bonus_send"), "add", $P);
+                       }
+
+                       // Close sending system
+                       //* DEBUG: */ echo "-L:".__LINE__."/".SELECTION_COUNT($DUMMY)."-<BR>";
+                       if (SELECTION_COUNT($DUMMY) == 0)
+                       {
+                               // Queue reached!
+                               $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='SEND', target_send='0', receivers='' WHERE id=%d LIMIT 1",
+                                array(bigintval($DATA[0])), __FILE__, __LINE__);
+                               //* DEBUG: */ echo "*L:".__LINE__."*<BR>";
+
+                               // Update mediadata if version is 0.0.4 or higher
+                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                               {
+                                       // Update entry (or add missing)
+                                       //* DEBUG: */ echo "*MEDIA/L:".__LINE__."*<BR>";
+                                       MEDIA_UPDATE_ENTRY(array("total_orders", "bonus_orders"), "add", 1);
+                               }
+                       }
+                        elseif ($cnt >= $CONFIG['max_send'])
+                       {
+                               // Update bonus pool
+                               $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='NEW', target_send=%d, receivers='%s' WHERE id=%d LIMIT 1",
+                                array(SELECTION_COUNT($DUMMY), implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);
+                               //* DEBUG: */ echo "*L:".__LINE__."<PRE>";
+                               //* DEBUG: */ print_r($DUMMY);
+                               //* DEBUG: */ echo "</PRE>\n!!!<BR>";
+                               break;
+                       }
+               }
+       }
+
+       // Free memory
+       SQL_FREERESULT($result_bonus);
+}
+
+// Remove message (IMPORTANT!)
+unset($msg);
+
+//
+?>
diff --git a/0.2.1/inc/profile-updte.php b/0.2.1/inc/profile-updte.php
new file mode 100644 (file)
index 0000000..216e46f
--- /dev/null
@@ -0,0 +1,84 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/29/2004 *
+ * ===============                              Last change: 04/12/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : profile-updte.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Sends out notifications to keep profiles updated *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sendet Erinnerngen aus, damit die Profile        *
+ *                     von den Mitgliedern aktuell gehalten werden      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+if (($CONFIG['send_prof_update'] == "Y") && ($CONFIG['profile_update'] > 0) && ($CONFIG['resend_profile_update']))
+{
+       // Ok, we shall send update notifications...
+       $TIMEOUT  = bigintval(time() - $CONFIG['profile_update']);
+       $TIMEOUT2 = bigintval(time() - $CONFIG['resend_profile_update']);
+
+       // Load personal data              0      1     2      3        4          5         6
+       $result = SQL_QUERY_ESC("SELECT userid, email, sex, surname, family, last_update, joined
+ FROM "._MYSQL_PREFIX."_user_data
+ WHERE (last_update < %s AND last_update != '0' AND last_profile_sent < %s) OR (last_update='0' AND last_profile_sent='0' AND joined < %s)
+ ORDER BY userid", array($TIMEOUT, $TIMEOUT2, $TIMEOUT), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) > 0)
+       {
+               // We need to send-out notifications...
+               while ($DATA = SQL_FETCHROW($result))
+               {
+                       $DATA[6] = MAKE_DATETIME($DATA[6], "0");
+                       if (round($DATA[5]) == "0")
+                       {
+                               // Has never changed his accont
+                               $DATA[5] = PROFILE_NEVER_CHANGED;
+                       }
+                        else
+                       {
+                               // Has changed his account
+                               $DATA[5] = MAKE_DATETIME($DATA[5], "0");
+                       }
+
+                       // Load email template and send mail away
+                       $msg = LOAD_EMAIL_TEMPLATE("profile-updte", "", bigintval($DATA[0]));
+                       SEND_EMAIL($DATA[1], PROFILE_OUTDATED, $msg);
+
+                       // Update profile data
+                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET last_profile_sent=UNIX_TIMESTAMP(), notified='Y' WHERE userid=%d LIMIT 1",
+                        array(bigintval($DATA[0])), __FILE__, __LINE__);
+               }
+       }
+
+       // Free result
+       SQL_FREERESULT($result);
+}
+//
+?>
diff --git a/0.2.1/inc/rdf.class.php b/0.2.1/inc/rdf.class.php
new file mode 100644 (file)
index 0000000..0552c36
--- /dev/null
@@ -0,0 +1,1361 @@
+<?php
+/* $Id: rdf.class.php,v 1.40 2003/07/06 20:33:58 sts Exp $ */
+
+//
+// +----------------------------------------------------------------------+
+// | rss Parser                                                           |
+// | Copyright (c) 2001 Stefan Saasen                                     |
+// +----------------------------------------------------------------------+
+// | The contents of this file are subject to the Mozilla Public License  |
+// | Version 1.1 (the "License"); you may not use this file except in     |
+// | compliance with the License. You may obtain a copy of the License at |
+// | http://www.mozilla.org/MPL/                                          |
+// |                                                                      |
+// | Software distributed under the License is distributed on an "AS IS"  |
+// | basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See  |
+// | the License for the specific language governing rights and           |
+// | limitations under the License.                                       |
+// +----------------------------------------------------------------------+
+// |                                                                      |
+// | Maintainer and initial developer:                                    |
+// | Stefan Saasen <s@fase4.com>                                          |
+// |                                                                      |
+// | Proxy and authentication methods added by:                           |
+// | Marco Kraus <marco.kraus@siemens.com>                                |
+// |                                                                      |
+// | Decoding of data by htmlentities or utf8_decode added by:            |
+// | Roland Haeder <webmaster@mxchange.org>                               |
+// |                                                                      |
+// +----------------------------------------------------------------------+
+// | Ref:                                                                 |
+// |   @link http://www.fase4.com/rdf/                   Latest release   |
+// +----------------------------------------------------------------------+
+
+/**
+* Class RSS Parser
+*
+* This class offers methods to parse RSS Files
+*
+* @link      http://www.fase4.com/rdf/ Latest release of this class
+* @package   rss
+* @copyright Copyright (c) 2001 fase4.com. All rights reserved.
+* @author    Stefan Saasen <s@fase4.com>
+* @version   1.7 ($Date: 2003/07/06 20:33:58 $) $Revision: 1.40 $
+* @access    public
+*/
+
+class fase4_rdf {
+
+    /**
+    * Word-wrapping mode for description, set it to 0 do disable this feature! Ommits _use_nl2br!
+    *
+    * @access private
+    * @var    integer
+    */
+    var $_word_wrap = 0;
+
+    /**
+    * Wether to recode \n -> <BR> or not in description
+    *
+    * @access private
+    * @var    boolean
+    */
+    var $_use_nl2br = true;
+
+    /**
+    * Sets the decoding mode of the read data (UTF8 scrambles some german umlauts here!)
+    *
+    * "htmlentities" - Use the function htmlentities()
+    * "utf8_decode"  - Use the function ut8_decode() when you have UTF8 encoded text
+    *
+    * @access private
+    * @var    string
+    */
+    var $_decoding_mode = "utf8_decode";
+
+    /**
+    * If $_link_target is set a target='xxx' attribute in each <a /> and <form /> html tag will be added
+    *
+    * Possible values are "_blank", "_content", "_parent", "_self", "_top"
+    *
+    * @access private
+    * @var    string
+    */
+    var $_link_target = "_blank";
+
+    /**
+    * vars for proxy settings - Prox Host
+    *
+    * @access private
+    * @var      string
+    */
+    var $_phost = "";
+
+    /**
+    * vars for proxy settings - Prox Port
+    *
+    * @access private
+    * @var      string
+    */
+    var $_pport = "";
+
+    /**
+    * vars for proxy settings - Prox Username
+    *
+    * @access private
+    * @var      string
+    */
+    var $_pname = "";
+
+    /**
+    * vars for proxy settings - Prox Password
+    *
+    * @access private
+    * @var      string
+    */
+    var $_ppasswd = "";
+
+    /**
+    * just a flag for checking if proxy-support should be enabled
+    * set default to false (will be enabled if set_proxy is called)
+    *
+    * @access   private
+    * @see      set_proxy()
+    * @var      bool
+    */
+    var $_use_proxy = false;
+
+    /**
+    * just a flag for checking if proxy-support with authentication
+    * should be enabled
+    * set default to false (will be enabled if set_proxy is called)
+    *
+    * @access   private
+    * @see      set_proxy()
+    * @var      boolean
+    */
+    var $_use_proxy_auth = false;
+
+    /**
+    * The time the Files will be cached (in seconds).
+    *
+    * @access private
+    * @var    int
+    */
+    var $_refresh = 60;   // int
+
+    /**
+    * The Name of the cached File.
+    *
+    * @access private
+    * @var    string
+    */
+    var $_cached_file = "";   // String
+
+    /**
+    * Indicates whether the cached or the remote file was used.
+    *
+    * @access private
+    * @var    boolean
+    */
+    var $_use_cached_file = true;
+
+    /**
+    * (fast|normal) depends on _use_dynamic_display(). _use_dynamic_display( TRUE ) -> 'normal', otherwise 'fast'
+    *
+    * @access private
+    * @var    string
+    */
+    var $_cache_type = "fast";
+
+    /**
+    * The Name of the Remote File.
+    *
+    * @access private
+    * @var    string
+    */
+    var $_remote_file = "";
+
+    /**
+    * Path to the Cache Directory.
+    *
+    * @access private
+    * @var    string
+    */
+    var $_cache_dir = "cache/";  // String
+
+    /**
+    * Indicates whether the Creating of the Cache Directory needs to be done or not.
+    *
+    * @access private
+    * @var    boolean
+    */
+    var $_cache_dir_ok = false;
+
+    /**
+    * Type of the file to be parsed (RSS or RDF).
+    *
+    * The Type depends on the root node
+    *
+    * @access private
+    * @var    string
+    */
+    var $_type = "rss"; // string (rss or rdf)
+
+    /**
+    * Array of Display Settings.
+    *
+    * Specific Parameters can be set to hidden. These are:
+    * image, channel and textinput. If set to "hidden" those elements won't be displayed.
+    *
+    * @access private
+    * @var    array
+    */
+    var $_display_opt = array(
+               'build' => '',
+               'image' => '',
+               'channel' => '',
+               'textinput' => '',
+               'cache_update' => '',
+               'sitelink' => '',
+               'refid' => '',
+               'reflink' => '',
+    );
+
+    /**
+    * Defines the width attribute in the table that holds the rdf/rss representation
+    *
+    * @access private
+    * @var    int
+    * @see    see_table_width()
+    */
+    var $_table_width = "100%";
+
+    /**
+    * Indicates whether or not to use dynamic Display Settings
+    *
+    * @access private
+    * @var    array
+    */
+    var $_use_dynamic_display = false;
+
+    /**
+    * <item> count
+    *
+    * @access private
+    * @var    int
+    */
+    var $_item_count = 0;
+
+    /**
+    * No of max <item>s
+    *
+    * @access private
+    * @var    boolean
+    */
+    var $_max_count = false;
+
+    /**
+    * Array containing the content of <channel />
+    *
+    * @access private
+    * @var    array
+    */
+    var $_array_channel = array();
+
+    /**
+    * Array containing the content of each <item />
+    *
+    * @access private
+    * @var    array
+    */
+    var $_array_item = array();
+
+    /**
+    * Array containing the content of <textinput />
+    *
+    * @access private
+    * @var    array
+    */
+    var $_array_textinput = array();
+
+    /**
+    * Array containing the content of <image />
+    *
+    * @access private
+    * @var    array
+    */
+    var $_array_image = array();
+
+    /**
+    * Array containing the Channel content. Just For internal XML Parser Purposes.
+    *
+    * @access private
+    * @var    array
+    */
+    var $_citem = array();
+
+    /**
+    * Array containing the Channel Parser Depth. Just For internal XML Parser Purposes.
+    *
+    * @access private
+    * @var    array
+    */
+    var $_cdepth = array();
+
+    /**
+    * Array containing the Channel tags. Just For internal XML Parser Purposes.
+    *
+    * @access private
+    * @var    array
+    */
+    var $_ctags = array( "x" );
+
+    /**
+    * Array containing the Channel content. Just For internal XML Parser Purposes.
+    *
+    * @access private
+    * @var    array
+    */
+    var $_item = array();   // Array
+
+    /**
+    * Array containing the Channel Parser Depth. Just For internal XML Parser Purposes.
+    *
+    * @access private
+    * @var    array
+    */
+    var $_depth = array();  // Array
+
+    /**
+    * Array containing the tags. Just For internal XML Parser Purposes.
+    *
+    * @access private
+    * @var    array
+    */
+    var $_tags = array( "x" );  // Array
+
+    /**
+    * Garbage collection: probability in percent
+    *
+    * @var      integer     0 => never
+    * @access   public
+    */
+    var $gc_probability = 1;
+
+    /**
+    * HTML Output
+    *
+    * @var      string
+    * @access   private
+    */
+    var $_output = "";
+
+    /**
+    * @var  string
+    */
+    var $_parse_mode = "";
+
+    // Output variable
+    var $out = "";
+
+    // Salt for hashing
+    var $salt = "";
+
+    /**
+    * Constructor of our Class
+    *
+    * This Method checks if the Cache Directory can be found. Otherwise it tries to creat the Cache Directory at the specified Path.
+    * Additionally the Refresh Time is set to a default Value of 1200s (20 min).
+       *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+       * @see           _refresh
+    */
+    function fase4_rdf()
+    {
+        // default Value, to be overwritten in set_refresh()
+        $this->_refresh = (time() - 1200);
+        $this->_clear_cItems();
+        $this->_clear_Items();
+    }
+
+    /**
+    * This Method starts the parsing of the specified RDF File. The File can be a local or a remote File.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $rdf    RDF File (Location)
+    * @return    string Displays RDF Content ( using _display() )
+       * @see           _remote_file, cache()
+    */
+    function parse_RDF( $rdf )
+    {
+        unset($this->_array_item);
+        $this->_remote_file = $rdf;
+        $this->out .= "<!-- http://www.fase4.com/rdf/ -->";
+        $this->out .= "<table width=\"".$this->_table_width."\">";
+        $this->out .= $this->cache();
+        $this->out .= "</table>";
+        $this->_output = "";
+        $this->_item_count = 0;
+        return true;
+    }
+
+    /**
+    * This Method is called when all parsing is finished to use the garbage collection
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $rdf    RDF File (Location)
+    * @return    string Displays RDF Content ( using _display() )
+       * @see           _remote_file, cache()
+    */
+    function finish($return = false)
+    {
+               if (!$return) {
+                       echo $this->out;
+               } else {
+                       return $this->out;
+               }
+        flush();
+        $this->_garbage_collection();
+    }
+
+    /**
+    * With this method you can decide whether to use the normal cache and dynamic display Options or to use a static cache.
+    *
+    * In the first case the rdf/rss File will be stored locally, in the second case the html output of the specified source will be stored.
+    * In this case you can not modify the display settings.
+    * processing time: ( 1.4792) --> remote file
+    * processing time: ( 0.0313) --> using 'normal cache' with display Modification turned on.
+    * processing time: ( 0.0019) --> using 'fast cache'
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $rdf    RDF File (Location)
+    * @return    string Displays RDF Content ( using _display() )
+       * @see           _remote_file, cache()
+    */
+    function use_dynamic_display( $bool )
+    {
+        $this->_use_dynamic_display = $bool;
+        return true;
+    }
+
+    /**
+    * This Method avtually parses the XML data.
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $data    RDF File XML Data
+       * @see           _clear_Items()
+    */
+    function _parse_xRDF( $data )
+    {
+        $this->_clear_Items();
+        $xml_parser = xml_parser_create();
+        xml_set_object($xml_parser,$this);
+               xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0);
+        xml_set_element_handler($xml_parser, "_startElement", "_endElement");
+        xml_set_character_data_handler($xml_parser, "_parseData");
+        if (!xml_parse($xml_parser, trim($data))) {
+                $this->_throw_exception(sprintf("XML error: %s at line %d",
+                xml_error_string(xml_get_error_code($xml_parser)),
+                xml_get_current_line_number($xml_parser))."<br /><br />Exception in function parse_RDF().");
+            }
+        xml_parser_free($xml_parser);
+    }
+
+
+    /**
+    * This Methods allows you to set the Refresh Time
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     int $seconds time files will be cached (in seconds).
+       * @return        boolean
+       * @see           _refresh
+    */
+    function set_refresh( $seconds )
+    {
+        $this->_refresh = (time() - $seconds);
+        return true;
+    }
+
+    function set_salt( $saltPara )
+    {
+        $this->salt = $saltPara;
+        return true;
+    }
+
+    /**
+    * This Methods allows you to set the No. of <item>s to display
+    *
+    * @access    public
+    * @param     int $int No of max <item>s
+       * @author    Stefan Saasen <s@fase4.com>
+       * @return        boolean
+       * @see           _max_count, _endElement()
+    */
+    function set_max_item( $int )
+    {
+        $this->_max_count = $int;
+        return true;
+    }
+
+    /**
+    * This Methods allows you to set the Cache Directory
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $dir Path to Directory.
+       * @return        boolean
+       * @see           _cache_dir
+    */
+    function set_CacheDir( $dir )
+    {
+        if(substr($dir, -1) != "/") {
+            $dir = $dir."/";
+        }
+        $this->_cache_dir = $dir;
+    }
+
+    /**
+    * This Method displays Error Messages and terminates the Execution of the Script
+    *
+    * @access    private
+    * @param     string $msg Message to display on failure
+       * @author    Stefan Saasen <s@fase4.com>
+    */
+    function _throw_exception( $msg )
+    {
+        $this->out .= "<div style=\"font-family: verdana, helvetica, arial, sans-serif;font-size:11px; color: #6699cc;margin-top:10px;margin-bottom:10px;\" align=\"center\">fase4 RDF Error: ".$msg."</div>";
+        return true;
+    }
+
+    /**
+    * This Method clears the Array containig the Items.
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @see       _item
+    */
+    function _clear_Items( ) {
+        $this->_item = array(
+            'title'=>"",
+            'link'=>"",
+            'description'=>"",
+            'url'=>"",
+            'language'=>"",
+            'pubDate'=>"",
+            'lastBuildDate'=>"",
+            'width'=>'',
+            'height'=>''
+        );
+    }
+    /**
+    * This Method clears the Array containig the Channel Items.
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @see       _item
+    */
+    function _clear_cItems( ) {
+        $this->_citem = array(
+            'title'=>"",
+            'link'=>"",
+            'description'=>"",
+            'url'=>"",
+            'language'=>"",
+            'copyright'=>"",
+            'managingEditor'=>"",
+            'webMaster'=>"",
+            'pubDate'=>"",
+            'lastBuildDate'=>"",
+            'category'=>"",
+            'generator'=>"",
+            'docs'=>"",
+            'cloud'=>"",
+            'ttl'=>"",
+            'image'=>"",
+            'textinput'=>"",
+            'skipHours'=>"",
+            'skipDays' =>"",
+            'sitelink'=>"",
+            'refid'=>"",
+            'reflink'=>"",
+        );
+    }
+
+    /**
+    * XML Parser Start Element Handler
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     mixed  $parser a reference to the XML parser calling the handler.
+    * @param     string $name contains the name of the element for which this handler is called.
+    * @param     string $attrs contains an associative array with the element's attributes (if any).
+       * @see           _get_ChannelData(), _clear_Items(), _type, _parse_mode, _depth, _tags, _cdepth, _ctags
+    */
+    function _startElement($parser, $name, $attrs) {
+        // We have to determine, which type of xml data we have to parse
+        if($name == "rss") {
+            $this->_type = "rss";
+        } elseif($name == "rdf:RDF" OR $name == "rdf") {
+            $this->_type = "rdf";
+        }
+
+
+        if ( $name == "channel" AND $this->_type != "rdf" ) {
+            $this->_parse_mode = "channel";
+        } elseif ( ($name=="item")
+                    ||($name=="image")
+                    ||($name=="textinput")
+                    ||(($name=="channel") && ($this->_type != "rss")) ) {
+            if($this->_parse_mode=="channel") {
+                $this->_get_ChannelData( $parser );
+            }
+            $this->_parse_mode = "all";
+        }
+
+        if( !isset( $this->_depth[$parser] ) ) {
+            $this->_depth[$parser] = 0;
+        }
+        $this->_depth[$parser]++;
+        array_push($this->_tags, $name);
+
+        if( !isset( $this->_cdepth[$parser] ) ) {
+            $this->_cdepth[$parser] = 0;
+        }
+        $this->_cdepth[$parser]++;
+        array_push($this->_ctags, $name);
+    }   // END _startElement()
+
+    /**
+    * Retrives the Channel Data in <rss> File
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     mixed  $parser a reference to the XML parser calling the handler.
+       * @see           _output, _display_opt, _citem
+    */
+    function _get_ChannelData( $parser )
+    {
+                $this->_citem["link"] = trim($this->_citem["link"]);
+                        if (($this->_display_opt["sitelink"] == $this->_citem["link"]) && (!empty($this->_display_opt["reflink"])) && (!empty($this->_display_opt["refid"])))
+                {
+                    $this->_citem["link"] .= $this->_display_opt["reflink"].$this->_display_opt["refid"];
+                }
+
+                if( empty($this->_display_opt["channel"]) OR
+                    $this->_display_opt["channel"] != "hidden") {
+                $this->_output .= "<tr><td>\n";
+                $this->_output .= "<table border=\"0\" width=\"100%\" class=\"fase4_rdf_meta\" cellspacing=\"5\" cellpadding=\"2\">\n";
+                $this->_output .= "<tr><td class=\"fase4_rdf_main_title\"><div class=\"fase4_rdf_main_title\">".htmlspecialchars($this->_citem["title"])."</div></td></tr>\n";
+                $this->_output .= "<tr><td class=\"fase4_rdf\">".strip_tags($this->_citem["description"], "<a>, <img>")."</td></tr>\n";
+                $this->_output .= "<tr><td>&nbsp;</td></tr>\n";
+                $this->_output .= "<tr><td class=\"fase4_rdf\">\n";
+                if(isset($this->_display_opt["build"]) && $this->_display_opt["build"] != "hidden") {
+                    if($this->_citem["lastBuildDate"]){$this->_output .= "build: ". $this->_citem["lastBuildDate"]."<br />";}
+                }
+                if(isset($this->_display_opt["cache_update"]) && $this->_display_opt["cache_update"] != "hidden" && ( $_update = $this->get_cache_update_time()) ) {
+                $this->_output .= "cache update: ".$_update."<br />\n";
+                }
+                $this->_output .= "<a href=\"".$this->_citem["link"]."\" ";
+                if(isset($this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
+                $this->_output .= ">".$this->_cut_string($this->_citem["link"])."</a>";
+                $this->_output .= "</td></tr>\n";
+                $this->_output .= "<tr><td><hr noshade width=\"100%\" size=\"1\"></td></tr>\n";
+                $this->_output .= "</table></td></tr>";
+                }
+                    $this->_array_channel = array(  "title"=>$this->_citem["title"],
+                                                    "link"=>$this->_citem["link"],
+                                                    "description"=>$this->_citem["description"],
+                                                    "lastBuildDate"=>$this->_citem["lastBuildDate"]);
+    }
+
+    /**
+    * XML Parser End Element Handler
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     mixed  $parser a reference to the XML parser calling the handler.
+    * @param     string $name contains the name of the element for which this handler is called.
+       * @see           _clear_Items(), _type, _parse_mode, _depth, _tags, _cdepth, _ctags, _item, _output, _display_opt
+    */
+    function _endElement($parser, $name) {
+        array_pop($this->_tags);
+        $this->_depth[$parser]--;
+        array_pop($this->_ctags);
+        $this->_cdepth[$parser]--;
+        $this->_item["link"] = trim($this->_item["link"]);
+          if ((!empty($this->_display_opt["refid"])) && (!empty($this->_item["link"])))
+          {
+            if (!ereg("refid=", $this->_item["link"])) $this->_item["link"] .= "?refid=" . $this->_display_opt["refid"];
+          }
+        switch ($name) {
+            case "item":
+                if(empty($this->_max_count) OR $this->_item_count < $this->_max_count) {
+                    if($this->_item["title"] != $this->_item["description"]
+                                            AND $this->_item["description"]) {
+
+                        // word-wrapping added by Roland Haeder <webmaster@mxchange.org>
+                          if (($this->_word_wrap > 0) && (strlen($this->_item["description"]) > $this->_word_wrap))
+                        {
+                            // Switch off _use_nl2br
+                            $this->_use_nl2br = false;
+                            // First remove all \n
+                            $this->_item["description"] = str_replace('\n', ' ', $this->_item["description"]);
+                            // Wrap with <br />\n
+                            $this->_item["description"] = wordwrap($this->_item["description"], $this->_word_wrap, "*<br>\n");
+                        }
+                         elseif (($this->_word_wrap == 0) && (!$this->_use_nl2br))
+                        {
+                            // Strip tags out instead when word-wrap is disabled
+                            $this->_item["description"] = strip_tags($this->_item["description"], "<a>, <img>");
+                        }
+
+                        // nl2br added by Roland Haeder <webmaster@mxchange.org>
+                        if ($this->_use_nl2br) $this->_item["description"] = nl2br($this->_item["description"]);
+
+                        $this->_output .= "<tr><td class=\"fase4_rdf_title\"><div class=\"fase4_rdf_title\"><a class=\"fase4_rdf_title\" href=\"".$this->_item["link"]."\" ";
+                        if(isset($this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
+                        $this->_output .= ">".strip_tags($this->_item["title"], "<a>, <img>")."</a> (".$this->_item["pubDate"].")</div></td></tr>\n";
+                                       $this->_output .= "<tr><td class=\"fase4_rdf\">".$this->_item["description"]."</td></tr>\n";
+                        // we just display the <hr> if there is a description
+                        $this->_output .= "<tr><td><hr noshade=\"noshade\" size=\"1\" /></td></tr>\n";
+                    } else {
+                        $this->_output .= "<tr><td class=\"fase4_rdf\">\n";
+                        $this->_output .= "<a href=\"".$this->_item["link"]."\" ";
+                        if(isset($this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
+                        $this->_output .= ">".$this->_item["title"]."</a></td></tr>\n";
+                    }
+                        $this->_array_item[] = array(   "title"=>$this->_item["title"],
+                                                        "link"=>$this->_item["link"],
+                                                        "description"=>$this->_item["description"]);
+                        ++$this->_item_count;
+                }
+                    $this->_clear_Items();
+            break;
+            case "image":
+                if(isset($this->_display_opt["image"]) && ($this->_display_opt["image"] != "hidden") && $this->_item["url"]) {
+                    $this->_output .= "<tr><td class=\"fase4_rdf\">\n";
+                    $this->_output .= "<a href=\"".$this->_item["link"]."\" ";
+                    if(isset($this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
+                    $this->_output .= "><img src=\"".$this->_item["url"]."\"";
+                if(isset($this->_item["width"]) && isset($this->_item["height"])) {
+                    $this->_output .= " width=\"".$this->_item["width"]."\" height=\"".$this->_item["height"]."\"";
+                }
+                $this->_output .= " alt=\"".$this->_item["title"]."\" border=\"0\" /></a></td></tr>\n";
+
+                    $this->_array_image[] = array(  "url"=>$this->_item["url"],
+                                                    "link"=>$this->_item["link"],
+                                                    "width"=>$this->_item["width"],
+                                                    "height"=>$this->_item["height"]);
+                    $this->_clear_Items();
+                } elseif( isset($this->_display_opt["image"] ) && ($this->_display_opt["image"] == "hidden") ) {
+                    $this->_clear_Items();
+                }
+
+            break;
+            case "channel":
+                if(isset($this->_display_opt["channel"]) AND $this->_display_opt["channel"] != "hidden" AND $this->_item["title"] != "") {
+                    $this->_output .= "<tr><td>\n";
+                    $this->_output .= '<table border="0" width="100%" class="fase4_rdf_meta" cellspacing="5" cellpadding="2">'."\n";
+                    $this->_output .= "<tr><td class=\"fase4_rdf\"><div class=\"fase4_rdf_title\">".htmlspecialchars($this->_item["title"])."</div></td></tr>\n";
+                    $this->_output .= "<tr><td class=\"fase4_rdf\">".strip_tags($this->_item["description"], "<a>, <img>")."</td></tr>\n";
+                    $this->_output .= "<tr><td>&nbsp;</td></tr>\n";
+                    $this->_output .= "<tr><td class=\"fase4_rdf\">\n";
+                if($this->_display_opt["build"] != "hidden") {
+                    if($this->_item["lastBuildDate"]){$this->_output .= "build: ". $this->_item["lastBuildDate"]."<br />";}
+                }
+                if($this->_display_opt["cache_update"] != "hidden" && ( $_update = $this->get_cache_update_time()) ) {
+                    $this->_output .= "cache update: ".$_update."<br />\n";
+                }
+                $this->_output .= "<a href=\"".$this->_item["link"]."\" ";
+                if(isset($this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
+                $this->_output .= ">".$this->_cut_string($this->_item["link"])."</a>\n";
+                $this->_output .= "</td></tr>\n";
+                $this->_output .= "</table></td></tr>\n";
+                }
+                    $this->_array_channel = array(  "title"=>$this->_item["title"],
+                                                    "link"=>$this->_item["link"],
+                                                    "description"=>$this->_item["description"],
+                                                    "lastBuildDate"=>$this->_item["lastBuildDate"]);
+                    $this->_clear_Items();
+                    $this->_clear_cItems();
+            break;
+                       case "textinput":
+                if(isset($this->_display_opt["textinput"]) && ($this->_display_opt["textinput"] != "hidden") && $this->_item["name"] && $this->_item["link"]) {
+                    $this->_output .= "<tr><td class=\"fase4_rdf\">\n";
+                               $this->_output .= "<form action=\"".$this->_item["link"]."\" ";
+                    if(isset($this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
+                    $this->_output .= "method=\"get\">\n";
+                    $this->_output .= "<div class=\"fase4_rdf_title\">".$this->_item["title"]."</div>";
+                    $this->_output .= strip_tags($this->_item["description"], "<a>, <img>")."<br><br>\n";
+                    $this->_output .= "<input class=\"fase4_rdf_input\" type=\"text\" name=\"".$this->_item["name"]."\">&nbsp;\n";
+                    $this->_output .= "<input class=\"fase4_rdf_input\" type=\"submit\" value=\"go\">";
+                    $this->_output .= "</form>\n";
+                    $this->_output .= "</td></tr>\n";
+                    $this->_array_textinput = array(    "title"=>$this->_item["title"],
+                                                        "name"=>$this->_item["name"],
+                                                        "link"=>$this->_item["link"],
+                                                        "description"=>$this->_item["description"]);
+                    $this->_clear_Items();
+                } elseif( isset($this->_display_opt["textinput"]) && ($this->_display_opt["textinput"] == "hidden") ) {
+                    $this->_clear_Items();
+                }
+
+                       break;
+        }
+    }
+
+    /**
+    * This Method returns the data from the <channel /> paragraph.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @return    array
+       * @see           _array_channel
+    */
+    function get_array_channel( )
+    {
+        return $this->_array_channel;
+    }
+
+    /**
+    * This Method returns the data from each <item /> paragraph.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @return    array
+       * @see           _array_item
+    */
+    function get_array_item( )
+    {
+        return $this->_array_item;
+    }
+
+    /**
+    * This Method returns the data from <textinput />.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @return    array
+       * @see           _array_textinput
+    */
+    function get_array_textinput( )
+    {
+        return $this->_array_textinput;
+    }
+
+    /**
+    * This Method returns the data from <image />.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @return    array
+       * @see           _array_image
+    */
+    function get_array_image( )
+    {
+        return $this->_array_image;
+    }
+
+    /**
+    * XML Parser Data Handler
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     mixed  $parser a reference to the XML parser calling the handler.
+    * @param     string $text contains the character data as a string.
+       * @see           _parse_mode, _item, _tags, _depth, _citem, _ctags, _cdepth
+    */
+    function _parseData($parser, $text)
+    {
+        // Deocing mode added by Roland Haeder <webmaster@mxchange.org>
+        switch ($this->_decoding_mode)
+        {
+        case "utf8_decode":
+            $text = utf8_decode($text);
+            break;
+
+        case "htmlentities":
+            $text = htmlentities($text);
+            break;
+        }
+
+        $clean = preg_replace("/\s/", "", $text);
+        if ($clean) {
+            $text = preg_replace("/^\s+/", "", $text)."\n";
+                if($this->_parse_mode == "all") {
+                        if ( isset($this->_item[$this->_tags[$this->_depth[$parser]]]) &&
+                            $this->_item[$this->_tags[$this->_depth[$parser]]] ) {
+                           $this->_item[$this->_tags[$this->_depth[$parser]]] .= $text;
+                        } else {
+                           $this->_item[$this->_tags[$this->_depth[$parser]]] = $text;
+                        }
+                } elseif (isset($this->_parse_mode) && $this->_parse_mode == "channel") {
+                        if ( isset($this->_citem[$this->_ctags[$this->_cdepth[$parser]]]) ) {
+                           $this->_citem[$this->_ctags[$this->_cdepth[$parser]]] .= $text;
+                        } else {
+                           $this->_citem[$this->_ctags[$this->_cdepth[$parser]]] = $text;
+                        }
+                }
+        }
+    }
+
+    /**
+    * This Method allows you to choose if specific Parameters are displayed or not. These are:
+    * image, channel, textinput, build and cache_update. If set to "hidden" those elements won't be displayed.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     array  $options
+       * @see           _display_opt
+    */
+    function set_Options( $options = "" )
+    {
+        if(is_array( $options )) {
+            $this->_display_opt = $options;
+            return true;
+        } else {
+            unset($this->_display_opt);
+            return false;
+        }
+    }
+
+    /**
+    * This Method allows you to define the width of the table that holds the representation of the rdf/rss file.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     int  $width  attribute width in tag <table>
+       * @see           _table_width
+    */
+    function set_table_width( $width = 400 )
+    {
+        $this->_table_width = $width;
+        return true;
+    }
+
+    /**
+    * This Method returns an assocative Array with available Options.
+    *
+    * The Keys are the Name of the Options to be set.
+    * The Values are  short Description of available Options.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @return    array  $options
+       * @see           _display_opt
+    */
+    function get_Options()
+    {
+        $options = array(   "image"=>"If 'image' is set to \"hidden\" no image provided by the RDF Publisher will be displayed.",
+                            "channel"=>"If 'channel' is set to \"hidden\" the Channel Meta Data (i.e the Title and the short description regarding the RDF Publisher will not be displayed",
+                            "textinput"=>"If set to \"hidden\" no Input Form will be displayed",
+                            "build"=>"If set to \"hidden\" the Build Date (if provided) of the RDF File will not be displayed",
+                            "cache_update"=>"If set to \"hidden\" the Update Date/Time of the cached Rdf File will not be displayed");
+        return $options;
+    }
+
+    /**
+    * This Method returns the Content of the RDF File in one string. The String actually holds the whole XML Document.
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $rdf    RDF File (Location)
+    * @return    string XML Presentation of parsed RDF File
+       * @see           _cached_file, _remote_file, _cache_dir, _refresh, _update_cache()
+    */
+    function cache()
+    {
+        // checks if the cache directory already exists
+        // if not, the cache directory will be created
+        if(!$this->_cache_dir_ok) {
+            $this->_create_cache_dir();
+        }
+        if($this->_use_dynamic_display == true) {
+            $this->_cached_file = md5("dynamic".$this->salt.$this->_remote_file);
+            $this->_cache_type = "normal";
+        } else {
+            $this->_cached_file = md5($this->salt.$this->_remote_file);
+            $this->_cache_type = "fast";
+        }
+
+        $_cache_f = $this->_cache_dir.$this->_cached_file;
+
+        if ( (!file_exists($_cache_f)) || (filemtime($_cache_f) < $this->_refresh) || (filesize($_cache_f) == 0)) {
+        // We have to parse the remote file
+        $this->_use_cached_file = false;
+            // --> we want to provide proper Information for Use in
+            // get_cache_update_time()
+            clearstatcache();
+            if($this->_use_dynamic_display == true) {
+                $_rdf = @implode(" ", $this->_rdf_data()); // -> proxy
+                if(!$_rdf) {
+                    $this->_throw_exception( $this->_remote_file." is not available" );
+                }
+                $this->_parse_xRDF( $_rdf );
+                $this->_update_cache( $_rdf );
+                $data = $this->_output;
+            } else {
+                $_rdf = @implode(" ", $this->_rdf_data()); // -> proxy
+                if(!$_rdf) {
+                    $this->_throw_exception( $this->_remote_file." is not available" );
+                }
+                $this->_parse_xRDF( $_rdf );
+                $this->_update_cache( $this->_output );
+                $data = $this->_output;
+            }
+        } else {
+        // we can use the cached file
+        $this->_use_cached_file = true;
+            if($this->_use_dynamic_display == true) {
+                $this->_parse_xRDF( implode(" ", file($_cache_f)) );
+                $data = $this->_output;
+            } else {
+                $data = @implode(" ", file($_cache_f));
+            }
+        }
+        return trim($data);
+    }   // END cache()
+
+    /**
+    * This Methods creates the Cache Directory if the specified Directory does not exist.
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $dir Path to Directory.
+       * @return        boolean
+       * @see           _cache_dir, _cache_dir_ok
+    */
+    function _create_cache_dir()
+    {
+        $path = "";
+        if(!@is_dir($this->_cache_dir)) {
+            $arr = explode("/", $this->_cache_dir);
+            $c = count($arr);
+            if($arr[0]=="") {
+                $path = "/";
+            }
+            for($i = 0;$i<$c;$i++)
+            {
+                if($arr[$i]!="") {
+                    $path .= $arr[$i]."/";
+                    if(!@is_dir($path)) {
+                       if(!@mkdir($path, 0777)) {
+                            $this->_throw_exception("failed to create directory:<b>".$this->_cache_dir."</b>.<br /><br />Exception on Line: ".__LINE__);
+                        return false;
+                        }
+                    }
+                }
+            }
+            $this->_cache_dir_ok = true;
+            return true;
+        } else {
+            $this->_cache_dir_ok = true;
+            return true;
+        }
+    }   // END _create_cache_dir()
+
+    /**
+    * This Method updates the cached RDF Files and synchronises them with their remote Counterparts.
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $rdf    RDF File (Location)
+       * @see           _cache_dir, _cached_file, _throw_exception()
+    */
+    function _update_cache( $content = "" )
+    {
+             $_local = @fopen( $this->_cache_dir.$this->_cached_file, 'w' );
+             if(!$_local) {
+                $this->_throw_exception( "Cannot open ".$this->_cached_file."<br /><br />Exception at Line: ".__LINE__ );
+                return false;
+             }
+             if (fwrite( $_local, $content) === false) {
+                       $this->_throw_exception( "Cannot write to ".$this->_cached_file."<br /<br />Exeception at Line: ".__LINE__);
+                       return false;
+                  }
+             fclose( $_local );
+                  @chmod( $this->_cache_dir.$this->_cached_file, 0666);
+             return true;
+    }   // END _update_cache()
+
+    /**
+    * This Method returns the Date/Time of last Cache Update of the actually parsed RDF File.
+       *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+       * @return        string Date/Time of last Update
+       * @see           _cache_dir, _cached_file
+    */
+    function get_cache_update_time()
+    {
+            return (file_exists($this->_cache_dir.$this->_cached_file))?date("d.m.Y H:i:s", filemtime($this->_cache_dir.$this->_cached_file)):"Cachemiss";
+    }   // END get_cache_update_time()
+
+    /**
+    * This Method returns the Type of Cache that was used ('normal' or 'fast')
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @param     string $rdf    RDF File (Location)
+    * @return    string Displays RDF Content ( using _display() )
+       * @see           _remote_file, cache()
+    */
+    function get_CacheType()
+    {
+        return $this->_cache_type;
+    }
+
+    /**
+    * Returns true if cached file was used, otherwise false
+    *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+    * @return    array  $options
+       * @see           _use_cached_file
+    */
+    function is_cachedFile()
+    {
+        return $this->_use_cached_file;
+    }
+
+    /**
+    * This Method deletes all the cached Files.
+    *
+    * Please keep in mind to use this method just as a 'manual garbage collection'
+    * You should cache the rss/rdf files locally to avoid unnecessary traffic.
+    * (Both for your visitors and the Publisher)
+       *
+    * @access    public
+       * @author    Stefan Saasen <s@fase4.com>
+       * @see           _cache_dir
+    */
+    function clear_cache()
+    {
+        $dir = dir($this->_cache_dir);
+        while($file=$dir->read()) {
+            if($file!="." && $file!="..")  {
+                if(!@unlink($dir->path.$file)) {
+                    $this->_throw_exception(
+                    "Unable to unlink ".$dir->path.$file
+                    ."<br /><br />Exception at Line: ".__LINE__ );
+                    return false;
+                }
+            }
+        }
+        $dir->close();
+        return true;
+    }   // END clear_cache()
+
+    /**
+    * Cuts the String $string after $str_len and adds "... "
+    *
+    * @access   private
+    * @param    string  $string String to be shortened
+    * @param    int     $str_len length of the returned String (overall length including "... ")
+    * @return   string  Cut String
+    */
+    function _cut_string( $string, $str_len = "30" )
+    {
+        if(strlen(trim($string))>$str_len) {
+        $string = substr( trim($string) , 0, $str_len - 4);
+        $string .= " ...";
+        }
+        return $string;
+    }   // END _cut_string()
+
+    /**
+    * this Method implements simple Garbage Collection
+    *
+    * @access    private
+       * @author    Stefan Saasen <s@fase4.com>
+       * @see           _cache_dir, gc_probability, gc_maxlifetime
+    */
+    function _garbage_collection()
+    {
+        srand((double) microtime() * 1000000);
+        if (rand(1, 100) <= $this->gc_probability) {
+            $dir = dir($this->_cache_dir);
+            while($file=$dir->read()) {
+                if($file!="." AND $file!=".." AND filemtime($dir->path.$file) <= time() - $this->_refresh )  {
+                @unlink($dir->path.$file);
+                }
+        }
+        $dir->close();
+        }   // END if
+    }
+
+    /* ==== Proxy/Auth methods ==== */
+
+   /**
+    * this method sets a proxy server
+    *
+    * @access    public
+    * @param     string $phost Proxy Host
+    * @param     string $pport Prox Port
+    * @author    Marco Kraus <marco.kraus@siemens.com>
+    */
+    function set_proxy($phost, $pport)
+    {
+     $this->_use_proxy = true;
+
+     if ($phost != "")
+        $this->_phost = $phost;
+
+     if ($pport != "")
+        $this->_pport = $pport;
+    }
+
+    /**
+    * this method sets a proxy server authentification
+    *
+    * @access    public
+    * @param     string $pname Username
+    * @param     string $ppaswd Password
+    * @author    Marco Kraus <marco.kraus@siemens.com>
+    */
+    function set_proxy_auth( $pname, $ppasswd )
+    {
+     $this->_use_proxy_auth = true;
+
+     if ($pname != "")
+        $this->_pname = $pname;
+
+     if ($ppasswd != "")
+        $this->_ppasswd = $ppasswd;
+    }
+
+
+   /**
+    * gets _remote_file into an array
+    *
+    * needed, cause if you use a proxy, you have to open
+    * a raw-tcp-socket to get the data
+    *
+    * @access    private
+    * @author    Marco Kraus <Marco.Kraus@siemens.com>
+    * @return array
+    * @see _use_proxy, cache()
+    */
+    function _rdf_data()
+    {
+      if ( $this->_use_proxy == true )
+      {
+       // we need a raw socket here to connect to proxy
+       $fp = fsockopen($this->_phost,$this->_pport);
+
+       if (!$fp) {
+           $this->_throw_exception( $this->_remote_file." is not available with proxy" );
+       } else {
+        if ( $this->_use_proxy_auth == true ) {
+             fputs($fp, "GET ".$this->_remote_file." HTTP/1.0\r\nUser-Agent: Fase4 RDF-Reader/1.40 modified by Quix0r\r\n\r\n");
+           } else {
+             fputs($fp, "GET ".$this->_remote_file." HTTP/1.0\r\nUser-Agent: Fase4 RDF-Reader/1.40 modified by Quix0r\r\nProxy-Authorization: Basic ".base64_encode("$this->_pname:$this->_ppasswd") ."\r\n\r\n");
+           }
+        }
+
+
+       for ( $i = 0; !feof ($fp) ; $i++)
+       {
+          $usable_data[$i] = "";
+          $usable_data[$i] = fgets($fp,4096);
+
+        // PARSE HEADER ---- first line has to be <?xml, second rdf or rss, and third is blank
+
+        // strstr did not fit (ask Rasmus why), so we compare each character
+            if ( ($usable_data[$i][0] == "<" ) &&
+               ($usable_data[$i][1] == "?" ) &&
+               ($usable_data[$i][2] == "x" ) &&
+               ($usable_data[$i][3] == "m" ) &&
+               ($usable_data[$i][4] == "l" ) ) {
+                    $usable_data[0] = $usable_data[$i]; // save current field
+                      $i = 1; // just reset array to start
+              }
+
+        // there seems to be proxystuff after the <?xml....we delete this
+            if ( (
+               ($usable_data[$i][0] == "<" ) &&
+               ($usable_data[$i][1] == "r" ) &&
+               ($usable_data[$i][2] == "d" ) &&
+               ($usable_data[$i][3] == "f" ) &&
+               ($usable_data[$i][4] == ":" )
+               )
+               ||
+               (
+               ($usable_data[$i][0] == "<" ) &&
+               ($usable_data[$i][1] == "r" ) &&
+               ($usable_data[$i][2] == "s" ) &&
+               ($usable_data[$i][3] == "s" )
+               )
+            ) {
+
+                $usable_data[1] = $usable_data[$i]; // save current field
+                $usable_data[2] = "\n";
+                $i = 2; // just reset array to start
+          }
+       }
+
+       fclose($fp);
+       return $usable_data;
+     } else {
+               if (substr($this->_remote_file, 0, 7) != "http://") {
+                       $this->_throw_exception( "Cannot find http:// in ".$this->_remote_file."!" );
+                       return "";
+               } else {
+                       // Extract host information
+                       $host = substr($this->_remote_file, 7);
+                       // Extract the GET part
+                       $get = "/";
+                       if (strpos($host, "/") > 0) {
+                               $get = substr($host, strpos($host, "/"));
+                               $host = substr($host, 0, strpos($host, "/"));
+                       }
+                       // Extract port
+                       $port = "80";
+                       if (strpos($host, ":") > 0) {
+                               $port = substr($host, (strpos($host, ":") + 1));
+                               $host = substr($host, 0, (strpos($host, ":") - 1));
+                       }
+
+                       // Start connection to server
+                       $fp = fsockopen($host, $port);
+                       if (!$fp) {
+                   $this->_throw_exception( $this->_remote_file." is maybe not available." );
+                         return "";
+                       }
+                       // Repare request line
+                       $request = sprintf("GET %s HTTP/1.0\r\nHost: %s\r\nUser-Agent: Fase4 RDF-Reader/1.40 modified by Quix0r\r\n\r\n", $get, $host);
+                       // Send request out
+                       fputs($fp, $request);
+                       $reply = ""; $isContent = false; $dummy = "";
+                       // Read reply
+                       while ( !feof($fp) ) {
+                               $read = trim(fgets($fp, 4096));
+                               if (substr($read, 0, 5) == "<?xml" || $isContent) {
+                                       // Add content
+                                       $reply[] = $read;
+                                       $isContent = true;
+                               } else {
+                                       // Put in dummy
+                                       $dummy[] = $read;
+                               }
+                               $i++;
+                       }
+                       if ((count($dummy) > 0) && (count($reply) == 0) && (!$isContent)) {
+                               // Transfer content from dummy
+                               $reply = $content;
+                       }
+                       fclose($fp);
+                       //die(htmlentities($reply));
+                       return $reply;
+               }
+     }
+   }    // END _rdf_data()
+}   // END class
+?>
diff --git a/0.2.1/inc/reset/.htaccess b/0.2.1/inc/reset/.htaccess
new file mode 100644 (file)
index 0000000..14249c5
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
\ No newline at end of file
diff --git a/0.2.1/inc/reset/reset_ b/0.2.1/inc/reset/reset_
new file mode 100644 (file)
index 0000000..6d6f0c0
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/27/2004 *
+ * ===============                              Last change: 12/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : reset_                                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Things to be done on daily reset                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Dinge, die beim taeglichen Reset erledigt werden *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003, 2004, 2005, 2006, 2007 by Roland Haeder          *                                
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *                                
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *                                
+ * MA  02110-1301  USA                                                  *                                
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE);
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || (defined('__DAILY_RESET'))) return;
+
+//
+?>
diff --git a/0.2.1/inc/reset/reset_beg.php b/0.2.1/inc/reset/reset_beg.php
new file mode 100644 (file)
index 0000000..830398a
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/22/2005 *
+ * ===============                              Last change: 10/22/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : reset_beg.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Reset begging points                             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Erbettelten Punkte zuruecksetzen                 *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("beg")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "beg");
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || (!defined('__DAILY_RESET'))) return;
+
+// Reset accounts
+$result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data SET beg_points='0.00000' WHERE beg_points > 0",
+ __FILE__, __LINE__);
+
+//
+?>
diff --git a/0.2.1/inc/reset/reset_bonus.php b/0.2.1/inc/reset/reset_bonus.php
new file mode 100644 (file)
index 0000000..58a25db
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/22/2005 *
+ * ===============                              Last change: 10/22/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : reset_bonus.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Reset bonus points                               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bonus-Punkte zuruecksetzen                       *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("bonus")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "bonus");
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || (!defined('__DAILY_RESET'))) return;
+
+// Reset accounts
+$result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data SET turbo_bonus=0, login_bonus=0, bonus_order=0, bonus_stats=0, bonus_ref=0",
+ __FILE__, __LINE__);
+
+//
+?>
diff --git a/0.2.1/inc/reset/reset_daily.php b/0.2.1/inc/reset/reset_daily.php
new file mode 100644 (file)
index 0000000..53a30fc
--- /dev/null
@@ -0,0 +1,104 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 04/20/2004 *
+ * ===============                              Last change: 01/07/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : reset_daily.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Things to do on daily reset                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Dinge, die beim taeglichen Reset erledigt werden *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Update user profiles
+if (GET_EXT_VERSION("order") >= "0.1.1") {
+       // Latest version
+       $result_daily = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data SET receive_mails=max_mails, mail_orders='0' WHERE receive_mails != max_mails", __FILE__, __LINE__);
+} else {
+       // Obsolete version
+       $result_daily = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data SET receive_mails=max_mails WHERE receive_mails != max_mails", __FILE__, __LINE__);
+}
+
+// Transfer points from locked_points to points
+$result_daily = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE ref_payout='0' AND status='CONFIRMED' ORDER BY userid", __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result_daily) > 0)
+{
+       // Start checking accounts which are on 0 confirmed-to-go mails
+       while (list($uid) = SQL_FETCHROW($result_daily))
+       {
+               $result_points = SQL_QUERY_ESC("SELECT ref_depth, locked_points FROM "._MYSQL_PREFIX."_user_points
+WHERE userid=%d AND locked_points != '0.00000' ORDER BY ref_depth",
+                array(bigintval($uid)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result_points) > 0)
+               {
+                       // Ok transfer points
+                       while (list($dep, $locked) = SQL_FETCHROW($result_points))
+                       {
+                               $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s, locked_points='0.00000'
+WHERE userid=%d AND ref_depth='%s' LIMIT 1",
+                                array($locked, bigintval($uid), $dep), __FILE__, __LINE__);
+
+                               // Update mediadata as well
+                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                               {
+                                       // Update database
+                                       MEDIA_UPDATE_ENTRY(array("total_points"), "add", $locked);
+                               }
+                       }
+               }
+
+               // Free memory
+               SQL_FREERESULT($result_points);
+       }
+}
+
+// Free memory
+SQL_FREERESULT($result_daily);
+
+// Save config value for later references
+$CONFIG['last_update'] = time();
+
+// Update database
+$result_daily = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET last_update=UNIX_TIMESTAMP()
+WHERE config='0' AND last_update != UNIX_TIMESTAMP() LIMIT 1", __FILE__, __LINE__);
+
+// Destroy cache
+if ((GET_EXT_VERSION("cache") >= "0.1.2") && (SQL_AFFECTEDROWS() == 1))
+{
+       if ($CACHE->cache_file("config", true))
+       {
+               $CACHE->cache_replace("last_update", time(), "0", $CFG_CACHE);
+       }
+}
+
+//
+?>
diff --git a/0.2.1/inc/reset/reset_engine.php b/0.2.1/inc/reset/reset_engine.php
new file mode 100644 (file)
index 0000000..f093bf6
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/27/2004 *
+ * ===============                              Last change: 12/27/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : reset_engine.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Things for the engine on daily reset             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Dinge, die beim taeglichen Reset erledigt werden *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("engine")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "engine");
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || (!defined('__DAILY_RESET'))) return;
+
+//
+?>
diff --git a/0.2.1/inc/reset/reset_holiday.php b/0.2.1/inc/reset/reset_holiday.php
new file mode 100644 (file)
index 0000000..68604f8
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/10/2005 *
+ * ===============                              Last change: 12/10/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : reset_holiday.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Things to be done on daily reset                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Dinge, die beim taeglichen Reset erledigt werden *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+ elseif ((!EXT_IS_ACTIVE("holiday")) && (!IS_ADMIN()))
+{
+       ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "holiday");
+       return;
+}
+
+// Do not execute when script is in CSS mode or no daily reset
+if (($CSS == 1) || ((!defined('__DAILY_RESET')) && ($CONFIG['holiday_mode'] == "RESET"))) return;
+
+// Check for holidays we need to enable and send email to user
+$result_main = SQL_QUERY("SELECT userid, holiday_activated FROM "._MYSQL_PREFIX."_user_data
+WHERE holiday_activated > 0 AND holiday_activated < ".time()." AND holiday_active='N'
+ORDER BY holiday_activated", __FILE__, __LINE__);
+if (SQL_NUMROWS($result_main) > 0)
+{
+       // We have found at least one useraccount so let's check it...
+       while(list($uid, $activated) = SQL_FETCHROW($result_main))
+       {
+               // Check if his holiday can be activated
+               $result_holiday = SQL_QUERY_ESC("SELECT holiday_start, holiday_end FROM "._MYSQL_PREFIX."_user_holidays
+WHERE userid=%d AND holiday_start <= ".time()." AND holiday_end > ".time()." LIMIT 1",
+ array(bigintval($uid)), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result_holiday) == 1)
+               {
+                       // Okay, this user can be send away to holiday...
+                       list($start, $end) = SQL_FETCHROW($result_holiday);
+
+                       // Prepare all data for the template
+                       $content = array(
+                               'activated' => MAKE_DATETIME($activated, "1"),
+                               'start'     => MAKE_DATETIME($start    , "1"),
+                               'end'       => MAKE_DATETIME($end      , "1")
+                       );
+
+                       // Send email to user
+                       $msg = LOAD_EMAIL_TEMPLATE("member_holiday_activated", $content, $uid);
+                       SEND_EMAIL($uid, HOLIDAY_MEMBER_ACTIVATED, $msg);
+
+                       // Update account
+                       $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET holiday_active='Y'
+WHERE userid=%d LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__);
+               }
+
+               // Free memory
+               SQL_FREERESULT($result_holiday);
+       }
+}
+
+// Free memory
+SQL_FREERESULT($result_main);
+
+// Stop currently activated holidays
+HOLIDAY_STOP_HOLIDAYS();
+
+//
+?>
diff --git a/0.2.1/inc/security.php b/0.2.1/inc/security.php
new file mode 100644 (file)
index 0000000..4bbc301
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/05/2003 *
+ * ===============                              Last change: 11/10/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : security.php                                     *
+ * -------------------------------------------------------------------- *
+ * Short description : Access denied!                                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Zugriff verweigert!                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+echo "<HTML><HEAD><TITLE>Protected file ".basename($_SERVER['PHP_SELF'])." - ACCESS DENIED!</TITLE></HEAD>
+<BODY bgcolor=\"#880000\" text=\"#FFFFFF\"><DIV align=\"center\">
+<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
+<TR>
+  <TD align=\"center\"><U><STRONG><BIG><BIG>A&nbsp;C&nbsp;C&nbsp;E&nbsp;S&nbsp;S&nbsp;&nbsp;&nbsp;D&nbsp;E&nbsp;N&nbsp;I&nbsp;E&nbsp;D&nbsp;!</BIG></BIG></STRONG></U></TD>
+</TR>
+<TR><TD height=\"10\"></TD></TR>
+<TR>
+  <TD align=\"center\">
+    You have tried to open a protected file! Your access has been logged in the server's logfile with your IP number:
+  </TD>
+</TR>
+<TR><TD height=\"10\"></TD></TR>
+<TR>
+  <TD align=\"center\">
+    <STRONG>".getenv('REMOTE_ADDR')."</STRONG>
+  </TD>
+</TR>
+</TABLE>
+</DIV></BODY>
+</HTML>\n";
+exit();
+//
+?>
diff --git a/0.2.1/inc/session.php b/0.2.1/inc/session.php
new file mode 100644 (file)
index 0000000..f977003
--- /dev/null
@@ -0,0 +1,116 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 09/16/2004 *
+ * ===============                              Last change: 11/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : session.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : Session management                               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sitzungs-Management                              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Check if view.php nor click.php was called
+// If not set variables to default
+if (empty($CLICK)) $CLICK = 0;
+if (empty($VIEW))  $VIEW  = 0;
+
+// Skip updating of cookies when viewing a banner
+if (($VIEW == 1) && ($_SERVER['PHP_SELF'])) return;
+
+// Session management initalization
+if (empty($PHPSESSID))
+{
+       // This fixes some strange session cookie problems
+       if (empty($_COOKIE['PHPSESSID'])) unset($_COOKIE['PHPSESSID']);
+       @session_start();
+       $PHPSESSID = @session_id();
+}
+ else
+{
+       @session_id($PHPSESSID);
+       @session_start();
+}
+
+// Store PHPSESSID
+@setcookie("PHPSESSID", $PHPSESSID, (time() + $CONFIG['online_timeout']), COOKIE_PATH);
+
+// Store language code in cookie
+@setcookie("mx_lang", $mx_lang, (time() + $CONFIG['online_timeout']), COOKIE_PATH);
+
+// Check if refid is set
+if ((!empty($_GET['user'])) && ($CLICK == 1) && ($_SERVER['PHP_SELF'] == "click.php")) {
+       // The variable user comes from the click-counter script click.php and we only accept this here
+       $GLOBALS['refid'] = bigintval($_GET['user']);
+}
+
+if (!empty($_POST['refid'])) {
+       // Get referral id from variable refid (so I hope this makes my script more compatible to other scripts)
+       $GLOBALS['refid'] = SQL_ESCAPE(strip_tags($_POST['refid']));
+} elseif (!empty($_GET['refid'])) {
+       // Get referral id from variable refid (so I hope this makes my script more compatible to other scripts)
+       $GLOBALS['refid'] = SQL_ESCAPE(strip_tags($_GET['refid']));
+} elseif (!empty($_GET['ref'])) {
+       // Set refid=ref (the referral link uses such variable)
+       $GLOBALS['refid'] = SQL_ESCAPE(strip_tags($_GET['ref']));
+} elseif (!empty($_COOKIE['refid'])) {
+       // Simply reset cookie
+       $GLOBALS['refid'] = bigintval($_COOKIE['refid']);
+} elseif (GET_EXT_VERSION("sql_patches") != "") {
+       // Set default refid as refid in URL
+       $GLOBALS['refid'] = $CONFIG['def_refid'];
+} else {
+       // No default ID when sql_patches is not installed
+       $GLOBALS['refid'] = 0;
+}
+
+// Set cookie when default refid > 0
+if (empty($_COOKIE['refid']) || (!empty($GLOBALS['refid'])) || (($_COOKIE['refid'] == "0") && ($CONFIG['def_refid'] > 0))) {
+       // Set cookie
+       @setcookie("refid", $GLOBALS['refid'], (time() + $CONFIG['online_timeout']), COOKIE_PATH);
+}
+
+// Test cookies if index.php or modules.php is loaded
+if ((basename($_SERVER['PHP_SELF']) == "index.php") || (basename($_SERVER['PHP_SELF']) == "modules.php") || (mxchange_installing))
+{
+       if (count($_COOKIE) > 0)
+       {
+               // Cookies accepted!
+               define('__COOKIES', true);
+       }
+        else
+       {
+               // Cookies rejected!
+               define('__COOKIES', false);
+       }
+}
+//
+?>
diff --git a/0.2.1/inc/sql_error.php b/0.2.1/inc/sql_error.php
new file mode 100644 (file)
index 0000000..fa001a2
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 10/15/2003 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : sql_error.php                                    *
+ * -------------------------------------------------------------------- *
+ * Short description : Outputs sql errors                               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Gibt MySQL-Fehler aus                            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+?>
diff --git a/0.2.1/inc/stats_bonus.php b/0.2.1/inc/stats_bonus.php
new file mode 100644 (file)
index 0000000..f7d664e
--- /dev/null
@@ -0,0 +1,84 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 03/18/2005 *
+ * ===============                              Last change: 03/18/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : stats_bonus.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Check for 100% clickrate order                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Nach Mailbestaetigungen mit 100% Klickrate s.    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Check for 100% klickrate mails
+$result_bonus = SQL_QUERY("SELECT id, userid, subject, timestamp_ordered, clicks, url
+FROM "._MYSQL_PREFIX."_user_stats
+WHERE max_rec=clicks AND clicks>0 AND bonus_stats='N'
+ORDER BY userid", __FILE__, __LINE__);
+
+if (SQL_NUMROWS($result_bonus) > 0)
+{
+       // Remember stats bonus in constant
+       define('__STATS_BONUS', TRANSLATE_COMMA($CONFIG['bonus_stats']));
+
+       // We found some mail orders...
+       while(list($id, $uid, $subj, $stamp, $clicks, $url) = SQL_FETCHROW($result_bonus))
+       {
+               // Add points
+               $result_points = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET bonus_stats=bonus_stats+%s WHERE userid=%d LIMIT 1",
+                array($CONFIG['bonus_stats'], bigintval($uid)), __FILE__, __LINE__);
+
+               // Prepare array
+               $content = array(
+                       'subject'   => $subj,
+                       'timestamp' => MAKE_DATETIME($stamp, "2"),
+                       'clicks'    => $clicks,
+                       'url'       => $url
+               );
+
+               // Load email template and send email
+               $msg = LOAD_EMAIL_TEMPLATE("member_stats_bonus", $content, bigintval($uid));
+               SEND_EMAIL($uid, BONUS_MEMBER_STATS_SUBJECT, $msg);
+
+               // Update database
+               $result_update =  SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_stats SET bonus_stats='Y' WHERE id=%d LIMIT 1",
+                array(bigintval($id)), __FILE__, __LINE__);
+       }
+
+       // Handle bonus points
+       BONUS_POINTS_HANDLER($CONFIG['bonus_stats']);
+}
+
+// Free memory
+SQL_FREERESULT($result_bonus);
+
+//
+?>
diff --git a/0.2.1/inc/stylesheet.php b/0.2.1/inc/stylesheet.php
new file mode 100644 (file)
index 0000000..b63e94d
--- /dev/null
@@ -0,0 +1,109 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/29/2003 *
+ * ===============                              Last change: 12/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : stylesheet.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Stylesheets are stored here                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Style-Sheets werden hier abgelegt                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Default styles
+$STYLES = array(
+               "general.css",
+);
+
+// Add stylesheet for installation
+if ((basename($_SERVER['PHP_SELF']) == "install.php") || (!mxchange_installed) || (isset($_GET['installing']))) $STYLES[] = "install.css";
+
+// When no CSS output-mode is set, set it to file-output
+if (empty($CONFIG['css_php'])) $CONFIG['css_php'] = "FILE";
+
+// Output CSS files or content or link to css.php ?
+if (($CSS == "1") || ($CONFIG['css_php'] == "DIRECT"))
+{
+       // Load CSS files
+       if (is_array($EXT_CSS_FILES))
+       {
+               // Load extension's CSS files
+               foreach ($EXT_CSS_FILES as $value) $STYLES[] = $value;
+       }
+
+       // Create missing configuration file
+       if (!function_exists('GET_CURR_THEME')) {
+               // Dummy for e.g. down database links
+               function GET_CURR_THEME () {
+                       return "default";
+               }
+       }
+
+       // Output inclusion lines
+       foreach ($STYLES as $value)
+       {
+               // Only include found CSS files (to reduce 404 requests)
+               $BASE = PATH."theme/".GET_CURR_THEME()."/css/";
+               $file = $BASE.$value;
+               // Do include only existing files and whose are not empty
+               if ((file_exists($file)) && (filesize($file) > 0))
+               {
+                       switch ($CONFIG['css_php'])
+                       {
+                       case "DIRECT":
+                               OUTPUT_HTML ("<LINK rel=\"stylesheet\" type=\"text/css\" href=\"".URL."/".$BASE."\">");
+                               break;
+
+                       case "FILE":
+                               $load = implode("", file($file));
+                               OUTPUT_HTML ($load);
+                               break;
+                       }
+               }
+       }
+}
+ else
+{
+       // Now we load all CSS files from css.php!
+       OUTPUT_HTML ("<LINK rel=\"stylesheet\" type=\"text/css\" href=\"".URL."/css.php", false);
+       if (mxchange_installing)
+       {
+               // Default theme first
+               $NEW_THEME = "default";
+               if (!empty($_GET['theme'])) $NEW_THEME = $_GET['theme'];
+               if (!empty($_POST['theme'])) $NEW_THEME = $_POST['theme'];
+               OUTPUT_HTML ("?theme=".$NEW_THEME."&amp;installing=1", false);
+       }
+       OUTPUT_HTML ("\">");
+}
+
+//
+?>
diff --git a/0.2.1/inc/theme-manager.php b/0.2.1/inc/theme-manager.php
new file mode 100644 (file)
index 0000000..8e573ff
--- /dev/null
@@ -0,0 +1,172 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/03/2004 *
+ * ===============                              Last change: 12/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : theme-manager.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Theme manager                                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Themen-Manager                                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+function GET_CURR_THEME()
+{
+       global $_COOKIE, $INC_POOL, $CONFIG, $_GET, $_POST, $CSS;
+       // The default theme is 'default'... ;-)
+       $ret = "default";
+
+       // Load default theme if not empty from configuration
+       if (!empty($CONFIG['default_theme'])) $ret = $CONFIG['default_theme'];
+
+       if (empty($_COOKIE['mxchange_theme']))
+       {
+               // Set default theme
+               @setcookie("mxchange_theme", $ret, (time() + 60*60*24*365), COOKIE_PATH);
+       }
+        elseif ((!empty($_COOKIE['mxchange_theme'])) && (GET_EXT_VERSION("sql_patches") >= "0.1.4"))
+       {
+               // Get theme from cookie
+               $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' LIMIT 1", array($_COOKIE['mxchange_theme']), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Design is valid!
+                       $ret = $_COOKIE['mxchange_theme'];
+               }
+
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+        elseif ((!mxchange_installed) && ((mxchange_installing) || ($CSS == true)) && ((!empty($_GET['theme'])) || (!empty($_POST['theme']))))
+       {
+               // Installation mode active
+               if ((!empty($_GET['theme'])) && (file_exists(PATH."theme/".$_GET['theme']."/theme.php")))
+               {
+                       // Set cookie from URL data
+                       @setcookie("mxchange_theme", $_GET['theme'], (time() + 60*60*24*365), COOKIE_PATH);
+                       $_COOKIE['mxchange_theme'] = $_GET['theme'];
+               }
+                elseif (file_exists(PATH."theme/".$_POST['theme']."/theme.php"))
+               {
+                       // Set cookie from posted data
+                       @setcookie("mxchange_theme", $_POST['theme'], (time() + 60*60*24*365), COOKIE_PATH);
+                       $_COOKIE['mxchange_theme'] = $_POST['theme'];
+               }
+
+               // Set return value
+               $ret = $_COOKIE['mxchange_theme'];
+       }
+        else
+       {
+               // Invalid design, reset cookie
+               @setcookie("mxchange_theme", $ret, (time() + 60*60*24*365), COOKIE_PATH);
+       }
+
+       // Add (maybe) found theme.php file to inclusion list
+       $theme = PATH."theme/".$ret."/theme.php";
+       if (@file_exists($theme)) $INC_POOL[] = $theme;
+
+       // Return theme value
+       return $ret;
+}
+
+function THEME_SELECTION_BOX($mod, $act, $wht, $result)
+{
+       // Construction URL
+       global $CurrTheme;
+       $FORM = URL."/modules.php?module=".$mod;
+       if (!empty($act)) $FORM .= "&amp;action=".$act;
+       if (!empty($wht))   $FORM .= "&amp;what=".$wht;
+       define('__FORM_VALUE', $FORM);
+
+       // Initialize array
+       $THEMES = array(
+               'theme_unix'   => array(), // Unix name from filesystem
+               'theme_name'   => array()  // Title
+       );
+
+       // Load all themes
+       while(list($theme) = SQL_FETCHROW($result))
+       {
+               // Load it's theme.php file
+               $INC = PATH."theme/".$theme."/theme.php";
+               if (file_exists($INC))
+               {
+                       // And save all data in array
+                       include($INC);
+                       $THEMES['theme_unix'][] = $theme;
+                       $THEMES['theme_name'][] = $THEME_NAME;
+               }
+       }
+
+       // Sort whole array by title
+       array_pk_sort($THEMES, array("theme_name"));
+
+       // Construct selection form for the box template
+       $OUT = "";
+       foreach ($THEMES['theme_unix'] as $key=>$theme)
+       {
+               $OUT .= "  <OPTION value=\"".$theme."\"";
+               if ($theme == $CurrTheme) $OUT .= " selected=\"selected\"";
+               $OUT .= ">".$THEMES['theme_name'][$key]."</OPTION>\n";
+       }
+
+       // Return generated selection
+       define('__THEME_SELECTION_OPTIONS', $OUT);
+       $OUT = LOAD_TEMPLATE("theme_select_form", true);
+       return $OUT;
+}
+
+// Initialize variables
+$CurrTheme = GET_CURR_THEME();
+if (empty($_POST['new_theme'])) $_POST['new_theme'] = "";
+
+// Check if new theme is selcted
+if ((!empty($_POST['new_theme'])) && ($_POST['new_theme'] != $CurrTheme))
+{
+       // Set new theme for guests
+       $NewTheme = $_POST['new_theme'];
+
+       // Change to new theme
+       @setcookie("mxchange_theme", $NewTheme, (time() + 60*60*24*365), COOKIE_PATH);
+
+       // Remove current from array and set new
+       $theme = PATH."theme/".$CurrTheme."/theme.php";
+       unset($INC_POOL[array_search($theme, $INC_POOL)]);
+       $INC_POOL[] = PATH."theme/".$NewTheme."/theme.php";
+}
+
+// Remove variable again
+unset($_POST['new_theme']);
+
+//
+?>
diff --git a/0.2.1/index.php b/0.2.1/index.php
new file mode 100644 (file)
index 0000000..9f7f464
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 11/23/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : index.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Index page. A simple redirection to modules.php  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Index-Seite. Eine simple Weiterleitung auf die   *
+ *           modules.php                                                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "index";
+
+// Load config.php
+require ("inc/config.php");
+
+// Is the script installed?
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Header
+       require(PATH."inc/header.php");
+
+       // Check for cookies
+       if (empty($_COOKIE['visited']) || ($CONFIG['index_delay'] == 0) || ($CONFIG['index_cookie'] == 0))
+       {
+               if ($CONFIG['index_cookie'] > 0)
+               {
+                       // Set cookie and remeber it for specified time
+                       @setcookie("visited", "true", (time() + $CONFIG['index_cookie']), COOKIE_PATH);
+               }
+                elseif (!empty($_COOKIE['visited']))
+               {
+                       // Remove cookie when admin set 0 in setup
+                       @setcookie("visited", "", (time() - 3600), COOKIE_PATH);
+               }
+
+               // Template laden
+               LOAD_TEMPLATE("index", false, ADD_URL_DATA(""));
+
+               // Shall I insert an automated forward?
+               if ($CONFIG['index_delay'] > 0)
+               {
+                       // This will be a JavaScript-redirect!
+                       define('__DELAY_VALUE', ($CONFIG['index_delay'] * 1000 + 500));
+                       define('__MOD_VALUE'  , ADD_URL_DATA("index"));
+                       LOAD_TEMPLATE("index_forward");
+               }
+       }
+        else
+       {
+               // Redirect to main page
+               LOAD_URL(URL."/modules.php?module=index");
+       }
+
+       // Footer
+       require(PATH."inc/footer.php");
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL("install.php");
+}
+// All done here...
+?>
diff --git a/0.2.1/install.php b/0.2.1/install.php
new file mode 100644 (file)
index 0000000..67092fc
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+/************************************************************************
+ * MXChange v0.1.0                                    Start: 08/25/2003 *
+ * ===============                              Last change: 04/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : install.php                                      *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ *          ------------------------------------------------            *
+ *         / PLEASE READ THIS!  /  BITTE LESEN SIE DIESES! /            *
+ *        -------------------------------------------------             *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : Installation script. Please delete this file     *
+ *           after successfully installation or ANYONE can re-setup     *
+ *           your mail exchange script!!!                               *
+ *                                                                      *
+ *           First of all setup the base URL.                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Installationsscript. Bitte loeschen Sie diese    *
+ *           Datei nach der fertiggestellten Installation oder JEDER    *
+ *           kann Ihr Mailtausch-Script neu einstellen!!!               *
+ *                                                                      *
+ *           Als erstes sollten Sie die Basis-URL einstellen.           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Tell every module / include file we are installing
+define ('mxchange_installing', true);
+
+// Load security system
+require ("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "install";
+
+// Load config file
+require ("inc/config.php");
+
+// Header
+require (PATH."inc/header.php");
+
+// Reload page to page=welcome when it is not specified
+if (!isset($_GET['page']))
+{
+       LOAD_URL(URL."/install.php?page=welcome");
+}
+
+// Already installed?
+if ((mxchange_installed) && (admin_registered)) {
+       // Add fatal message
+       ADD_FATAL(ALREADY_INSTALLED);
+}
+
+// Does something goes wrong?
+if ((sizeof($FATAL == 0)) && (empty($FATAL[0]))) {
+       // Add main installation table
+       LOAD_TEMPLATE("install_header");
+
+       // Here start's our installtion stuff
+       require_once (PATH."inc/install-inc.php");
+
+       // Close main installation table
+       LOAD_TEMPLATE("install_footer");
+}
+
+// Footer
+require (PATH."inc/footer.php");
+
+//
+?>
diff --git a/0.2.1/install/menu-de.sql b/0.2.1/install/menu-de.sql
new file mode 100644 (file)
index 0000000..15b8ef5
--- /dev/null
@@ -0,0 +1,117 @@
+INSERT INTO `mxchange_admin_menu` VALUES (1,'login','','Willkommen',0,'Eingangsseite zum Admin-Bereich');\r
+INSERT INTO `mxchange_admin_menu` VALUES (2,'logout','','Ausloggen',999,'Ausloggen aus dem Admin-Bereich. Dadurch wird Ihre Session gel&ouml;scht und Sie m&uuml;ssen sich erneut anmelden.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (4,'menu','adminedit','Vom Admin editieren',2,'Das Administrationsmen&uuml; mit neuen Men&uuml;s erweitern, bestehende &auml;ndern oder l&ouml;schen. <STRONG>Vorsicht!</STRONG> L&ouml;schen Sie nicht das Login-Men&uuml;!');\r
+INSERT INTO `mxchange_admin_menu` VALUES (3,'menu','','Men&uuml;-System',1,'Alle drei Men&uuml;-System bearbeiten (Admin-, Mitglied- und Gast-Men&uuml;)');\r
+INSERT INTO `mxchange_admin_menu` VALUES (5,'user','','Mitglieder-Management',3,'Mitglieder freischalten, sperren, Accounts editieren, Neuanmeldungen verwalten, {!POINTS!} gutschreiben und abziehen und und und...');\r
+INSERT INTO `mxchange_admin_menu` VALUES (6,'email','','Email-Management',4,'Gebuchte Mails umleiten, Details zu den Buchungen anzeigen, Emails freigeben, registrierte Email-Adress auf Verf&uuml;gbarkeit testen (Mass-Mailing!), Newsletter versenden, Email-Adressen sperren (Email-Backlist), gebuchte URLs sperren (URL-Blacklist)');\r
+INSERT INTO `mxchange_admin_menu` VALUES (7,'setup','','Einstellungen',5,'Interessen &auml;ndern, News schreiben, allgmeine Einstellungen (Auto-Versand usw.). Auto-Lock Funktion einrichten, manueller Lock des Versandes einrichten, Teile der Homepage sperren (wegen Wartungsarbeiten)');\r
+INSERT INTO `mxchange_admin_menu` VALUES (8,'misc','','Verschiedenes',6,'Verschiedene Einstellungen / Info-Seiten, die sonst nirgenswo reinpassten...');\r
+INSERT INTO `mxchange_admin_menu` VALUES (9,'menu','admin_add','Admin-Men&uuml; hinzuf&uuml;gen',3,'Weiteren Men&uuml;punkt zum Admin-Bereich hinzuf&uuml;gen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (10,'menu','guest_add','G&auml;ste-Men&uuml; hinzuf&uuml;gen',5,'F&uuml;gen Sie weitere Men&uuml;punkte dem G&auml;ste-Men&uuml; hinzu.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (12,'menu','memedit','Mitgliedsmen&uuml; editieren',6,'Mitgliedsmen&uuml; editieren oder l&ouml;schen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (11,'menu','guestedit','G&auml;ste-Men&uuml; editieren',4,'G&auml;ste-Men&uuml; editieren, l&ouml;schen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (13,'menu','mem_add','Mitgliedsmen&uuml; hinzuf&uuml;gen',7,'Weiteren Men&uuml;punkt zum Mitgliedsmen&uuml; hinzuf&uuml;gen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (14,'email','newsletter','Newsletter versenden',5,'Text- oder HTML-Newsletter verschicken.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (15,'email','email_stats','Email-Statistiken',5,'Schauen Sie sich detailierte Statistiken zu den bereits versanden Mails an.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (17,'email','edit_emails','Email-Daten &auml;ndern',5,'Hier k&ouml;nnen Sie u.a. die gebuchte URL der Emails um&auml;ndern, usw.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (18,'email','unlock_emails','Emails freigeben',5,'Geben Sie bei manuellem Versand gebuchte Mails hier frei.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (19,'email','email_details','Email-Details ansehen',5,'Sehen Sie sich jedes Details bereits gebuchter Mails an.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (20,'user','del_user','User l&ouml;schen',4,'L&ouml;schen Sie hier Benutzer, die gegen die AGBs mehrmals verstossen haben. Bitte seien Sie nett zu Ihren Mitgliedern und l&ouml;schen Sie nicht gleich.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (21,'user','chk_regs','Anmeldungen pr&uuml;fen\r\n',4,'Pr&uuml;fen Sie hier neue Anmeldungen zu Ihrem System. Hier k&ouml;nnen Sie im Falle einer Fehler-Mail den User gleich wieder l&ouml;schen!');\r
+INSERT INTO `mxchange_admin_menu` VALUES (22,'user','lock_user','User sperren / entsperren',4,'Sperren Sie User, die zu viele unbest&auml;tigte Mails haben oder gegen Ihre AGBs verstossen haben &uuml;ber diesen Men&uuml;punkt.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (23,'user','list_user','User auflisten',4,'Listen Sie alle User oder eingeschr&auml;nkt nach Suchkritieren Ihre Userdatenbank auf. Sie k&ouml;nen per Klick auf die Usernummer sich Details zum User ansehen.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (28,'setup','config_secure','Sicherheitseinstellungen',9,'Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (27,'setup','config_email','Versand, Empfang',8,'Hier k&ouml;nnen Sie die maximal empfangbaren Mails usw. einstellen.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (25,'setup','config_cats','Kategorien einrichten',7,'&Auml;ndern oder l&ouml;schen Sie bereits bestehende Kategorien oder f&uuml;gen Sie weitere hinzu.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (29,'setup','config_points','{!POINTS!}',10,'Stellen Sie hier die Willkommensgutschrift, Referral-Gutschrift (einmalige) usw. ein.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (30,'setup','config_reg','Anmeldeformular',8,'Stellen Sie ein, wie viel Kategorien der Gast bei der Anmeldung mindestens einstellen muss. Diese Einstellung gilt nachher auch im Mitgliedsbereich!');\r
+INSERT INTO `mxchange_admin_menu` VALUES (31,'stats','','Statistiken',6,'Sonstige Statistiken, die nirgenswo reinpassen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (32,'setup','refbanner','Referral-Banner',12,'F&uuml;gen Sie neue Banner hinzu, die dann die Mitglieder verlinken k&ouml;nnen, um neue Mitglieder zu werben. Oder editieren / l&ouml;schen Sie bestehende. Hier sehen Sie auch die Anzahl der Klicks auf den jeweiligen Banner!');\r
+INSERT INTO `mxchange_admin_menu` VALUES (33,'setup','payments','{!POINTS!}-Verg&uuml;tungen',11,'F&uuml;gen Sie neue {!POINTS!}-Verg&uuml;tungen hinzu oder &auml;ndern / l&ouml;schen Sie bestende.');\r
+\r
+INSERT INTO `mxchange_cats` VALUES (1,'Mix / Alles Senden --&gt; keine Erotik!','Y',0);\r
+INSERT INTO `mxchange_cats` VALUES (2,'Mix / Alles Senden --&gt; ohne PopUps, keine Erotik','Y',1);\r
+INSERT INTO `mxchange_cats` VALUES (3,'Traffic, Reflinks, Kostenloses, KEIN MLM!','Y',2);\r
+INSERT INTO `mxchange_cats` VALUES (4,'Geldverdienen, Beruf, Arbeit, KEIN MLM!','Y',3);\r
+INSERT INTO `mxchange_cats` VALUES (5,'Download, PC- Software, HP-Design','Y',4);\r
+INSERT INTO `mxchange_cats` VALUES (6,'Investment, Banken, B&ouml;rse, Versicherungen, KEIN MLM','Y',5);\r
+INSERT INTO `mxchange_cats` VALUES (7,'Politik, Wissenschaft','Y',6);\r
+INSERT INTO `mxchange_cats` VALUES (8,'Handy, SMS, ISDN, DSL,','Y',7);\r
+INSERT INTO `mxchange_cats` VALUES (9,'Elektronik, Technik, Server, PC-Hardware, Hosting','Y',8);\r
+INSERT INTO `mxchange_cats` VALUES (10,'Auto, Motorrad','Y',9);\r
+INSERT INTO `mxchange_cats` VALUES (11,'Reise,Touristik','Y',10);\r
+INSERT INTO `mxchange_cats` VALUES (12,'Kunst, Kultur, Bildung','Y',11);\r
+INSERT INTO `mxchange_cats` VALUES (13,'Gesundheit, Fitness, Sport, KEIN MLM!','Y',12);\r
+INSERT INTO `mxchange_cats` VALUES (14,'Lifestyle, Mode, Kosmetik, KEIN MLM!','Y',13);\r
+INSERT INTO `mxchange_cats` VALUES (15,'Auktionen, Shopping, Verkauf, KEIN MLM!','Y',14);\r
+INSERT INTO `mxchange_cats` VALUES (16,'Medien, Musik, Film, TV, Video & DVD','Y',15);\r
+INSERT INTO `mxchange_cats` VALUES (17,'Singles, Flirten, Partnerschaft','Y',16);\r
+INSERT INTO `mxchange_cats` VALUES (18,'Gewinnspiele, Wetten, Lotto, KEIN MLM!','Y',17);\r
+INSERT INTO `mxchange_cats` VALUES (19,'Haus, Garten, Freizeit, Hobbys','Y',18);\r
+INSERT INTO `mxchange_cats` VALUES (20,'Erotik --&gt; Keine Hardcore !','Y',19);\r
+INSERT INTO `mxchange_cats` VALUES (21,'Multi Level Marketing (alle Arten)','Y',20);\r
+INSERT INTO `mxchange_cats` VALUES (22,'Klammlose-Seiten','Y',21);\r
+\r
+INSERT INTO `mxchange_guest_menu` VALUES (1,'main','welcome','Willkommen',1,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (2,'main','','Hauptmen&uuml;',0,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (3,'members','register','Anmeldung',2,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (4,'members','confirm','Best&auml;tigungslink',3,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (5,'members','','Mitglieder',1,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (6,'members','login','Einloggen',3,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (7,'main','impressum','Impressum',5,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (8,'main','agb','AGBs',4,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (9,'main','mediadata','Mediendaten',3,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (10,'main','infos','Infos',2,'Y','N',0);\r
+\r
+INSERT INTO `mxchange_max_receive` VALUES (1,0,'Urlaub');\r
+INSERT INTO `mxchange_max_receive` VALUES (2,50,'Bonus m&ouml;glich!');\r
+INSERT INTO `mxchange_max_receive` VALUES (3,90,'Bonus m&ouml;glich!');\r
+INSERT INTO `mxchange_max_receive` VALUES (4,5,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (5,10,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (6,15,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (7,20,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (8,25,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (9,30,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (10,35,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (11,40,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (12,45,'');\r
+\r
+INSERT INTO `mxchange_member_menu` VALUES (2,'main','','Mitgliedsmen&uuml;',0,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (3,'main','welcome','Willkommen!',1,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (4,'logout','logout','Ausloggen',999,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (5,'main','mydata','Profildaten &auml;ndern',2,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (6,'logout','','Ausloggen',1,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (7,'main','points','{!POINTS!}-Guthaben',4,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (8,'main','categories','Kategorien ausw&auml;hlen',3,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (9,'main','reflinks','Referral-Links',6,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (11,'main','order','Mailbuchung',8,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (12,'main','unconfirmed','Unbest&auml;tigte Emails',5,'Y','N','',0);\r
+\r
+INSERT INTO `mxchange_payments` VALUES (1,10,2.000,'Klick-Mail 10 Sek.',1.000);\r
+INSERT INTO `mxchange_payments` VALUES (2,20,10.000,'Klick-Mail 20 Sek.',9.000);\r
+INSERT INTO `mxchange_payments` VALUES (3,30,30.000,'Klick-Mail 30 Sek.',29.000);\r
+INSERT INTO `mxchange_payments` VALUES (4,40,40.000,'Klick-Mail 40 Sek.',39.000);\r
+INSERT INTO `mxchange_payments` VALUES (5,50,50.000,'Klick-Mail 50 Sek.',49.000);\r
+INSERT INTO `mxchange_admin_menu` VALUES (NULL,'user','edit_user','Account editieren',4,'Daten eines Mitglieder-Accountes &auml;ndern.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (NULL,'stats','logs','Aufruflogb&uuml;cher',8,'Verwalten Sie Ihre Aufruflogb&uuml;cher mit diesem Admin-Bereich! (Derzeit nur Download!)');\r
+INSERT INTO `mxchange_admin_menu` VALUES (NULL,'stats','usage','Aufrufstatistik',9,'Erkennt automatisch Ihre Aufrufstatisiken und bindet diese in das Admin-Interface ein. (Derzeit nur Webalizer!)');\r
+\r
+INSERT INTO `mxchange_member_menu` VALUES (NULL, 'main', 'stats', 'Statistiken', 9, 'Y', 'N', '', 0);\r
+\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('email', 'email_archiv', 'E-Mail Archiv', 'Sehen Sie sich hier bereits gesendete Mails an.', '6');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('user', 'list_links', 'Unbest&auml;tigte Mails', 'Mit diesem Men&uuml;punkt k&ouml;nnen Sie die vom Mitglied nicht best&auml;tigten Mails anzeigen.', '8');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('user', 'list_refs', 'Referrals anzeigen', 'Mit diesem Men&uuml;punkt k&ouml;nnen Sie die generierten Referrals eines Mitgliedes auflisten.', '7');\r
+\r
+INSERT INTO `mxchange_guest_menu` (action, what, title, sort, visible, locked) VALUES('main', 'stats', 'Statistiken', '7', 'Y', 'N');\r
+INSERT INTO `mxchange_guest_menu` (action, what, title, sort, visible, locked) VALUES('online', '', 'Jetzt Online', '2', 'Y', 'N');\r
+\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('email', 'del_email', 'E-Mail l&ouml;schen', 'L&ouml;schen Sie hierr&uuml;ber E-Mails (sowohl Bonus- als auch Normal-Mails) aus Ihrem Mailtausch-System. <STRONG>Nur bei Normal-Mails:</STRONG> {!POINTS!} aus den unbest&auml;tigten Mails werden dem Werber wieder verg&uuml;tet.', '7');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('user', 'add_points', '{!POINTS!} gutschreiben', 'Buchen Sie einem Mitglied direkt {!POINTS!} auf. Sie k&ouml;nnen dazu auch einen Kommentar mitsenden.', '5');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('user', 'list_cats', 'Kategorien anzeigen', 'Listet die ausgew&auml;hlten Kategorien eines Mitgliedes auf.', '9');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('setup', 'config_other', 'Sonstige Einstellungen', 'Sonstige Einstellungen an Ihrem Mailtausch.', '13');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('misc', 'updates', 'Updates pr&uuml;fen', 'Pr&uuml;ft, ob eine neue Version oder ein Patch auf dem Server exisitiert. Sie m&uuml;ssen dann die Patches/Updates selber herunterladen und einspielen. Dabei werden keine Daten von Ihrer Installation an uns gesendet!', '8');\r
+INSERT INTO `mxchange_member_menu` (action, what, title, visible, locked, sort) VALUES('main', 'support', 'Support ', 'Y', 'N', '10');\r
+INSERT INTO `mxchange_member_menu` (action, what, title, visible, locked, sort) VALUES('logout', 'guest', 'Zum Gastmen&uuml;', '', 'N', '1000');\r
+INSERT INTO `mxchange_guest_menu`  (action, what, title, sort, visible, locked) VALUES('admin', '', 'Administrative Links', '3', 'N', 'N');\r
+INSERT INTO `mxchange_guest_menu`  (action, what, title, sort, visible, locked) VALUES('admin', 'admin', 'Zum Admin-Bereich', '4', 'N', 'N');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('misc', 'extensions', 'Erweiterungen', 'Erweiterungen installieren, updaten, sperren, l&ouml;schen usw.', '8');\r
diff --git a/0.2.1/install/menu-en.sql b/0.2.1/install/menu-en.sql
new file mode 100644 (file)
index 0000000..15b8ef5
--- /dev/null
@@ -0,0 +1,117 @@
+INSERT INTO `mxchange_admin_menu` VALUES (1,'login','','Willkommen',0,'Eingangsseite zum Admin-Bereich');\r
+INSERT INTO `mxchange_admin_menu` VALUES (2,'logout','','Ausloggen',999,'Ausloggen aus dem Admin-Bereich. Dadurch wird Ihre Session gel&ouml;scht und Sie m&uuml;ssen sich erneut anmelden.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (4,'menu','adminedit','Vom Admin editieren',2,'Das Administrationsmen&uuml; mit neuen Men&uuml;s erweitern, bestehende &auml;ndern oder l&ouml;schen. <STRONG>Vorsicht!</STRONG> L&ouml;schen Sie nicht das Login-Men&uuml;!');\r
+INSERT INTO `mxchange_admin_menu` VALUES (3,'menu','','Men&uuml;-System',1,'Alle drei Men&uuml;-System bearbeiten (Admin-, Mitglied- und Gast-Men&uuml;)');\r
+INSERT INTO `mxchange_admin_menu` VALUES (5,'user','','Mitglieder-Management',3,'Mitglieder freischalten, sperren, Accounts editieren, Neuanmeldungen verwalten, {!POINTS!} gutschreiben und abziehen und und und...');\r
+INSERT INTO `mxchange_admin_menu` VALUES (6,'email','','Email-Management',4,'Gebuchte Mails umleiten, Details zu den Buchungen anzeigen, Emails freigeben, registrierte Email-Adress auf Verf&uuml;gbarkeit testen (Mass-Mailing!), Newsletter versenden, Email-Adressen sperren (Email-Backlist), gebuchte URLs sperren (URL-Blacklist)');\r
+INSERT INTO `mxchange_admin_menu` VALUES (7,'setup','','Einstellungen',5,'Interessen &auml;ndern, News schreiben, allgmeine Einstellungen (Auto-Versand usw.). Auto-Lock Funktion einrichten, manueller Lock des Versandes einrichten, Teile der Homepage sperren (wegen Wartungsarbeiten)');\r
+INSERT INTO `mxchange_admin_menu` VALUES (8,'misc','','Verschiedenes',6,'Verschiedene Einstellungen / Info-Seiten, die sonst nirgenswo reinpassten...');\r
+INSERT INTO `mxchange_admin_menu` VALUES (9,'menu','admin_add','Admin-Men&uuml; hinzuf&uuml;gen',3,'Weiteren Men&uuml;punkt zum Admin-Bereich hinzuf&uuml;gen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (10,'menu','guest_add','G&auml;ste-Men&uuml; hinzuf&uuml;gen',5,'F&uuml;gen Sie weitere Men&uuml;punkte dem G&auml;ste-Men&uuml; hinzu.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (12,'menu','memedit','Mitgliedsmen&uuml; editieren',6,'Mitgliedsmen&uuml; editieren oder l&ouml;schen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (11,'menu','guestedit','G&auml;ste-Men&uuml; editieren',4,'G&auml;ste-Men&uuml; editieren, l&ouml;schen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (13,'menu','mem_add','Mitgliedsmen&uuml; hinzuf&uuml;gen',7,'Weiteren Men&uuml;punkt zum Mitgliedsmen&uuml; hinzuf&uuml;gen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (14,'email','newsletter','Newsletter versenden',5,'Text- oder HTML-Newsletter verschicken.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (15,'email','email_stats','Email-Statistiken',5,'Schauen Sie sich detailierte Statistiken zu den bereits versanden Mails an.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (17,'email','edit_emails','Email-Daten &auml;ndern',5,'Hier k&ouml;nnen Sie u.a. die gebuchte URL der Emails um&auml;ndern, usw.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (18,'email','unlock_emails','Emails freigeben',5,'Geben Sie bei manuellem Versand gebuchte Mails hier frei.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (19,'email','email_details','Email-Details ansehen',5,'Sehen Sie sich jedes Details bereits gebuchter Mails an.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (20,'user','del_user','User l&ouml;schen',4,'L&ouml;schen Sie hier Benutzer, die gegen die AGBs mehrmals verstossen haben. Bitte seien Sie nett zu Ihren Mitgliedern und l&ouml;schen Sie nicht gleich.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (21,'user','chk_regs','Anmeldungen pr&uuml;fen\r\n',4,'Pr&uuml;fen Sie hier neue Anmeldungen zu Ihrem System. Hier k&ouml;nnen Sie im Falle einer Fehler-Mail den User gleich wieder l&ouml;schen!');\r
+INSERT INTO `mxchange_admin_menu` VALUES (22,'user','lock_user','User sperren / entsperren',4,'Sperren Sie User, die zu viele unbest&auml;tigte Mails haben oder gegen Ihre AGBs verstossen haben &uuml;ber diesen Men&uuml;punkt.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (23,'user','list_user','User auflisten',4,'Listen Sie alle User oder eingeschr&auml;nkt nach Suchkritieren Ihre Userdatenbank auf. Sie k&ouml;nen per Klick auf die Usernummer sich Details zum User ansehen.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (28,'setup','config_secure','Sicherheitseinstellungen',9,'Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (27,'setup','config_email','Versand, Empfang',8,'Hier k&ouml;nnen Sie die maximal empfangbaren Mails usw. einstellen.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (25,'setup','config_cats','Kategorien einrichten',7,'&Auml;ndern oder l&ouml;schen Sie bereits bestehende Kategorien oder f&uuml;gen Sie weitere hinzu.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (29,'setup','config_points','{!POINTS!}',10,'Stellen Sie hier die Willkommensgutschrift, Referral-Gutschrift (einmalige) usw. ein.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (30,'setup','config_reg','Anmeldeformular',8,'Stellen Sie ein, wie viel Kategorien der Gast bei der Anmeldung mindestens einstellen muss. Diese Einstellung gilt nachher auch im Mitgliedsbereich!');\r
+INSERT INTO `mxchange_admin_menu` VALUES (31,'stats','','Statistiken',6,'Sonstige Statistiken, die nirgenswo reinpassen');\r
+INSERT INTO `mxchange_admin_menu` VALUES (32,'setup','refbanner','Referral-Banner',12,'F&uuml;gen Sie neue Banner hinzu, die dann die Mitglieder verlinken k&ouml;nnen, um neue Mitglieder zu werben. Oder editieren / l&ouml;schen Sie bestehende. Hier sehen Sie auch die Anzahl der Klicks auf den jeweiligen Banner!');\r
+INSERT INTO `mxchange_admin_menu` VALUES (33,'setup','payments','{!POINTS!}-Verg&uuml;tungen',11,'F&uuml;gen Sie neue {!POINTS!}-Verg&uuml;tungen hinzu oder &auml;ndern / l&ouml;schen Sie bestende.');\r
+\r
+INSERT INTO `mxchange_cats` VALUES (1,'Mix / Alles Senden --&gt; keine Erotik!','Y',0);\r
+INSERT INTO `mxchange_cats` VALUES (2,'Mix / Alles Senden --&gt; ohne PopUps, keine Erotik','Y',1);\r
+INSERT INTO `mxchange_cats` VALUES (3,'Traffic, Reflinks, Kostenloses, KEIN MLM!','Y',2);\r
+INSERT INTO `mxchange_cats` VALUES (4,'Geldverdienen, Beruf, Arbeit, KEIN MLM!','Y',3);\r
+INSERT INTO `mxchange_cats` VALUES (5,'Download, PC- Software, HP-Design','Y',4);\r
+INSERT INTO `mxchange_cats` VALUES (6,'Investment, Banken, B&ouml;rse, Versicherungen, KEIN MLM','Y',5);\r
+INSERT INTO `mxchange_cats` VALUES (7,'Politik, Wissenschaft','Y',6);\r
+INSERT INTO `mxchange_cats` VALUES (8,'Handy, SMS, ISDN, DSL,','Y',7);\r
+INSERT INTO `mxchange_cats` VALUES (9,'Elektronik, Technik, Server, PC-Hardware, Hosting','Y',8);\r
+INSERT INTO `mxchange_cats` VALUES (10,'Auto, Motorrad','Y',9);\r
+INSERT INTO `mxchange_cats` VALUES (11,'Reise,Touristik','Y',10);\r
+INSERT INTO `mxchange_cats` VALUES (12,'Kunst, Kultur, Bildung','Y',11);\r
+INSERT INTO `mxchange_cats` VALUES (13,'Gesundheit, Fitness, Sport, KEIN MLM!','Y',12);\r
+INSERT INTO `mxchange_cats` VALUES (14,'Lifestyle, Mode, Kosmetik, KEIN MLM!','Y',13);\r
+INSERT INTO `mxchange_cats` VALUES (15,'Auktionen, Shopping, Verkauf, KEIN MLM!','Y',14);\r
+INSERT INTO `mxchange_cats` VALUES (16,'Medien, Musik, Film, TV, Video & DVD','Y',15);\r
+INSERT INTO `mxchange_cats` VALUES (17,'Singles, Flirten, Partnerschaft','Y',16);\r
+INSERT INTO `mxchange_cats` VALUES (18,'Gewinnspiele, Wetten, Lotto, KEIN MLM!','Y',17);\r
+INSERT INTO `mxchange_cats` VALUES (19,'Haus, Garten, Freizeit, Hobbys','Y',18);\r
+INSERT INTO `mxchange_cats` VALUES (20,'Erotik --&gt; Keine Hardcore !','Y',19);\r
+INSERT INTO `mxchange_cats` VALUES (21,'Multi Level Marketing (alle Arten)','Y',20);\r
+INSERT INTO `mxchange_cats` VALUES (22,'Klammlose-Seiten','Y',21);\r
+\r
+INSERT INTO `mxchange_guest_menu` VALUES (1,'main','welcome','Willkommen',1,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (2,'main','','Hauptmen&uuml;',0,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (3,'members','register','Anmeldung',2,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (4,'members','confirm','Best&auml;tigungslink',3,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (5,'members','','Mitglieder',1,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (6,'members','login','Einloggen',3,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (7,'main','impressum','Impressum',5,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (8,'main','agb','AGBs',4,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (9,'main','mediadata','Mediendaten',3,'Y','N',0);\r
+INSERT INTO `mxchange_guest_menu` VALUES (10,'main','infos','Infos',2,'Y','N',0);\r
+\r
+INSERT INTO `mxchange_max_receive` VALUES (1,0,'Urlaub');\r
+INSERT INTO `mxchange_max_receive` VALUES (2,50,'Bonus m&ouml;glich!');\r
+INSERT INTO `mxchange_max_receive` VALUES (3,90,'Bonus m&ouml;glich!');\r
+INSERT INTO `mxchange_max_receive` VALUES (4,5,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (5,10,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (6,15,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (7,20,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (8,25,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (9,30,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (10,35,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (11,40,'');\r
+INSERT INTO `mxchange_max_receive` VALUES (12,45,'');\r
+\r
+INSERT INTO `mxchange_member_menu` VALUES (2,'main','','Mitgliedsmen&uuml;',0,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (3,'main','welcome','Willkommen!',1,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (4,'logout','logout','Ausloggen',999,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (5,'main','mydata','Profildaten &auml;ndern',2,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (6,'logout','','Ausloggen',1,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (7,'main','points','{!POINTS!}-Guthaben',4,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (8,'main','categories','Kategorien ausw&auml;hlen',3,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (9,'main','reflinks','Referral-Links',6,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (11,'main','order','Mailbuchung',8,'Y','N','',0);\r
+INSERT INTO `mxchange_member_menu` VALUES (12,'main','unconfirmed','Unbest&auml;tigte Emails',5,'Y','N','',0);\r
+\r
+INSERT INTO `mxchange_payments` VALUES (1,10,2.000,'Klick-Mail 10 Sek.',1.000);\r
+INSERT INTO `mxchange_payments` VALUES (2,20,10.000,'Klick-Mail 20 Sek.',9.000);\r
+INSERT INTO `mxchange_payments` VALUES (3,30,30.000,'Klick-Mail 30 Sek.',29.000);\r
+INSERT INTO `mxchange_payments` VALUES (4,40,40.000,'Klick-Mail 40 Sek.',39.000);\r
+INSERT INTO `mxchange_payments` VALUES (5,50,50.000,'Klick-Mail 50 Sek.',49.000);\r
+INSERT INTO `mxchange_admin_menu` VALUES (NULL,'user','edit_user','Account editieren',4,'Daten eines Mitglieder-Accountes &auml;ndern.');\r
+INSERT INTO `mxchange_admin_menu` VALUES (NULL,'stats','logs','Aufruflogb&uuml;cher',8,'Verwalten Sie Ihre Aufruflogb&uuml;cher mit diesem Admin-Bereich! (Derzeit nur Download!)');\r
+INSERT INTO `mxchange_admin_menu` VALUES (NULL,'stats','usage','Aufrufstatistik',9,'Erkennt automatisch Ihre Aufrufstatisiken und bindet diese in das Admin-Interface ein. (Derzeit nur Webalizer!)');\r
+\r
+INSERT INTO `mxchange_member_menu` VALUES (NULL, 'main', 'stats', 'Statistiken', 9, 'Y', 'N', '', 0);\r
+\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('email', 'email_archiv', 'E-Mail Archiv', 'Sehen Sie sich hier bereits gesendete Mails an.', '6');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('user', 'list_links', 'Unbest&auml;tigte Mails', 'Mit diesem Men&uuml;punkt k&ouml;nnen Sie die vom Mitglied nicht best&auml;tigten Mails anzeigen.', '8');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('user', 'list_refs', 'Referrals anzeigen', 'Mit diesem Men&uuml;punkt k&ouml;nnen Sie die generierten Referrals eines Mitgliedes auflisten.', '7');\r
+\r
+INSERT INTO `mxchange_guest_menu` (action, what, title, sort, visible, locked) VALUES('main', 'stats', 'Statistiken', '7', 'Y', 'N');\r
+INSERT INTO `mxchange_guest_menu` (action, what, title, sort, visible, locked) VALUES('online', '', 'Jetzt Online', '2', 'Y', 'N');\r
+\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('email', 'del_email', 'E-Mail l&ouml;schen', 'L&ouml;schen Sie hierr&uuml;ber E-Mails (sowohl Bonus- als auch Normal-Mails) aus Ihrem Mailtausch-System. <STRONG>Nur bei Normal-Mails:</STRONG> {!POINTS!} aus den unbest&auml;tigten Mails werden dem Werber wieder verg&uuml;tet.', '7');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('user', 'add_points', '{!POINTS!} gutschreiben', 'Buchen Sie einem Mitglied direkt {!POINTS!} auf. Sie k&ouml;nnen dazu auch einen Kommentar mitsenden.', '5');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('user', 'list_cats', 'Kategorien anzeigen', 'Listet die ausgew&auml;hlten Kategorien eines Mitgliedes auf.', '9');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('setup', 'config_other', 'Sonstige Einstellungen', 'Sonstige Einstellungen an Ihrem Mailtausch.', '13');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('misc', 'updates', 'Updates pr&uuml;fen', 'Pr&uuml;ft, ob eine neue Version oder ein Patch auf dem Server exisitiert. Sie m&uuml;ssen dann die Patches/Updates selber herunterladen und einspielen. Dabei werden keine Daten von Ihrer Installation an uns gesendet!', '8');\r
+INSERT INTO `mxchange_member_menu` (action, what, title, visible, locked, sort) VALUES('main', 'support', 'Support ', 'Y', 'N', '10');\r
+INSERT INTO `mxchange_member_menu` (action, what, title, visible, locked, sort) VALUES('logout', 'guest', 'Zum Gastmen&uuml;', '', 'N', '1000');\r
+INSERT INTO `mxchange_guest_menu`  (action, what, title, sort, visible, locked) VALUES('admin', '', 'Administrative Links', '3', 'N', 'N');\r
+INSERT INTO `mxchange_guest_menu`  (action, what, title, sort, visible, locked) VALUES('admin', 'admin', 'Zum Admin-Bereich', '4', 'N', 'N');\r
+INSERT INTO `mxchange_admin_menu` (action, what, title, descr, sort) VALUES('misc', 'extensions', 'Erweiterungen', 'Erweiterungen installieren, updaten, sperren, l&ouml;schen usw.', '8');\r
diff --git a/0.2.1/install/tables.sql b/0.2.1/install/tables.sql
new file mode 100644 (file)
index 0000000..c231e0f
--- /dev/null
@@ -0,0 +1,350 @@
+DROP TABLE IF EXISTS `mxchange_admin_menu`;\r
+CREATE TABLE `mxchange_admin_menu` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `action` varchar(255) NOT NULL default '',\r
+  `what` varchar(255) NOT NULL default '',\r
+  `title` varchar(50) NOT NULL default '',\r
+  `sort` bigint(20) NOT NULL default '0',\r
+  `descr` blob NOT NULL,\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_admins`;\r
+CREATE TABLE `mxchange_admins` (\r
+  `id` bigint(20) NOT NULL auto_increment,\r
+  `login` varchar(100) NOT NULL default '',\r
+  `password` varchar(40) NOT NULL default '',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_cats`;\r
+CREATE TABLE `mxchange_cats` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `cat` varchar(255) NOT NULL default '',\r
+  `visible` enum('Y','N') NOT NULL default 'Y',\r
+  `sort` bigint(20) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_config`;\r
+CREATE TABLE `mxchange_config` (\r
+  `config` tinyint(1) NOT NULL default '0',\r
+  `pass_len` tinyint(4) NOT NULL default '5',\r
+  `points_register` bigint(20) NOT NULL default '0',\r
+  `points_ref` bigint(20) NOT NULL default '0',\r
+  `least_cats` tinyint(4) NOT NULL default '5',\r
+  `check_double_email` enum('Y','N') NOT NULL default 'Y',\r
+  `check_double_pass` enum('Y','N') NOT NULL default 'N',\r
+  `admin_notify` enum('Y','N') NOT NULL default 'Y',\r
+  `url_tlock` bigint(20) NOT NULL default '86400',\r
+  `test_text` enum('Y','N') NOT NULL default 'Y',\r
+  `max_tlength` bigint(20) NOT NULL default '1000',\r
+  `test_subj` enum('Y','N') NOT NULL default 'Y',\r
+  `autosend_active` enum('Y','N') NOT NULL default 'N',\r
+  PRIMARY KEY  (`config`)\r
+) TYPE=MyISAM;\r
+\r
+INSERT INTO `mxchange_config` VALUES (0,5,2000,200,5,'Y','N','Y',86400,'Y',1000,'Y','N');\r
+\r
+DROP TABLE IF EXISTS `mxchange_guest_menu`;\r
+CREATE TABLE `mxchange_guest_menu` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `action` varchar(20) NOT NULL default '',\r
+  `what` varchar(20) NOT NULL default '',\r
+  `title` varchar(50) NOT NULL default '',\r
+  `sort` bigint(20) NOT NULL default '0',\r
+  `visible` enum('Y','N') NOT NULL default 'Y',\r
+  `locked` enum('Y','N') NOT NULL default 'Y',\r
+  `counter` bigint(20) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_max_receive`;\r
+CREATE TABLE `mxchange_max_receive` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `value` mediumint(9) NOT NULL default '0',\r
+  `comment` varchar(255) NOT NULL default '',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_member_menu`;\r
+CREATE TABLE `mxchange_member_menu` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `action` varchar(20) NOT NULL default '',\r
+  `what` varchar(20) NOT NULL default '',\r
+  `title` varchar(50) NOT NULL default '',\r
+  `sort` bigint(20) NOT NULL default '0',\r
+  `visible` enum('Y','N') NOT NULL default 'Y',\r
+  `locked` enum('Y','N') NOT NULL default 'Y',\r
+  `descr` blob NOT NULL,\r
+  `counter` bigint(20) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_mod_reg`;\r
+CREATE TABLE `mxchange_mod_reg` (\r
+  `id` bigint(20) NOT NULL auto_increment,\r
+  `module` varchar(50) NOT NULL default '',\r
+  `locked` enum('Y','N') NOT NULL default 'Y',\r
+  `hidden` enum('Y','N') NOT NULL default 'N',\r
+  `admin_only` enum('Y','N') NOT NULL default 'N',\r
+  `title` varchar(200) NOT NULL default '',\r
+  `mem_only` enum('Y','N') NOT NULL default 'N',\r
+  `clicks` bigint(20) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+INSERT INTO `mxchange_mod_reg` VALUES (1,'admin','N','N','Y','','N',0);\r
+INSERT INTO `mxchange_mod_reg` VALUES (2,'index','N','N','N','','N',0);\r
+INSERT INTO `mxchange_mod_reg` VALUES (3,'frameset','Y','N','N','','N',0);\r
+INSERT INTO `mxchange_mod_reg` VALUES (4,'login','N','N','N','','Y',0);\r
+INSERT INTO `mxchange_mod_reg` VALUES (6,'frametester','N','Y','N','','N',0);\r
+INSERT INTO `mxchange_mod_reg` VALUES (7,'loader','N','Y','N','','N',0);\r
+INSERT INTO `mxchange_mod_reg` VALUES (8,'order','N','N','N','','N',0);\r
+\r
+DROP TABLE IF EXISTS `mxchange_payments`;\r
+CREATE TABLE `mxchange_payments` (\r
+  `id` bigint(20) NOT NULL auto_increment,\r
+  `time` int(11) NOT NULL default '0',\r
+  `payment` float(5,3) NOT NULL default '0.000',\r
+  `mail_title` varchar(255) NOT NULL default '',\r
+  `price` float(5,3) NOT NULL default '0.000',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_pool`;\r
+CREATE TABLE `mxchange_pool` (\r
+  `id` bigint(20) NOT NULL auto_increment,\r
+  `sender` bigint(20) NOT NULL default '0',\r
+  `subject` varchar(200) NOT NULL default '',\r
+  `text` longblob NOT NULL,\r
+  `receivers` longblob NOT NULL,\r
+  `payment_id` tinyint(4) NOT NULL default '0',\r
+  `data_type` enum('TEMP','SEND','NEW','ADMIN') NOT NULL default 'TEMP',\r
+  `timestamp` varchar(10) NOT NULL default '0',\r
+  `url` tinytext NOT NULL,\r
+  `target_send` bigint(20) NOT NULL default '0',\r
+  `cat_id` bigint(20) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_refbanner`;\r
+CREATE TABLE `mxchange_refbanner` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `url` text NOT NULL,\r
+  `alternate` text NOT NULL,\r
+  `visible` enum('Y','N') NOT NULL default 'Y',\r
+  `counter` bigint(22) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_refdepths`;\r
+CREATE TABLE `mxchange_refdepths` (\r
+  `id` tinyint(4) NOT NULL auto_increment,\r
+  `level` tinyint(4) NOT NULL default '0',\r
+  `percents` tinyint(4) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+INSERT INTO `mxchange_refdepths` VALUES (1,0,100);\r
+INSERT INTO `mxchange_refdepths` VALUES (2,1,30);\r
+INSERT INTO `mxchange_refdepths` VALUES (3,2,15);\r
+INSERT INTO `mxchange_refdepths` VALUES (4,3,10);\r
+INSERT INTO `mxchange_refdepths` VALUES (5,4,8);\r
+INSERT INTO `mxchange_refdepths` VALUES (6,5,5);\r
+\r
+DROP TABLE IF EXISTS `mxchange_refsystem`;\r
+CREATE TABLE `mxchange_refsystem` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `userid` bigint(20) NOT NULL default '0',\r
+  `level` tinyint(4) NOT NULL default '0',\r
+  `counter` bigint(20) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_user_cats`;\r
+CREATE TABLE `mxchange_user_cats` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `userid` bigint(20) NOT NULL default '0',\r
+  `cat_id` tinyint(4) NOT NULL default '0',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_user_data`;\r
+CREATE TABLE `mxchange_user_data` (\r
+  `userid` bigint(22) NOT NULL auto_increment,\r
+  `surname` varchar(255) NOT NULL default '',\r
+  `family` varchar(255) NOT NULL default '',\r
+  `street_nr` varchar(255) NOT NULL default '',\r
+  `country` varchar(4) NOT NULL default '',\r
+  `zip` varchar(6) NOT NULL default '',\r
+  `city` varchar(255) NOT NULL default '',\r
+  `email` varchar(255) NOT NULL default '',\r
+  `birth_day` char(2) NOT NULL default '01',\r
+  `birth_month` char(2) NOT NULL default '01',\r
+  `birth_year` varchar(4) NOT NULL default '1970',\r
+  `password` varchar(32) NOT NULL default '',\r
+  `max_mails` int(11) NOT NULL default '0',\r
+  `receive_mails` int(11) NOT NULL default '0',\r
+  `refid` bigint(22) NOT NULL default '0',\r
+  `status` enum('UNCONFIRMED','CONFIRMED','LOCKED') NOT NULL default 'UNCONFIRMED',\r
+  `user_hash` varchar(32) NOT NULL default '',\r
+  `REMOTE_ADDR` varchar(15) NOT NULL default '0.0.0.0',\r
+  `last_online` varchar(10) NOT NULL default '0',\r
+  `last_module` varchar(20) NOT NULL default '',\r
+  `ref_clicks` bigint(20) NOT NULL default '0',\r
+  `total_logins` bigint(20) NOT NULL default '0',\r
+  `sex` enum('M','F') NOT NULL default 'M',\r
+  `used_points` double(22,3) NOT NULL default '0.000',\r
+  `emails_sent` bigint(20) NOT NULL default '0',\r
+  PRIMARY KEY  (`userid`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_user_points`;\r
+CREATE TABLE `mxchange_user_points` (\r
+  `id` bigint(22) NOT NULL auto_increment,\r
+  `userid` bigint(22) NOT NULL default '0',\r
+  `ref_depth` tinyint(4) NOT NULL default '0',\r
+  `points` double(22,3) NOT NULL default '0.000',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+alter table `mxchange_config` add `max_send` tinyint not null default '100';\r
+alter table `mxchange_config` add `url_blacklist` enum('Y','N') not null default 'Y';\r
+alter table `mxchange_config` add `auto_purge` tinyint not null default '14';\r
+alter table `mxchange_config` add `auto_purge_active` enum('Y','N') not null default 'Y';\r
+\r
+alter table `mxchange_pool` modify `url` tinytext not null;\r
+alter table `mxchange_pool` change `url` `url` tinyblob not null;\r
+alter table `mxchange_pool` modify `data_type` enum('TEMP','SEND','NEW','ADMIN','ACTIVE') not null default 'TEMP';\r
+\r
+DROP TABLE IF EXISTS `mxchange_user_links`;\r
+CREATE TABLE `mxchange_user_links` (\r
+  `id` bigint(20) NOT NULL auto_increment,\r
+  `stats_id` bigint(20) NOT NULL default '0',\r
+  `userid` bigint(20) NOT NULL default '0',\r
+  `link_type` enum('NORMAL') NOT NULL default 'NORMAL',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_user_stats`;\r
+CREATE TABLE `mxchange_user_stats` (\r
+  `id` bigint(20) NOT NULL auto_increment,\r
+  `userid` bigint(20) NOT NULL default '0',\r
+  `cat_id` bigint(20) NOT NULL default '0',\r
+  `payment_id` bigint(20) NOT NULL default '0',\r
+  `subject` varchar(200) NOT NULL default '',\r
+  `url` tinyblob NOT NULL,\r
+  `max_rec` bigint(20) NOT NULL default '0',\r
+  `timestamp_ordered` varchar(10) NOT NULL default '',\r
+  `pool_id` bigint(20) NOT NULL default '0',\r
+  `timestamp_sstart` varchar(10) NOT NULL default '',\r
+  `timestamp_send` varchar(10) NOT NULL default '',\r
+  PRIMARY KEY  (`id`)\r
+) TYPE=MyISAM;\r
+\r
+alter table `mxchange_user_data` add `joined` varchar(10) not null default '0';\r
+alter table `mxchange_config` add `last_update` varchar(10) not null default '0';\r
+\r
+UPDATE `mxchange_member_menu` SET locked = 'N' WHERE 'id'='12' OR 'id'='11' LIMIT 1;\r
+\r
+UPDATE `mxchange_guest_menu` SET counter='0';\r
+UPDATE `mxchange_member_menu` SET counter='0';\r
+\r
+INSERT INTO `mxchange_mod_reg` VALUES (NULL,'chk_login','N','N','N','','N',0);\r
+alter table `mxchange_pool` modify `data_type` enum('TEMP','SEND','NEW','ADMIN','ACTIVE') not null default 'TEMP';\r
+alter table `mxchange_config` add `unconfirmed` bigint not null default '100';\r
+alter table `mxchange_config` add `profile_lock` bigint not null default '86400';\r
+alter table `mxchange_user_data` add `last_update` varchar(10) not null default '0';\r
+alter table `mxchange_refbanner` add `clicks` bigint not null default '0';\r
+alter table `mxchange_config` add `online_timeout` bigint not null default '1800';\r
+\r
+alter table `mxchange_config` add `mad_timestamp` varchar(10) not null default '0';\r
+alter table `mxchange_config` add `mad_count` bigint not null;\r
+alter table `mxchange_config` add `profile_update` bigint not null default '15768000';\r
+alter table `mxchange_config` add `send_prof_update` enum('Y','N') not null default 'Y';\r
+alter table `mxchange_config` add `resend_profile_update` bigint not null default '172800';\r
+\r
+alter table `mxchange_user_data` add `last_profile_sent` varchar(10) not null default '0';\r
+alter table `mxchange_user_data` add `notified` enum('Y','N') not null default 'N';\r
+\r
+alter table `mxchange_config` add `patch_level` varchar(100) not null default '78';\r
+alter table `mxchange_config` add `patch_ctime` varchar(10) not null default '0';\r
+\r
+alter table `mxchange_admins` add `email` varchar(255) not null;\r
+\r
+DROP TABLE IF EXISTS `mxchange_task_system`;\r
+CREATE TABLE mxchange_task_system (\r
+  id bigint(20) NOT NULL auto_increment,\r
+  assigned_admin bigint(20) NOT NULL default '0',\r
+  userid bigint(20) NOT NULL default '0',\r
+  status enum('NEW','OPEN','SOLVED','CLOSED','DELETED') NOT NULL default 'NEW',\r
+  task_type enum('FIRST_USER','SUPPORT_MEMBER','SUPPORT_ADMIN','OTHERS', 'EXTENSION', 'EXTENSION_UPDATE') NOT NULL default 'FIRST_USER',\r
+  subject varchar(255) NOT NULL default '',\r
+  text longblob NOT NULL,\r
+  task_created varchar(10) NOT NULL default '0',\r
+  KEY (assigned_admin),\r
+  PRIMARY KEY  (id)\r
+) TYPE=MyISAM;\r
+\r
+ALTER TABLE `mxchange_pool` ADD INDEX (sender);\r
+ALTER TABLE `mxchange_pool` ADD INDEX (payment_id);\r
+ALTER TABLE `mxchange_pool` ADD INDEX (cat_id);\r
+ALTER TABLE `mxchange_refsystem` ADD INDEX (userid);\r
+ALTER TABLE `mxchange_task_system` ADD INDEX (assigned_admin);\r
+ALTER TABLE `mxchange_task_system` ADD INDEX (userid);\r
+ALTER TABLE `mxchange_user_cats` ADD INDEX (userid);\r
+ALTER TABLE `mxchange_user_cats` ADD INDEX (cat_id);\r
+ALTER TABLE `mxchange_user_data` ADD INDEX (refid);\r
+ALTER TABLE `mxchange_user_links` ADD INDEX (userid);\r
+ALTER TABLE `mxchange_user_links` ADD INDEX (stats_id);\r
+ALTER TABLE `mxchange_user_points` ADD INDEX (userid);\r
+ALTER TABLE `mxchange_user_stats` ADD INDEX (userid);\r
+ALTER TABLE `mxchange_user_stats` ADD INDEX (cat_id);\r
+ALTER TABLE `mxchange_user_stats` ADD INDEX (payment_id);\r
+ALTER TABLE `mxchange_user_stats` ADD INDEX (pool_id);\r
+\r
+alter table `mxchange_user_stats` add `clicks` bigint not null;\r
+alter table `mxchange_config` add `code_length` tinyint not null default '5';\r
+alter table `mxchange_config` add `guest_stats` enum('MEMBERS','MODULES','INACTIVE') not null default 'MEMBERS';\r
+alter table `mxchange_config` add `ref_payout` tinyint not null default '5';\r
+alter table `mxchange_user_data` add `ref_payout` tinyint not null default '0';\r
+alter table `mxchange_user_points` add `locked_points` bigint not null default '0';\r
+\r
+DROP TABLE IF EXISTS mxchange_extensions;\r
+CREATE TABLE mxchange_extensions (\r
+  id bigint(20) NOT NULL auto_increment,\r
+  ext_name varchar(255) NOT NULL default '',\r
+  ext_lang_file varchar(255) NOT NULL default '',\r
+  ext_active enum('Y','N') NOT NULL default 'N',\r
+  ext_version varchar(255) NOT NULL default '0.',\r
+  PRIMARY KEY  (id)\r
+) TYPE=MyISAM;\r
+\r
+DROP TABLE IF EXISTS `mxchange_jackpot`;\r
+CREATE TABLE `mxchange_jackpot` (\r
+  `ok` char(2) NOT NULL default 'ok',\r
+  `points` double(23,3) NOT NULL default '0.000',\r
+  PRIMARY KEY  (`ok`)\r
+) TYPE=MyISAM;\r
+\r
+alter table `mxchange_config` add `activate_xchange` bigint(20) not null default '100';\r
+alter table `mxchange_config` add `order_multi_page` enum('Y','N') not null default 'Y';\r
+alter table `mxchange_config` add `display_refid` enum('Y','N') not null default 'Y';\r
+alter table `mxchange_config` add `ip_timeout` bigint(20) not null default '86400';\r
+alter table `mxchange_pool` add `zip` varchar(6) not null default '';\r
+\r
+alter table `mxchange_task_system` change `task_type` `task_type` varchar(255)  not null default 'FIRST_USER';\r
+alter table `mxchange_user_data` modify `zip` varchar(6) not null default '';\r
+alter table `mxchange_admin_menu` modify `action` varchar(255) not null default '';\r
+alter table `mxchange_admin_menu` modify `what` varchar(255) not null default '';\r
+alter table `mxchange_user_data` modify `last_module` varchar(255) not null default '';\r
+alter table `mxchange_config` add `allow_direct_pay` enum('N', 'Y') not null default 'N';\r
+alter table `mxchange_user_data` modify `last_profile_sent` varchar(10)  not null default '0';\r
+alter table `mxchange_user_data` modify `last_update` varchar(10)  not null default '0';\r
+alter table `mxchange_user_data` modify `joined` varchar(10)  not null default '0';\r
+alter table `mxchange_user_data` modify `last_online` varchar(10)  not null default '0';\r
+update `mxchange_user_data` SET last_profile_sent='0' WHERE last_profile_sent='0000000000';\r
+update `mxchange_user_data` SET last_update='0' WHERE last_update='0000000000';\r
+update `mxchange_user_data` SET joined='0' WHERE joined='0000000000';\r
+update `mxchange_user_data` SET last_online='0' WHERE last_online='0000000000';\r
diff --git a/0.2.1/lead-confirm.php b/0.2.1/lead-confirm.php
new file mode 100644 (file)
index 0000000..825b1e5
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 05/14/2007 *
+ * ===============                              Last change: 05/14/2007 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : lead-confirm.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Script for lead-campaign codes                   *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Alles um den Bestaetigungslink                   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "lead-confirm";
+
+// Load config.php
+require ("inc/config.php");
+
+// Is the script installed?
+if (defined('mxchange_installed') && (mxchange_installed)) {
+       // Header
+       require(PATH."inc/header.php");
+
+       // Initialize the array for the template
+       $content = array(
+               'lead_uid'   => -1,
+               'lead_email' => "INVALID@EMAIL"
+       );
+
+       // Is the cookie set?
+       if (isset($_COOKIE['lead_uid'])) {
+               // Is the user-account unlocked and valid?
+               $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                       array(bigintval($_COOKIE['lead_uid'])), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1) {
+                       // Secure the ID number
+                       $content['lead_uid'] = bigintval($_COOKIE['lead_uid']);
+
+                       // Load the email address
+                       list($content['lead_email']) = COMPILE_CODE(SQL_FETCHROW($result));
+               } else {
+                       // Not found!
+                       $content['lead_uid'] = 0;
+               }
+       } else {
+               // Maybe spider?
+               $content['lead_email'] = WEBMASTER;
+       }
+
+       // Load the lead template
+       LOAD_TEMPLATE("lead_code", false, $content);
+
+       // Footer
+       require(PATH."inc/footer.php");
+} else {
+       // You have to configure first!
+       LOAD_URL("install.php");
+}
+
+// All done here...
+?>
diff --git a/0.2.1/login.php b/0.2.1/login.php
new file mode 100644 (file)
index 0000000..7686aa7
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/13/2003 *
+ * ===============                              Last change: 04/26/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : login.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Another simple redirection...                    *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Eine weitere einfach Weiterleitung...            *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "login";
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// Is the script installed?
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Simply redirect... :-)
+       LOAD_URL(URL."/modules.php?module=index&amp;what=login");
+       // Redirection should be done here
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."install.php");
+}
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/mailid.php b/0.2.1/mailid.php
new file mode 100644 (file)
index 0000000..b268fa8
--- /dev/null
@@ -0,0 +1,216 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/14/2003 *
+ * ===============                              Last change: 11/25/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : mailid.php                                       *
+ * -------------------------------------------------------------------- *
+ * Short description : Confirmation file for emails                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bestaetigung von Mails                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Tell everyone we are in this module
+$GLOBALS['module'] = "mailid"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Is the extension active
+       if (!EXT_IS_ACTIVE("mailid", true)) {
+               // Is not activated/installed yet!
+               ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "mailid"));
+       }
+
+       // Add header
+       require_once(PATH."inc/header.php");
+
+       // Init
+       $url_uid = 0; $url_bid = 0; $url_mid = 0;
+
+       // Secure all data
+       if (!empty($_GET['uid']))     $url_uid = bigintval($_GET['uid']);
+       if (!empty($_GET['mailid']))  $url_mid = bigintval($_GET['mailid']);
+       if (!empty($_GET['bonusid'])) $url_bid = bigintval($_GET['bonusid']);
+
+       //* DEBUG: */ die("*".$url_uid."/".$url_bid."/".$url_mid."*<pre>".print_r($FATAL, true)."</pre>");
+
+       // 01        1        12            3    32           21    1     2      2     10
+       if (($url_uid) > 0 && (($url_mid > 0) || ($url_bid > 0)) && (count($FATAL) == 0))
+       {
+               // Maybe he wants to confirm an email?
+               if ($url_mid > 0)
+               {
+                       // Normal-Mails
+                       $result = SQL_QUERY_ESC("SELECT link_type FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d AND userid=%d LIMIT 1",
+                        array($url_mid, $url_uid), __FILE__, __LINE__);
+                       $TYPE = "mailid"; $DATA = $url_mid;
+               }
+                elseif ($url_bid > 0)
+               {
+                       // Bonus-Mail
+                       $result = SQL_QUERY_ESC("SELECT link_type FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%d AND userid=%d LIMIT 1",
+                        array($url_bid, $url_uid), __FILE__, __LINE__);
+                       $TYPE = "bonusid"; $DATA = $url_bid;
+               }
+                else
+               {
+                       // Problem: No ID entered
+                       LOAD_URL("index.php");
+               }
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       list($ltype) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       switch ($ltype)
+                       {
+                       case "NORMAL":
+                               // Is the stats ID valid?
+                               $result = SQL_QUERY_ESC("SELECT pool_id, url FROM "._MYSQL_PREFIX."_user_stats WHERE id=%d LIMIT 1",
+                                array($url_mid), __FILE__, __LINE__);
+                               break;
+
+                       case "BONUS":
+                               // Bonus-Mails
+                               $result = SQL_QUERY_ESC("SELECT id, url FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+                                array($url_bid), __FILE__, __LINE__);
+                               break;
+                       }
+
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Load data
+                               list($pool, $URL) = SQL_FETCHROW($result);
+                               SQL_FREERESULT($result);
+
+                               // Is the user's ID unlocked?
+                               $result = SQL_QUERY_ESC("SELECT status, sex, surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                array($url_uid), __FILE__, __LINE__);
+                               if (SQL_NUMROWS($result) == 1)
+                               {
+                                       list($status, $sex, $sname, $fname) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+                                       if ($status == "CONFIRMED")
+                                       {
+                                               // User has confirmed his account so we can procede...
+                                               switch ($ltype)
+                                               {
+                                               case "NORMAL":
+                                                       $result = SQL_QUERY_ESC("SELECT payment_id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1",
+                                                        array(bigintval($pool)), __FILE__, __LINE__);
+                                                       if (SQL_NUMROWS($result) == 1)
+                                                       {
+                                                               list($pay) = SQL_FETCHROW($result);
+                                                               $time      = GET_PAY_POINTS($pay, "time");
+                                                               $payment   = GET_PAY_POINTS($pay, "payment");
+                                                               $VALID     = true;
+                                                       }
+
+                                                       // Free memory
+                                                       SQL_FREERESULT($result);
+                                                       break;
+
+                                               case "BONUS":
+                                                       $result = SQL_QUERY_ESC("SELECT points, time FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+                                                        array($url_bid), __FILE__, __LINE__);
+                                                       if (SQL_NUMROWS($result) == 1)
+                                                       {
+                                                               list($points, $time) = SQL_FETCHROW($result);
+                                                               $payment = "0.00000";
+                                                               $VALID = true;
+                                                       }
+
+                                                       // Free memory
+                                                       SQL_FREERESULT($result);
+                                                       break;
+                                               }
+
+                                               if ($VALID)
+                                               {
+                                                       // If time is zero seconds we have a sponsor mail. 1 Second shall be set to avoid problems
+                                                       if (($time == "0") && ($payment > 0)) { $URL = URL; $time = "1"; }
+                                                       if (($time > 0) && (($payment > 0) || ($points > 0))) {
+                                                               // He can confirm this mail!
+                                                               // Export data into constants for the template
+                                                               define('_UID_VALUE' , $url_uid);
+                                                               define('_TYPE_VALUE', $TYPE);
+                                                               define('_DATA_VALUE', $DATA);
+                                                               define('_URL_VALUE' , DEREFERER($URL));
+
+                                                               // Load template
+                                                               LOAD_TEMPLATE("mailid_frames");
+                                                       } else {
+                                                               $msg = CODE_DATA_INVALID;
+                                                       }
+                                               } else {
+                                                       $msg = CODE_POSSIBLE_INVALID;
+                                               }
+                                       } else {
+                                               $msg = CODE_ACCOUNT_LOCKED;
+                                       }
+                               } else {
+                                       SQL_FREERESULT($result);
+                                       $msg = CODE_USER_404;
+                               }
+                       } else {
+                               SQL_FREERESULT($result);
+                               $msg = CODE_STATS_404;
+                       }
+               } else {
+                       SQL_FREERESULT($result);
+                       $msg = CODE_ALREADY_CONFIRMED;
+               }
+       } else {
+               // Nothing entered
+               $msg = CODE_ERROR_MAILID;
+       }
+
+       // Error code is set?
+       if (!empty($msg)) {
+               LOAD_URL(URL."/modules.php?module=index&msg=".$msg);
+       }
+
+       require_once(PATH."inc/footer.php");
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL("install.php");
+}
+// Really all done here... ;-)
+die();
+
+//
+?>
diff --git a/0.2.1/mailid_top.php b/0.2.1/mailid_top.php
new file mode 100644 (file)
index 0000000..a4d1b72
--- /dev/null
@@ -0,0 +1,370 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/14/2003 *
+ * ===============                              Last change: 11/13/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : mailid_top.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Confirmation file for emails                     *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Bestaetigung von Mails                           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Tell everyone we are in this module
+$GLOBALS['module'] = "mailid";  $CSS = "0";
+
+// Load the required file(s)
+require ("inc/config.php");
+
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Is the extension active
+       if (!EXT_IS_ACTIVE("mailid", true)) {
+               // Is not activated/installed yet!
+               ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "register"));
+       }
+
+       // Secure all data
+       $url_uid = "0"; $url_bid = "0"; $url_mid = "0"; $code = "0"; $mode = "";
+       if (!empty($_GET['uid']))     $url_uid = bigintval($_GET['uid']);
+       if (!empty($_GET['mailid']))  $url_mid = bigintval($_GET['mailid']);
+       if (!empty($_GET['bonusid'])) $url_bid = bigintval($_GET['bonusid']);
+       if (!empty($_GET['code']))    $code    = bigintval($_GET['code']);
+       if (!empty($_GET['mode']))    $mode    = $_GET['mode'];
+
+       // 01        1        12            2    2            21    1     2      2     10
+       if (($url_uid) > 0 && (($url_mid > 0) || ($url_bid > 0)) && (count($FATAL) == 0))
+       {
+               if ($mode != "img") require_once(PATH."inc/header.php");
+
+               // Maybe he wants to confirm an email?
+               if ($url_mid > 0)
+               {
+                       $result = SQL_QUERY_ESC("SELECT id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d AND userid=%d LIMIT 1",
+                        array($url_mid, $url_uid), __FILE__, __LINE__);
+                       $TYPE = "mailid"; $DATA = $url_mid;
+               }
+                elseif ($url_bid > 0)
+               {
+                       $result = SQL_QUERY_ESC("SELECT id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%d AND userid=%d LIMIT 1",
+                        array($url_bid, $url_uid), __FILE__, __LINE__);
+                       $TYPE = "bonusid"; $DATA = $url_bid;
+               }
+               if (SQL_NUMROWS($result) == 1)
+               {
+                       // Is the stats ID valid?
+                       list($link_id, $ltype) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+                       switch ($ltype)
+                       {
+                       case "NORMAL":
+                               $result_mailid = SQL_QUERY_ESC("SELECT pool_id, userid, id FROM "._MYSQL_PREFIX."_user_stats WHERE id=%d LIMIT 1",
+                                array($url_mid), __FILE__, __LINE__);
+                               break;
+
+                       case "BONUS":
+                               $result_mailid = SQL_QUERY_ESC("SELECT id, id, is_notify FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+                                array($url_bid), __FILE__, __LINE__);
+                               break;
+                       }
+                       if (SQL_NUMROWS($result_mailid) == 1)
+                       {
+                               list($pool, $sender, $notify) = SQL_FETCHROW($result_mailid);
+
+                               // Correct notification switch in non-bonus mails
+                               if (($notify != "Y") && ($notify != "N")) $notify = "N";
+
+                               // Free some memory
+                               SQL_FREERESULT($result_mailid);
+
+                               // Set sender to 0 when we have a bonus mail
+                               if ($ltype == "BONUS") $sender = 0;
+
+                               // Is the user's ID unlocked?
+                               $result = SQL_QUERY_ESC("SELECT status, sex, surname, family, ref_payout FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                array($url_uid), __FILE__, __LINE__);
+                               if (SQL_NUMROWS($result) == 1)
+                               {
+                                       // Load data
+                                       list($status, $sex, $sname, $fname, $ref_pay) = SQL_FETCHROW($result);
+                                       SQL_FREERESULT($result);
+
+                                       if ($status == "CONFIRMED")
+                                       {
+                                               // Update last activity
+                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET last_online=UNIX_TIMESTAMP(), last_module='mailid_top' WHERE userid=%d LIMIT 1",
+                                                array($url_uid), __FILE__, __LINE__);
+
+                                               // User has confirmed his account so we can procede...
+                                               switch ($ltype)
+                                               {
+                                               case "NORMAL":
+                                                       $result = SQL_QUERY_ESC("SELECT payment_id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1",
+                                                        array(bigintval($pool)), __FILE__, __LINE__);
+                                                       if (SQL_NUMROWS($result) == 1)
+                                                       {
+                                                               list($pay) = SQL_FETCHROW($result);
+                                                               $time      = GET_PAY_POINTS($pay, "time");
+                                                               $payment   = GET_PAY_POINTS($pay, "payment");
+                                                               $VALID     = true;
+                                                       }
+
+                                                       // Free memory...
+                                                       SQL_FREERESULT($result);
+                                                       break;
+
+                                               case "BONUS":
+                                                       $result = SQL_QUERY_ESC("SELECT time, points FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
+                                                        array(bigintval($pool)), __FILE__, __LINE__);
+                                                       if (SQL_NUMROWS($result) == 1)
+                                                       {
+                                                               list($time, $payment) = SQL_FETCHROW($result);
+                                                               $VALID = true;
+                                                       }
+
+                                                       // Free memory...
+                                                       SQL_FREERESULT($result);
+                                                       break;
+                                               }
+                                               if ($VALID)
+                                               {
+                                                       if (($time == "0") && ($payment >0)) $time = "1";
+                                                       if (($time > 0) && ($payment > 0))
+                                                       {
+                                                               if (!empty($code))
+                                                               {
+                                                                       // Generate code
+                                                                       $img_code = GEN_RANDOM_CODE($CONFIG['code_length'], $code, $url_uid, $DATA);
+                                                               }
+
+                                                               switch ($mode)
+                                                               {
+                                                               case "add":
+                                                                       // Count clicks
+                                                                       switch ($ltype)
+                                                                       {
+                                                                       case "NORMAL":
+                                                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_stats SET clicks=clicks+1 WHERE id=%d LIMIT 1",
+                                                                                array($url_mid), __FILE__, __LINE__);
+
+                                                                               // Update mediadata as well
+                                                                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                                                                               {
+                                                                                       // Update database
+                                                                                       MEDIA_UPDATE_ENTRY(array("total_clicks", "normal_clicks"), "add", 1);
+                                                                               }
+                                                                               break;
+
+                                                                       case "BONUS":
+                                                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET clicks=clicks+1 WHERE id=%d LIMIT 1",
+                                                                                array($url_bid), __FILE__, __LINE__);
+
+                                                                               // Update mediadata as well
+                                                                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")
+                                                                               {
+                                                                                       // Update database
+                                                                                       MEDIA_UPDATE_ENTRY(array("total_clicks", "bonus_clicks"), "add", 1);
+                                                                               }
+                                                                               break;
+                                                                       }
+
+                                                                       // Export data into constants for the template
+                                                                       define('_POINTS_VALUE'   , TRANSLATE_COMMA($payment));
+                                                                       define('_TEMPLATE_BANNER', LOAD_TEMPLATE("mailid_banner", true));
+
+                                                                       // Only when user extension = v0.1.2: Update mails-confirmed counter
+                                                                       if (GET_EXT_VERSION("user") >= "0.1.2")
+                                                                       {
+                                                                               // Update counter
+                                                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET mails_confirmed=mails_confirmed+1 WHERE userid=%d LIMIT 1",
+                                                                                array($url_uid), __FILE__, __LINE__);
+                                                                       }
+
+                                                                       // Right code entered?
+                                                                       if (bigintval($_POST['gfx_check']) == $img_code)
+                                                                       {
+                                                                               // Right code entered add points and remove entry
+                                                                               if (($ref_pay > 0) && ($CONFIG['allow_direct_pay'] == "N"))
+                                                                               {
+                                                                                       // Don't add points over the referral system
+                                                                                       $locked = true;
+                                                                                       $template = "mailid_points_locked";
+                                                                               }
+                                                                                else
+                                                                               {
+                                                                                       // Add points over referral system
+                                                                                       $locked = false;
+                                                                                       $template = "mailid_points_done";
+                                                                               }
+
+                                                                               // Count down ref_payout value
+                                                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET ref_payout=ref_payout-1 WHERE userid=%d AND ref_payout > 0 LIMIT 1",
+                                                                                array($url_uid), __FILE__, __LINE__);
+
+                                                                               // Add points
+                                                                               ADD_POINTS_REFSYSTEM($url_uid, $payment, false, "0", $locked);
+
+                                                                               // Shall I add bonus points for "turbo clickers" ?
+                                                                               if ((GET_EXT_VERSION("bonus") >= "0.2.2") && (function_exists('BONUS_ADD_TURBO_POINTS')))
+                                                                               {
+                                                                                       // Is an active-rallye running and this is not a notification mail?
+                                                                                       if (($CONFIG['bonus_active'] == "Y") && ($notify == "N"))
+                                                                                       {
+                                                                                               // Shall I exclude the webmaster's own userid from the active-rallye?
+                                                                                               if (((($CONFIG['bonus_uid'] == $url_uid) && ($CONFIG['bonus_include_own'] == "Y")) || ($CONFIG['bonus_uid'] != $url_uid)) && ($CONFIG['def_refid'] != $url_uid))
+                                                                                               {
+                                                                                                       // Add points and remember ranking are done in this function....
+                                                                                                       BONUS_ADD_TURBO_POINTS($DATA, $url_uid, $TYPE);
+
+                                                                                                       // Set template to mailid_points_done2 which contains a link to the ranking list
+                                                                                                       $template = "mailid_points_done2";
+                                                                                                       if ($locked) $template = "mailid_points_locked2";
+                                                                                                       define('_UID_VALUE' , $url_uid);
+                                                                                                       define('_TYPE_VALUE', $TYPE);
+                                                                                                       define('_DATA_VALUE', TRANSLATE_COMMA($DATA));
+                                                                                               }
+                                                                                       }
+                                                                               }
+
+                                                                               // Remove link from table
+                                                                               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE id=%d LIMIT 1",
+                                                                                array(bigintval($link_id)), __FILE__, __LINE__);
+
+                                                                               // Load total points
+                                                                               define('__TOTAL_POINTS', TRANSLATE_COMMA(
+                                                                                       GET_TOTAL_DATA($url_uid, "user_points", "points") -
+                                                                                       GET_TOTAL_DATA($url_uid, "user_data", "used_points"))
+                                                                               );
+
+                                                                               // Load template
+                                                                               LOAD_TEMPLATE($template);
+                                                                       }
+                                                                        else
+                                                                       {
+                                                                               // Wrong image code! So add points to sender's account
+                                                                               ADD_POINTS_REFSYSTEM($sender, $payment);
+
+                                                                               // Remove link from table
+                                                                               $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE id=%d LIMIT 1",
+                                                                                array(bigintval($link_id)), __FILE__, __LINE__);
+
+                                                                               // Load template
+                                                                               LOAD_TEMPLATE("mailid_points_failed");
+                                                                       }
+                                                                       break;
+
+                                                               case "img":
+                                                                       GENERATE_IMAGE($img_code);
+                                                                       break;
+
+                                                               case "confirm":
+                                                                       if ($code > 0)
+                                                                       {
+                                                                               // Export data into constants for the template
+                                                                               define('_CODE_VALUE', $code);
+                                                                               define('_UID_VALUE' , $url_uid );
+                                                                               define('_TYPE_VALUE', $TYPE);
+                                                                               define('_DATA_VALUE', $DATA);
+                                                                               define('_TEMPLATE_BANNER', LOAD_TEMPLATE("mailid_banner", true));
+                                                                               if ($CONFIG['code_length'] > 0)
+                                                                               {
+                                                                                       // Generate Code
+                                                                                       define('_IMAGE_CODE', IMG_CODE($code, $TYPE, $DATA, $url_uid));
+                                                                                       $templ = "mailid_enter_code";
+                                                                               }
+                                                                                else
+                                                                               {
+                                                                                       // Disabled code
+                                                                                       define('__GFX_CODE', $img_code);
+                                                                                       $templ = "mailid_confirm_buttom";
+                                                                               }
+
+                                                                               // Load template
+                                                                               LOAD_TEMPLATE($templ);
+                                                                       }
+                                                                       break;
+
+                                                               case "":
+                                                                       // Ok, all data is valid and loaded. Finally let's output the timer... :-)
+                                                                       // Export data into constants for the template
+                                                                       define('_TIME_VALUE', $time);
+                                                                       define('_TIM2_VALUE', strlen($time));
+                                                                       define('_UID_VALUE' , $url_uid );
+                                                                       define('_TYPE_VALUE', $TYPE);
+                                                                       define('_DATA_VALUE', $DATA);
+                                                                       define('_RAND_VALUE', rand(0, 99999));
+                                                                       define('_TEMPLATE_BANNER', LOAD_TEMPLATE("mailid_banner", true));
+
+                                                                       // Load template
+                                                                       LOAD_TEMPLATE("mailid_timer");
+                                                                       break;
+                                                               }
+                                                       }
+                                                        else OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (6)</STRONG>");
+                                               }
+                                                else OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (5)</STRONG>");
+                                       }
+                                        else OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (4)</STRONG>");
+                               }
+                                else
+                               {
+                                       SQL_FREERESULT($result);
+                                       OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (3)</STRONG>");
+                               }
+                       }
+                        else
+                       {
+                               SQL_FREERESULT($result);
+                               OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (2)</STRONG>");
+                       }
+               }
+                else
+               {
+                       SQL_FREERESULT($result);
+                       OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (1)</STRONG>");
+               }
+               if ($mode != "img")
+               {
+                       // Write footer
+                       require_once(PATH."inc/footer.php");
+               }
+       }
+}
+ elseif ($mode != "img")
+{
+       // You have to configure first!
+       LOAD_URL("install.php");
+}
+
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/modules.php b/0.2.1/modules.php
new file mode 100644 (file)
index 0000000..9cc7ff2
--- /dev/null
@@ -0,0 +1,167 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 08/25/2003 *
+ * ===============                              Last change: 07/01/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : modules.php                                      *
+ * -------------------------------------------------------------------- *
+ * Short description : Main loader file. Loads our needed stuff         *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Hauptladedatei. Laedt alle benoetigten Dateien   *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// APD call (if you have this apache extension and want to debug this script for us)
+//apd_set_pprof_trace();
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once ("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$CSS = 0;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+$GLOBALS['userid'] = 0;
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+if (empty($_GET['module'])) $_GET['module'] = "index";
+
+// Secure the module name (very important line!)
+$GLOBALS['module'] = htmlentities(strip_tags($_GET['module']), ENT_QUOTES);
+
+// Needed include files
+require ("inc/config.php");
+
+// Check if logged in
+if (IS_LOGGED_IN())
+{
+       // Is still logged in so we welcome him with his name
+       $result = SQL_QUERY_ESC("SELECT surname, family FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+        array($GLOBALS['userid']), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)
+       {
+               // Load surname and family's name and build the username
+               list($s, $f) = SQL_FETCHROW($result);
+               $username = $s." ".$f;
+
+               // Update only cookies and no login data!
+               UPDATE_LOGIN_DATA(false);
+       }
+        else
+       {
+
+               // Hmmm, logged in and no valid cookies???
+               $username = "<I>"._UNKNOWN."</I>";
+       }
+
+       // Free memory
+       SQL_FREERESULT($result);
+}
+ elseif (IS_ADMIN())
+{
+       $username = _ADMIN;
+}
+ else
+{
+       // He's a guest, hello there... ;-)
+       $username = _GUEST;
+}
+
+// The header file
+include (PATH."inc/header.php");
+
+// Modules are by default not valid!
+$MOD_VALID = false; $check = "failed";
+if ((!empty($CONFIG['maintenance'])) && ($CONFIG['maintenance'] == "Y") && (!IS_ADMIN()) && ($GLOBALS['module'] != "admin"))
+{
+       // Maintain mode is active and you are no admin
+       ADD_FATAL(LANG_DOWN_MAINTAINCE);
+}
+ elseif (($link) && ($db) && (sizeof($FATAL) == 0))
+{
+       // Did we found the module listed in allowed modules and are we successfully connected?
+       $check = CHECK_MODULE($GLOBALS['module']);
+       switch ($check)
+       {
+       case "admin_only":
+       case "mem_only":
+       case "done":
+               // Construct module name
+               define('__MODULE', sprintf(PATH."inc/modules/%s.php", $GLOBALS['module']));
+
+               // Does the module exists on local file system?
+               if (((file_exists(__MODULE)) || (!empty($URL))) && (sizeof($FATAL) == 0))
+               {
+                       // Module is valid, active and located on the local disc...
+                       $MOD_VALID = true;
+               }
+                elseif (!empty($URL))
+               {
+                       // An URL was specified so we load the de-referrer module
+                       include (PATH."inc/loader.php");
+               }
+                elseif (sizeof($FATAL) == 0)
+               {
+                       ADD_FATAL(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2);
+               }
+               break;
+
+       case "404":
+               ADD_FATAL(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2);
+               break;
+
+       case "locked":
+               if (!file_exists(PATH."inc/modules/".$GLOBALS['module'].".php"))
+               {
+                       // Module does addionally not exists
+                       ADD_FATAL(LANG_MOD_REG_404_1.$GLOBALS['module'].LANG_MOD_REG_404_2);
+               }
+               ADD_FATAL(LANG_MOD_LOCKED_1.$GLOBALS['module'].LANG_MOD_LOCKED_2);
+               break;
+
+       default:
+               ADD_FATAL(LANG_MOD_UNKNOWN_1.$check.LANG_MOD_UNKNOWN_2);
+               break;
+       }
+}
+ elseif (sizeof($FATAL) == 0)
+{
+       // MySQL problems!
+       ADD_FATAL(MYSQL_ERRORS);
+}
+
+if ($MOD_VALID)
+{
+       /////////////////////////////////////////////
+       // Main including line DO NOT REMOVE/EDIT! //
+       /////////////////////////////////////////////
+       //
+       // Everything is okay so we can load the module
+       include (__MODULE);
+}
+
+// Next-to-end add the footer
+include (PATH."inc/footer.php");
+
+//
+?>
diff --git a/0.2.1/ref.php b/0.2.1/ref.php
new file mode 100644 (file)
index 0000000..f4ee90a
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 10/13/2003 *
+ * ===============                              Last change: 09/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ref.php                                          *
+ * -------------------------------------------------------------------- *
+ * Short description : Redirection for the referral link                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Weiterleitungsscript fuer die Referral-Links     *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "ref"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// Redirect only to registration page when this script is installed
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Base URL for redirection
+       switch ($CONFIG['refid_target'])
+       {
+       case "register":
+               $URL = URL."/modules.php?module=index&what=register&refid=";
+               break;
+
+       case "index":
+               $URL = URL."/index.php?refid=";
+               break;
+       }
+
+       // Get referral ID from ref or refid variable
+       if (!empty($_GET['ref']))        $ref = strip_tags(htmlentities($_GET['ref']));
+        elseif (!empty($_GET['refid'])) $ref = bigintval($_GET['refid']);
+
+       if (!empty($ref))
+       {
+               // Test if nickname ($test == "0") or ID
+               $test = "".round($ref)."";
+               if ((EXT_IS_ACTIVE("nickname")) && ($test != $ref))
+               {
+                       // Nickname in URL, so load the ID
+                       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' LIMIT 1", array($ref), __FILE__, __LINE__);
+                       list($ref) = SQL_FETCHROW($result);
+                       SQL_FREERESULT($result);
+               }
+               // Also edit this 0 !
+               if (empty($ref)) $ref = "0";
+
+               // We have an refid here. So we simply add it
+               $URL .= bigintval($ref);
+
+               // Update ref counter
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET ref_clicks=ref_clicks+1 WHERE userid=%d LIMIT 1",
+                array(bigintval($ref)), __FILE__, __LINE__);
+       }
+        else
+       {
+               // No refid and we add our refid (don't forget to set $def_refid!)
+               $URL = URL."/index.php";
+       }
+       // Load the URL
+       LOAD_URL($URL);
+       // Redirection should be done here
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."/install.php");
+}
+
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/robots.txt b/0.2.1/robots.txt
new file mode 100644 (file)
index 0000000..6e16af6
--- /dev/null
@@ -0,0 +1,402 @@
+#
+# Thanx to Mr. Jungwirth for his hint to create this file (was a bit lost in my mind...)
+#
+User-agent: *
+Disallow: /css/
+Disallow: /inc/
+Disallow: /images/
+Disallow: /sql-upgrades/
+Disallow: /templates/
+Disallow: /upgrade.php
+Disallow: /install.php
+Disallow: /cms/index/wht/impressum
+
+User-agent: *
+Disallow: /cms/index/wht/impressum
+
+User-agent: grub-client
+Disallow: /
+
+User-agent: grub
+Disallow: /
+
+User-agent: looksmart
+Disallow: /
+
+User-agent: WebZip
+Disallow: /
+
+User-agent: larbin
+Disallow: /
+
+User-agent: b2w/0.1
+Disallow: /
+
+User-agent: psbot
+Disallow: /
+
+User-agent: Python-urllib
+Disallow: /
+
+User-agent: NetMechanic
+Disallow: /
+
+User-agent: URL_Spider_Pro
+Disallow: /
+
+User-agent: CherryPicker
+Disallow: /
+
+User-agent: EmailCollector
+Disallow: /
+
+User-agent: EmailSiphon
+Disallow: /
+
+User-agent: WebBandit
+Disallow: /
+
+User-agent: EmailWolf
+Disallow: /
+
+User-agent: ExtractorPro
+Disallow: /
+
+User-agent: CopyRightCheck
+Disallow: /
+
+User-agent: Crescent
+Disallow: /
+
+User-agent: SiteSnagger
+Disallow: /
+
+User-agent: ProWebWalker
+Disallow: /
+
+User-agent: CheeseBot
+Disallow: /
+
+User-agent: LNSpiderguy
+Disallow: /
+
+User-agent: ia_archiver
+Disallow: /
+
+User-agent: ia_archiver/1.6
+Disallow: /
+
+User-agent: Teleport
+Disallow: /
+
+User-agent: TeleportPro
+Disallow: /
+
+User-agent: MIIxpc
+Disallow: /
+
+User-agent: Telesoft
+Disallow: /
+
+User-agent: Website Quester
+Disallow: /
+
+User-agent: moget/2.1
+Disallow: /
+
+User-agent: WebZip/4.0
+Disallow: /
+
+User-agent: WebStripper
+Disallow: /
+
+User-agent: WebSauger
+Disallow: /
+
+User-agent: WebCopier
+Disallow: /
+
+User-agent: NetAnts
+Disallow: /
+
+User-agent: Mister PiX
+Disallow: /
+
+User-agent: WebAuto
+Disallow: /
+
+User-agent: TheNomad
+Disallow: /
+
+User-agent: WWW-Collector-E
+Disallow: /
+
+User-agent: RMA
+Disallow: /
+
+User-agent: libWeb/clsHTTP
+Disallow: /
+
+User-agent: asterias
+Disallow: /
+
+User-agent: httplib
+Disallow: /
+
+User-agent: turingos
+Disallow: /
+
+User-agent: spanner
+Disallow: /
+
+User-agent: InfoNaviRobot
+Disallow: /
+
+User-agent: Harvest/1.5
+Disallow: /
+
+User-agent: Bullseye/1.0
+Disallow: /
+
+User-agent: Mozilla/4.0 (compatible; BullsEye; Windows 95)
+Disallow: /
+
+User-agent: Crescent Internet ToolPak HTTP OLE Control v.1.0
+Disallow: /
+
+User-agent: CherryPickerSE/1.0
+Disallow: /
+
+User-agent: CherryPickerElite/1.0
+Disallow: /
+
+User-agent: WebBandit/3.50
+Disallow: /
+
+User-agent: NICErsPRO
+Disallow: /
+
+User-agent: Microsoft URL Control - 5.01.4511
+Disallow: /
+
+User-agent: DittoSpyder
+Disallow: /
+
+User-agent: Foobot
+Disallow: /
+
+User-agent: WebmasterWorldForumBot
+Disallow: /
+
+User-agent: SpankBot
+Disallow: /
+
+User-agent: BotALot
+Disallow: /
+
+User-agent: lwp-trivial/1.34
+Disallow: /
+
+User-agent: lwp-trivial
+Disallow: /
+
+User-agent: BunnySlippers
+Disallow: /
+
+User-agent: Microsoft URL Control - 6.00.8169
+Disallow: /
+
+User-agent: URLy Warning
+Disallow: /
+
+User-agent: Wget/1.6
+Disallow: /
+
+User-agent: Wget/1.5.3
+Disallow: /
+
+User-agent: Wget
+Disallow: /
+
+User-agent: LinkWalker
+Disallow: /
+
+User-agent: cosmos
+Disallow: /
+
+User-agent: moget
+Disallow: /
+
+User-agent: hloader
+Disallow: /
+
+User-agent: humanlinks
+Disallow: /
+
+User-agent: LinkextractorPro
+Disallow: /
+
+User-agent: Offline Explorer
+Disallow: /
+
+User-agent: Mata Hari
+Disallow: /
+
+User-agent: LexiBot
+Disallow: /
+
+User-agent: Web Image Collector
+Disallow: /
+
+User-agent: The Intraformant
+Disallow: /
+
+User-agent: True_Robot/1.0
+Disallow: /
+
+User-agent: True_Robot
+Disallow: /
+
+User-agent: BlowFish/1.0
+Disallow: /
+
+User-agent: JennyBot
+Disallow: /
+
+User-agent: MIIxpc/4.2
+Disallow: /
+
+User-agent: BuiltBotTough
+Disallow: /
+
+User-agent: ProPowerBot/2.14
+Disallow: /
+
+User-agent: BackDoorBot/1.0
+Disallow: /
+
+User-agent: toCrawl/UrlDispatcher
+Disallow: /
+
+User-agent: WebEnhancer
+Disallow: /
+
+User-agent: suzuran
+Disallow: /
+
+User-agent: VCI WebViewer VCI WebViewer Win32
+Disallow: /
+
+User-agent: VCI
+Disallow: /
+
+User-agent: Szukacz/1.4 
+Disallow: /
+
+User-agent: QueryN Metasearch
+Disallow: /
+
+User-agent: Openfind data gathere
+Disallow: /
+
+User-agent: Openfind 
+Disallow: /
+
+User-agent: Xenu's Link Sleuth 1.1c
+Disallow: /
+
+User-agent: Xenu's
+Disallow: /
+
+User-agent: Zeus
+Disallow: /
+
+User-agent: RepoMonkey Bait & Tackle/v1.01
+Disallow: /
+
+User-agent: RepoMonkey
+Disallow: /
+
+User-agent: Microsoft URL Control
+Disallow: /
+
+User-agent: Openbot
+Disallow: /
+
+User-agent: URL Control
+Disallow: /
+
+User-agent: Zeus Link Scout
+Disallow: /
+
+User-agent: Zeus 32297 Webster Pro V2.9 Win32
+Disallow: /
+
+User-agent: Webster Pro
+Disallow: /
+
+User-agent: EroCrawler
+Disallow: /
+
+User-agent: LinkScan/8.1a Unix
+Disallow: /
+
+User-agent: Keyword Density/0.9
+Disallow: /
+
+User-agent: Kenjin Spider
+Disallow: /
+
+User-agent: Iron33/1.0.2
+Disallow: /
+
+User-agent: Bookmark search tool
+Disallow: /
+
+User-agent: GetRight/4.2
+Disallow: /
+
+User-agent: FairAd Client
+Disallow: /
+
+User-agent: Gaisbot
+Disallow: /
+
+User-agent: Aqua_Products
+Disallow: /
+
+User-agent: Radiation Retriever 1.1
+Disallow: /
+
+User-agent: Flaming AttackBot
+Disallow: /
+
+User-agent: Oracle Ultra Search
+Disallow: /
+
+User-agent: MSIECrawler
+Disallow: /
+
+User-agent: PerMan
+Disallow: /
+
+User-agent: searchpreview
+Disallow: /
+
+User-agent: *
+Disallow: /guestbook
+
+User-agent: Googlebot
+Disallow: /guestbook
+
+User-agent: *
+Disallow: /blacklist.txt
+
+User-agent: Googlebot
+Disallow: /blacklist.txt
+
+User-agent: *
+Disallow: /whitelist.txt
+
+User-agent: Googlebot
+Disallow: /whitelist.txt
diff --git a/0.2.1/show_bonus.php b/0.2.1/show_bonus.php
new file mode 100644 (file)
index 0000000..7e83f9b
--- /dev/null
@@ -0,0 +1,140 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/13/2004 *
+ * ===============                              Last change: 11/14/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : show_bonus.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Show ranking list for turbo-bonus                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Rankliste fuer Turbo-Bonus anzeigen              *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set this because we have no module in URI
+$GLOBALS['module'] = "show_bonus"; $CSS = 0;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+// List only rankings when script is installed
+if (defined('mxchange_installed') && (mxchange_installed))
+{
+       // Include header
+       include(PATH."inc/header.php");
+
+       if (($_GET['uid'] > 0) && ($_GET['d'] > 0) && (!empty($_GET['t'])))
+       {
+               // Set row name
+               $t = "";
+               switch ($_GET['t'])
+               {
+               case "bonusid":
+                       $t = "bonus_id";
+                       break;
+
+               case "mailid":
+                       $t = "mail_id";
+                       break;
+               }
+               if (!empty($t))
+               {
+                       // Check for data
+                       $result = SQL_QUERY_ESC("SELECT DISTINCT d.sex, d.surname, d.family, b.level, b.points
+FROM "._MYSQL_PREFIX."_user_data AS d
+RIGHT JOIN "._MYSQL_PREFIX."_bonus_turbo AS b
+ON d.userid=b.userid
+WHERE d.status='CONFIRMED' AND d.userid=%d AND b.".$t."='%s' LIMIT 1",
+ array(bigintval($_GET['uid']), bigintval($_GET['d'])), __FILE__, __LINE__);
+                       if (SQL_NUMROWS($result) == 1)
+                       {
+                               // Load data
+                               list($sex, $sname, $fname, $level, $points) = SQL_FETCHROW($result);
+
+                               // Prepare constants for the pre-template
+                               define('__SALUT'    , TRANSLATE_SEX($sex));
+                               define('__SNAME'    , $sname);
+                               define('__FNAME'    , $fname);
+                               define('__RANK'     , $level);
+                               define('__POINTS'   , $points);
+                               define('__MAILID'   , $_GET['d']);
+                               define('__RANK_ROWS', BONUS_MAKE_RANK_ROWS(bigintval($_GET['d']), $t, bigintval($_GET['uid'])));
+
+                               // Constant created within previous function which contains informations for current user's ranking position:
+                               //   __YOUR_RANKING_LINE
+
+                               // Load pre-template
+                               define('__BONUS_MSG', LOAD_TEMPLATE("show_bonus_msg", true));
+                       }
+                        else
+                       {
+                               // No data found
+                               define('__BONUS_MSG', "<FONT class=\"guest_failed\">".BONUS_SHOW_NO_DATA."</FONT>");
+                       }
+
+                       // Free memory
+                       SQL_FREERESULT($result);
+               }
+                else
+               {
+                       // Wrong type entered
+                       define('__BONUS_MSG', "<FONT class=\"guest_failed\">".BONUS_SHOW_WRONG_TYPE."</FONT>");
+               }
+       }
+        else
+       {
+               // Wrong call!
+               define('__BONUS_MSG', "<FONT class=\"guest_failed\">".BONUS_SHOW_WRONG_CALL."</FONT>");
+       }
+
+       // Load send_bonus header template (for your banners, e.g.?)
+       define('__BONUS_HEADER', LOAD_TEMPLATE("show_bonus_header", true));
+
+       // Load show_bonus footer template (for your banners, e.g.?)
+       define('__BONUS_FOOTER', LOAD_TEMPLATE("show_bonus_footer", true));
+
+       // Total ranks who can win
+       define('__BONUS_TOTAL_RANKS', $CONFIG['bonus_ranks']);
+
+       // Load final template
+       LOAD_TEMPLATE("show_bonus");
+
+       // Include footer
+       include(PATH."inc/footer.php");
+}
+ else
+{
+       // You have to configure first!
+       LOAD_URL(URL."/install.php");
+}
+// Really all done here... ;-)
+?>
diff --git a/0.2.1/templates/.htaccess b/0.2.1/templates/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/.htaccess b/0.2.1/templates/de/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/emails/add-points.tpl b/0.2.1/templates/de/emails/add-points.tpl
new file mode 100644 (file)
index 0000000..1fcfb55
--- /dev/null
@@ -0,0 +1,13 @@
+Hallo $salut $surname $family,
+
+Einer unserer Administratoren hat Ihnen soeben {!__POINTS_VALUE!} {!POINTS!} gutgeschrieben!
+
+Grund dazu war folgender:
+------------------------------
+$content
+------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin-del_links.tpl b/0.2.1/templates/de/emails/admin-del_links.tpl
new file mode 100644 (file)
index 0000000..6a5e4e5
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo $salut $surname $family,
+
+Einer unserer Administratoren hat soeben Ihre unbestaetigten Mails geloescht!
+
+------------------------------------
+Anzahl geloeschter Mails: $content
+------------------------------------
+Ihre User-ID bei uns lautet: $UID
+------------------------------------
+
+Die {!POINTS!} sind somit verloren gegangen! Bitte seien Sie bald wieder aktiver, damit unsere Klickrate nicht unnoetigt sinkt.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/admin/admin_autopurge_del_mails.tpl b/0.2.1/templates/de/emails/admin/admin_autopurge_del_mails.tpl
new file mode 100644 (file)
index 0000000..9fad078
--- /dev/null
@@ -0,0 +1,8 @@
+Hallo lieber Administrator,
+
+In Ihrem {!MT_WORD!} wurden $content Mailbuchungen von bereits geloeschten Mitgliedern entfernt!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_autopurge_delete.tpl b/0.2.1/templates/de/emails/admin/admin_autopurge_delete.tpl
new file mode 100644 (file)
index 0000000..4a0c7ea
--- /dev/null
@@ -0,0 +1,15 @@
+Hallo lieber Administrator,
+
+In Ihrem {!MT_WORD!} wurden Mitglieder geloescht, die seit {--__INACTIVE_SINCE--} Tagen nicht mehr aktiv waren!
+
+Hier alle geloeschten Mitglieder:
+--------------------------------
+$content
+--------------------------------
+
+Ihre Mitglieder wurden automatisch benachrichtigt!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_autopurge_inactive.tpl b/0.2.1/templates/de/emails/admin/admin_autopurge_inactive.tpl
new file mode 100644 (file)
index 0000000..b106432
--- /dev/null
@@ -0,0 +1,15 @@
+Hallo lieber Administrator,
+
+In Ihrem {!MT_WORD!} wurden Mitglieder gefunden, die seit {--__INACTIVE_SINCE--} Tagen nicht mehr aktiv waren! Sollten diese Mitglieder weitere {--__INACTIVE_TIME--} Tage inaktiv bleiben, werden sie automatisch geloescht!
+
+Hier alle inaktiven Mitglieder:
+--------------------------------
+$content
+--------------------------------
+
+Ihre Mitglieder wurden automatisch benachrichtigt!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_autopurge_points.tpl b/0.2.1/templates/de/emails/admin/admin_autopurge_points.tpl
new file mode 100644 (file)
index 0000000..359ab23
--- /dev/null
@@ -0,0 +1,8 @@
+Hallo lieber Administrator,
+
+Es wurden soeben $content {!POINTS!} durch die automatische Loeschung von Bestaetigungslinks in den Jackpot transferiert!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_autopurge_tsks.tpl b/0.2.1/templates/de/emails/admin/admin_autopurge_tsks.tpl
new file mode 100644 (file)
index 0000000..5516693
--- /dev/null
@@ -0,0 +1,8 @@
+Hallo lieber Administrator,
+
+In Ihrem {!MT_WORD!} wurden $content Aufgaben geloescht.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_autopurge_turbo.tpl b/0.2.1/templates/de/emails/admin/admin_autopurge_turbo.tpl
new file mode 100644 (file)
index 0000000..5ba01fd
--- /dev/null
@@ -0,0 +1,8 @@
+Hallo lieber Administrator,
+
+In Ihrem {!MT_WORD!} wurden $content veraltete Bonus-Eintraege geloescht.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_autopurge_unconfirmed.tpl b/0.2.1/templates/de/emails/admin/admin_autopurge_unconfirmed.tpl
new file mode 100644 (file)
index 0000000..52e3478
--- /dev/null
@@ -0,0 +1,15 @@
+Hallo lieber Administrator,
+
+In Ihrem {!MT_WORD!} wurden Mitglieder geloescht, die seit {--__INACTIVE_SINCE--} Tagen nicht ihre EMail-Adresse bestaetigt hatten!
+
+Hier alle geloeschten Mitglieder:
+--------------------------------
+$content
+--------------------------------
+
+Ihre Mitglieder wurden automatisch benachrichtigt!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_holiday_deactivated.tpl b/0.2.1/templates/de/emails/admin/admin_holiday_deactivated.tpl
new file mode 100644 (file)
index 0000000..24d1926
--- /dev/null
@@ -0,0 +1,30 @@
+Hallo lieber Administrator,
+
+Ein Mitglied aus Ihrem {!MT_WORD!} hat soeben seinen Urlaub beendet!
+
+------------------------------
+Die Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+Anfang des Urlaubes: {--__HOLIDAY_START--}
+------------------------------
+Ende des Urlaubes: {--__HOLIDAY_END--}
+------------------------------
+
+$content
+
+------------------------------
+
+Die Urlaubsschaltung ist somit wieder aufgehoben. Das Mitglied kann wieder Werbebuchungen durchfuehren.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_holiday_request.tpl b/0.2.1/templates/de/emails/admin/admin_holiday_request.tpl
new file mode 100644 (file)
index 0000000..61da198
--- /dev/null
@@ -0,0 +1,30 @@
+Hallo lieber Administrator,
+
+Ein Mitglied aus Ihrem {!MT_WORD!} hat soeben Urlaub beantragt!
+
+------------------------------
+Die Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+Anfang des Urlaubes: {--_START_DAY--}. {--_START_MONTH--} {--_START_YEAR--}
+------------------------------
+Ende des Urlaubes: {--_END_DAY--}. {--_END_MONTH--} {--_END_YEAR--}
+------------------------------
+
+$content
+
+------------------------------
+
+Die Urlaubsschaltung ist aktiviert und wird nach der Urlaubszeit automatisch wieder entfernt. Sie koennen die Urlaubsschaltung im Admin-Bereich jederzeit loeschen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_holiday_unlock.tpl b/0.2.1/templates/de/emails/admin/admin_holiday_unlock.tpl
new file mode 100644 (file)
index 0000000..69078a5
--- /dev/null
@@ -0,0 +1,12 @@
+Hallo lieber Administrator,
+
+Es wurden folgende Mitglieder-Account durch die Urlaubsschaltung wieder freigegeben:
+
+--------------------------------
+$content
+--------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_mydata_notify.tpl b/0.2.1/templates/de/emails/admin/admin_mydata_notify.tpl
new file mode 100644 (file)
index 0000000..26bdd4f
--- /dev/null
@@ -0,0 +1,27 @@
+{--HELLO_ADMIN--},
+
+{--ADMIN_MEMBER_CHANGED_PROFILE--}
+
+------------------------------------------
+{--MEMBER_UID--}: $UID
+------------------------------------------
+{--SEX--}: $DATA[0]
+{--SURNAME--}: $DATA[1]
+{--FAMILY_NAME--}: $DATA[2]
+{--STREET_NR--}: $DATA[3]
+{--COUNTRY--}: $DATA[4]
+{--ZIP--}: $DATA[5]
+{--CITY--}: $DATA[6]
+{--ADDY--}: $DATA[7]
+------------------------------------------
+$DATA[info]
+------------------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------------------
+
+{--ADMIN_THANX--}
+  {--YOUR--} {!MAIN_TITLE!} {--SCRIPT--}
+
+{!URL!}/admin.php
diff --git a/0.2.1/templates/de/emails/admin/admin_new_ext.tpl b/0.2.1/templates/de/emails/admin/admin_new_ext.tpl
new file mode 100644 (file)
index 0000000..b88a2cc
--- /dev/null
@@ -0,0 +1,3 @@
+<!-- Dies ist kein E-Mail Template! -->
+Sie haben eine neue Erweiterung hochgeladen. Diese muss erst noch in Ihrem {!MT_WORD!} registriert werden, damit Sie diese auch aktivieren und nutzen k&ouml;nnen.
+<!-- Dies ist kein E-Mail Template! -->
diff --git a/0.2.1/templates/de/emails/admin/admin_newsletter_request.tpl b/0.2.1/templates/de/emails/admin/admin_newsletter_request.tpl
new file mode 100644 (file)
index 0000000..01a20c8
--- /dev/null
@@ -0,0 +1,22 @@
+Hallo lieber Administrator,
+
+Ein Mitglied aus Ihrem {!MT_WORD!} hat soeben die Abbestellung Ihres Newsletters beantragt!
+
+------------------------------
+Die Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+
+Ihr Mitglied hat Ihre Kontoverbindung zugeschickt bekommen und wird bald den geforderten Betrag von {!__CHARGE_VALUE!} {!__CURRENCY!} ueberweisen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_newsletter_reset.tpl b/0.2.1/templates/de/emails/admin/admin_newsletter_reset.tpl
new file mode 100644 (file)
index 0000000..8fa9235
--- /dev/null
@@ -0,0 +1,22 @@
+Hallo lieber Administrator,
+
+Ein Mitglied aus Ihrem {!MT_WORD!} wurde zum Newsletterempfang wieder freigegeben.
+
+------------------------------
+Die Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+
+Das Mitglied wurde ebenfalls darueber in Kenntnis gesetzt! Die zugehoerige Aufgabe wurde nicht geloescht.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_payout_request.tpl b/0.2.1/templates/de/emails/admin/admin_payout_request.tpl
new file mode 100644 (file)
index 0000000..0a4862f
--- /dev/null
@@ -0,0 +1,37 @@
+Hallo lieber Administrator,
+
+Eines Ihrer Mitglieder hat soeben eine Auszahlungsanfrage an uns gesandt.
+
+----------------------------------
+----! Wichtig----! Die vom System erstellte Aufgabe muss bis zur Annahme oder Ablehnung der Auszahlung erhalten bleiben!
+----------------------------------
+
+Es hat dabei folgende Angaben gemacht:
+------------------------------
+Seine Mitglieder-ID ist: $UID
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+Auszahlungsart: {--PAYOUT_TYPE_VALUE--}
+Auszahlungshoehe: $_POST[payout]
+An Konto: $_POST[account]
+Bei Bank/Webseite: $_POST[bank]
+------------------------------
+
+Bitte ueberpruefen Sie diese Daten und ueberweisen Sie dann den geforderten Betrag.
+
+Die {--PAYOUT_POINTS_VALUE--} {!POINTS!} wurden dem Mitglied bereits abgebucht.
+
+Bitte vergessen Sie nicht, das Mitglied ueber die Auszahlung zu informieren, da dies nicht automatisch erfolgt.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_payout_request_banner.tpl b/0.2.1/templates/de/emails/admin/admin_payout_request_banner.tpl
new file mode 100644 (file)
index 0000000..0ec8b52
--- /dev/null
@@ -0,0 +1,39 @@
+Hallo lieber Administrator,
+
+Eines Ihrer Mitglieder hat soeben eine Auszahlungsanfrage an uns gesandt.
+
+----------------------------------
+----! Wichtig----! Die vom System erstellte Aufgabe muss bis zur Annahme oder Ablehnung der Auszahlung erhalten bleiben!
+----------------------------------
+
+Es hat dabei folgende Angaben gemacht:
+------------------------------
+Seine Mitglieder-ID ist: $UID
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+Auszahlungsart: {--PAYOUT_TYPE_VALUE--}
+Auszahlungshoehe: $_POST[payout]
+------------------------------
+Ziel-URL: $_POST[turl]
+Linktext: $_POST[alt]
+Banner-URL: $_POST[banner]
+------------------------------
+
+Bitte ueberpruefen Sie diese Daten und ueberweisen Sie dann den geforderten Betrag.
+
+Die {--PAYOUT_POINTS_VALUE--} {!POINTS!} wurden dem Mitglied bereits abgebucht.
+
+Bitte vergessen Sie nicht, das Mitglied ueber die Auszahlung zu informieren, da dies nicht automatisch erfolgt.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_rallye_expired.tpl b/0.2.1/templates/de/emails/admin/admin_rallye_expired.tpl
new file mode 100644 (file)
index 0000000..bde093f
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo lieber Administrator,
+
+Soeben ist eine Rallye automatisch beendet worden.
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+Es wurden bereits alle $content Gewinner informiert!
+
+Wichtige Hinweise:
+-----------------------------
+- $DATA[min_users]
+- $DATA[min_prices]
+-----------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_rallye_expired_no.tpl b/0.2.1/templates/de/emails/admin/admin_rallye_expired_no.tpl
new file mode 100644 (file)
index 0000000..c56732c
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo lieber Administrator,
+
+Soeben ist eine Rallye automatisch beendet worden.
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+Bitte informieren Sie Ihre Mitglieder nun selber:
+
+------------------------------
+$content
+------------------------------
+
+Die {!POINTS!} wurden bereits aufgebucht. Bitte nicht erneut aufbauen!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_rallye_no_notify.tpl b/0.2.1/templates/de/emails/admin/admin_rallye_no_notify.tpl
new file mode 100644 (file)
index 0000000..23f3516
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo lieber Administrator,
+
+Soeben wurde automatisch eine neue Referral-Rallye gestartet!
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+$content
+Die automatische Benachrichtigung war abgeschaltet. Bitte teilen Sie Ihren $DATA[uid_cnt] Mitgliedern mit, dass die Rallye am Laufen ist!
+------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_rallye_notify.tpl b/0.2.1/templates/de/emails/admin/admin_rallye_notify.tpl
new file mode 100644 (file)
index 0000000..be2bfa5
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo lieber Administrator,
+
+Soeben wurde automatisch eine neue Referral-Rallye gestartet!
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+$content
+Es wurden bereits alle Ihre $DATA[uid_cnt] Mitglieder informiert!
+------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_rallye_purged.tpl b/0.2.1/templates/de/emails/admin/admin_rallye_purged.tpl
new file mode 100644 (file)
index 0000000..22bf775
--- /dev/null
@@ -0,0 +1,19 @@
+Hallo lieber Administrator,
+
+Soeben ist eine Rallye automatisch aus der Datenbank entfernt worden.
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+Diese Rallye kann somit nicht mehr von Ihren Mitgliedern eingesehen werden.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_support-ordr.tpl b/0.2.1/templates/de/emails/admin/admin_support-ordr.tpl
new file mode 100644 (file)
index 0000000..5aebd73
--- /dev/null
@@ -0,0 +1,26 @@
+Hallo lieber Administrator,
+
+Ein Mitglied aus Ihrem {!MT_WORD!} hat soeben das Support-Formular ausgefuellt und hat eine Frage zum Mailversand.
+
+------------------------------
+Seine Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+
+$content
+
+------------------------------
+
+Alternativ zum direkten Mailkontakt koennen Sie sich in den Admin-Bereich einloggen und das Support-System nutzen!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_support-reflink.tpl b/0.2.1/templates/de/emails/admin/admin_support-reflink.tpl
new file mode 100644 (file)
index 0000000..1767252
--- /dev/null
@@ -0,0 +1,26 @@
+Hallo lieber Administrator,
+
+Ein Mitglied aus Ihrem {!MT_WORD!} hat soeben das Support-Formular ausgefuellt und hat eine Frage zu seinem Referral-Link.
+
+------------------------------
+Seine Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+
+$content
+
+------------------------------
+
+Alternativ zum direkten Mailkontakt koennen Sie sich in den Admin-Bereich einloggen und das Support-System nutzen!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_support-unconfirmed.tpl b/0.2.1/templates/de/emails/admin/admin_support-unconfirmed.tpl
new file mode 100644 (file)
index 0000000..90c1466
--- /dev/null
@@ -0,0 +1,26 @@
+Hallo lieber Administrator,
+
+Ein Mitglied aus Ihrem {!MT_WORD!} hat soeben das Support-Formular ausgefuellt und hat eine Frage zu seinen unbestaetigten Mails.
+
+------------------------------
+Seine Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+
+$content
+
+------------------------------
+
+Alternativ zum direkten Mailkontakt koennen Sie sich in den Admin-Bereich einloggen und das Support-System nutzen!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_transfer_ap.tpl b/0.2.1/templates/de/emails/admin/admin_transfer_ap.tpl
new file mode 100644 (file)
index 0000000..b9d6e05
--- /dev/null
@@ -0,0 +1,8 @@
+Hallo lieber Administrator,
+
+Soeben wurden $content Transfer-Eintraege aus der Datenbank automatisch geloescht!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_transfer_points.tpl b/0.2.1/templates/de/emails/admin/admin_transfer_points.tpl
new file mode 100644 (file)
index 0000000..68eea1b
--- /dev/null
@@ -0,0 +1,32 @@
+Hallo lieber Administrator,
+
+Soeben ist ein {!POINTS!}-Transfer in Ihrem {!MT_WORD!} zwischen 2 Ihrer Mitglieder durchgefuehrt worden.
+
+Hier alle Infos zum Transfer:
+------------------------------
+--  Daten des Empfaengers:  --
+------------------------------
+Mitglieder-ID: {--__RECIPIENT_UID--}
+Vollst. Name: {--__RECIPIENT_SEX--} {--__RECIPIENT_SNAME--} {--__RECIPIENT_FNAME--}
+Email-Adresse: {--__RECIPIENT_EMAIL--}
+------------------------------
+--   Daten des Absenders:   --
+------------------------------
+Mitglieder-ID: {--__SENDER_UID--}
+Vollst. Name: {--__SENDER_SEX--} {--__SENDER_SNAME--} {--__SENDER_FNAME--}
+Email-Adresse: {--__SENDER_EMAIL--}
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+Browser  : $HTTP_USER_AGENT
+------------------------------
+Verwendungszweck: {--__TRANSFER_REASON--}
+------------------------------
+Transaktionsnummer: {--__TRANS_ID--}
+------------------------------
+
+Diese beiden Mitglieder koennen sich die Ueberweisung noch {--__TRANSFER_EXPIRES--} in ihrem Mitgliedsbereich ansehen. Danach wird der Eintrag bei installierter autopurge-Erweiterung automatisch entfernt.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/admin.php
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admin/admin_wernis_request.tpl b/0.2.1/templates/de/emails/admin/admin_wernis_request.tpl
new file mode 100644 (file)
index 0000000..24cab6d
--- /dev/null
@@ -0,0 +1,35 @@
+Hallo lieber Administrator,
+
+Eines Ihrer Mitglieder hat soeben eine Auszahlungsanfrage an uns gesandt.
+
+----------------------------------
+----! Wichtig----! Die vom System erstellte Aufgabe muss bis zur Annahme oder Ablehnung der Auszahlung erhalten bleiben!
+----------------------------------
+
+Es hat dabei folgende Angaben gemacht:
+------------------------------
+Seine Mitglieder-ID ist: $UID
+------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+Auszahlungshoehe: $_POST[payout]
+An Konto: $_POST[account]
+------------------------------
+
+Bitte ueberpruefen Sie diese Daten und ueberweisen Sie dann den geforderten Betrag.
+
+Die {--WERNIS_POINTS_VALUE--} {!POINTS!} wurden dem Mitglied bereits abgebucht.
+
+Bitte vergessen Sie nicht, das Mitglied ueber die Auszahlung zu informieren, da dies nicht automatisch erfolgt.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admins/.htaccess b/0.2.1/templates/de/emails/admins/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/emails/admins/admins_mail_contct_admin.tpl b/0.2.1/templates/de/emails/admins/admins_mail_contct_admin.tpl
new file mode 100644 (file)
index 0000000..02839d5
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo lieber Administrator,
+
+ein anderer Administrator hat Ihnen soeben eine Mail geschickt!
+
+------------------------------------
+$content
+------------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admins/admins_msg_contct_admin.tpl b/0.2.1/templates/de/emails/admins/admins_msg_contct_admin.tpl
new file mode 100644 (file)
index 0000000..6e377a8
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo lieber Administrator,
+
+ein anderer Administrator hat Ihnen soeben eine Nachricht in Ihren Account geschickt!
+
+------------------------------------
+$content
+------------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admins_mail_contact_admin.tpl b/0.2.1/templates/de/emails/admins_mail_contact_admin.tpl
new file mode 100644 (file)
index 0000000..02839d5
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo lieber Administrator,
+
+ein anderer Administrator hat Ihnen soeben eine Mail geschickt!
+
+------------------------------------
+$content
+------------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admins_mail_contct_admin.tpl b/0.2.1/templates/de/emails/admins_mail_contct_admin.tpl
new file mode 100644 (file)
index 0000000..246f13a
--- /dev/null
@@ -0,0 +1 @@
+BITTE LOESCHEN----!
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admins_msg_contact_admin.tpl b/0.2.1/templates/de/emails/admins_msg_contact_admin.tpl
new file mode 100644 (file)
index 0000000..6e377a8
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo lieber Administrator,
+
+ein anderer Administrator hat Ihnen soeben eine Nachricht in Ihren Account geschickt!
+
+------------------------------------
+$content
+------------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/admins_msg_contct_admin.tpl b/0.2.1/templates/de/emails/admins_msg_contct_admin.tpl
new file mode 100644 (file)
index 0000000..246f13a
--- /dev/null
@@ -0,0 +1 @@
+BITTE LOESCHEN----!
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/back-admin.tpl b/0.2.1/templates/de/emails/back-admin.tpl
new file mode 100644 (file)
index 0000000..da267bf
--- /dev/null
@@ -0,0 +1,8 @@
+Hallo lieber Administrator,
+
+soeben wurden in Ihrem {!MT_WORD!} $POINTS {!POINTS!} aus nicht versendeten Mails in den Jackpot getan!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/back-member.tpl b/0.2.1/templates/de/emails/back-member.tpl
new file mode 100644 (file)
index 0000000..130ac60
--- /dev/null
@@ -0,0 +1,8 @@
+Hallo $salut $surname $family,
+
+Eine Buchung von Ihnen konnte nich vollstaendig ausgesendet werden. Wir haben Ihnen $POINTS {!POINTS!} wieder gutgeschrieben!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/beg/.htaccess b/0.2.1/templates/de/emails/beg/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/emails/beg/beg_di_notify.tpl b/0.2.1/templates/de/emails/beg/beg_di_notify.tpl
new file mode 100644 (file)
index 0000000..9e5b341
--- /dev/null
@@ -0,0 +1,13 @@
+Hallo $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Soeben haben wir von {!MAIN_TITLE!} die laufende Bettel-Rallye wieder angehalten. Vielleicht werden
+wir bald wieder eine neuen Bettel-Rallye starten.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/beg/beg_en_notify.tpl b/0.2.1/templates/de/emails/beg/beg_en_notify.tpl
new file mode 100644 (file)
index 0000000..f89f064
--- /dev/null
@@ -0,0 +1,27 @@
+Hallo $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Ihr Bettel-Link lautet: {!URL!}/beg.php?uid=$UID
+------------------------------
+
+Soeben haben wir von {!MAIN_TITLE!} eine Bettel-Rallye gestartet!
+
+Hier alle Infos zur Bettel-Rallye:
+------------------------------
+Minimale {!POINTS!} pro erfolgreichem Betteln: {!__BEG_MIN_POINTS!}
+------------------------------
+Maximale {!POINTS!} pro erfolgreichem Betteln: {!__BEG_MAX_POINTS!}
+------------------------------
+Maximale Gewinner dieser Bettel-Rallye: {!__BEG_MAX_WINNERS!}
+------------------------------
+IP-Sperre: {!__BEG_IP_LOCKER!}
+------------------------------
+
+Wir wuenschen Ihnen viel Erfolg in der Bettel-Rallye!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/beg/beg_en_notify_body.tpl b/0.2.1/templates/de/emails/beg/beg_en_notify_body.tpl
new file mode 100644 (file)
index 0000000..0677f04
--- /dev/null
@@ -0,0 +1,18 @@
+------------------------------
+Ihr Bettel-Link lautet: {!URL!}/beg.php?uid=$UID
+------------------------------
+
+Soeben haben wir von {!MAIN_TITLE!} eine Bettel-Rallye gestartet!
+
+Hier alle Infos zur Bettel-Rallye:
+------------------------------
+Minimale {!POINTS!} pro erfolgreichem Betteln: {!__BEG_MIN_POINTS!}
+------------------------------
+Maximale {!POINTS!} pro erfolgreichem Betteln: {!__BEG_MAX_POINTS!}
+------------------------------
+Maximale Gewinner dieser Bettel-Rallye: {!__BEG_MAX_WINNERS!}
+------------------------------
+IP-Sperre: {!__BEG_IP_LOCKER!}
+------------------------------
+
+Wir wuenschen Ihnen viel Erfolg in der Bettel-Rallye!
diff --git a/0.2.1/templates/de/emails/bonus-mail.tpl b/0.2.1/templates/de/emails/bonus-mail.tpl
new file mode 100644 (file)
index 0000000..44fe803
--- /dev/null
@@ -0,0 +1,38 @@
+Hallo $salut $surname $family,
+
+Hier kommt eine Bonus-Mail von uns zu Ihnen! :-) Weiteres zum Thema SPAM lesen Sie bitte am Ende dieser Mail.
+
+- - - - -  Werbetext-Anfang:  - - - - -
+$content
+- - - - -  Werbetext-Ende:   - - - - -
+
+----------------
+Verfallszeit: $EXPIRATION
+----------------
+Verguetung: $POINTS {!POINTS!}
+----------------
+Bestaetigungszeit: $TIME Sekunden
+----------------
+Beworbene Kategorie: $CATEGORY
+----------------
+Beworbene URL: $TARGET_URL
+----------------
+Hinweis: Angesammelte {!POINTS!} k&ouml;nnen versteigert oder verkauft werden, jedoch mu&szlig; der K&auml;ufer bei {!MAIN_TITLE!} Mitglied sein oder werden.
+
+Um Ihre {!POINTS!} gutgeschrieben zu bekommen, klicken Sie bitte auf folgenden Link:
+{!URL!}/mailid.php?uid=$UID&bonusid=$BONUSID
+
+Wichtig! Achten Sie darauf das Ihr Mailserver immer empfangbereit ist. Sollte Ihr Mailserver nicht empfangbereit sein (z.B. voll usw.), werden wir Ihren Account sperren! Sie haben nun innerhalb von 10 Tagen die m&ouml;glichkeit sich bei uns zu melden zwecks Freischaltung, erfolgt dieses nicht, wird Ihr Account gel&ouml;scht! Bei dieser Sperrung erhalten Sie von uns keine Mitteilung, sollten Sie keine Mails von uns bekommen, pr&uuml;fen Sie Ihren Account!
+----------------
+Bitte best&auml;tigen Sie diese Mail, anderfalls geht sie und die {!POINTS!} nach der evtl. angezeigten Verfallszeit verloren! Sollte keine Verfallszeit angezeigt werden, besteht sie solgange, bis wir unserem Server aufr&auml;umen!
+
+Diese Email ist kein SPAM! Sie erhalten diese Mail von unseren Mitgliedern aufgrund Ihrer Mitgliedschaft bei unserem {!MT_WORD!}-Service {!MAIN_TITLE!} ({!URL!}). Wenn Sie keine weiteren Emails empfangen m&ouml;chten, melden Sie sich bitte unter {!WEBMASTER!} mit Ihrer Mitglieder ID ab. Sie werden dann keine weiteren Mails mehr erhalten, und Ihr Account wird gel&ouml;scht.
+
+{!MAIN_TITLE!} distanziert sich von jeglichen Inhalte und Links innerhalb dieser E-Mail.
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/bonus/.htaccess b/0.2.1/templates/de/emails/bonus/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/emails/bonus/bonus_di_notify.tpl b/0.2.1/templates/de/emails/bonus/bonus_di_notify.tpl
new file mode 100644 (file)
index 0000000..a4cf9ea
--- /dev/null
@@ -0,0 +1,13 @@
+Hallo $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Soeben haben wir von {!MAIN_TITLE!} die laufende Aktiv-Rallye wieder angehalten. Vielleicht werden
+wir bald wieder eine neuen Aktiv-Rallye starten.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/bonus/bonus_en_notify.tpl b/0.2.1/templates/de/emails/bonus/bonus_en_notify.tpl
new file mode 100644 (file)
index 0000000..dfb3dfa
--- /dev/null
@@ -0,0 +1,24 @@
+Hallo $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Soeben haben wir von {!MAIN_TITLE!} eine Aktiv-Rallye gestartet!
+
+Was Sie machen koennen, um zu gewinnen:
+---------------------------------------
+- Bestaetigen Sie alle Mails, die Sie von uns bekommen!
+- Buchen Sie Mails - sofern moeglich!
+- Werben Sie neue Mitglieder! Die Werbelinks finden Sie im Mitgliedsbereich.
+- Loggen Sie sich ab und an mal ein!
+---------------------------------------
+
+Alle weiteren Infos finden Sie dazu im Mitgliedsbereich. Der Rechtsweg ist ausgeschlossen.
+
+Wir wuenschen Ihnen viel Erfolg in der Aktiv-Rallye!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/bonus/bonus_en_notify_body.tpl b/0.2.1/templates/de/emails/bonus/bonus_en_notify_body.tpl
new file mode 100644 (file)
index 0000000..48a7d55
--- /dev/null
@@ -0,0 +1,13 @@
+Soeben haben wir von {!MAIN_TITLE!} eine Aktiv-Rallye gestartet!
+
+Was Sie machen koennen, um zu gewinnen:
+---------------------------------------
+- Bestaetigen Sie alle Mails, die Sie von uns bekommen!
+- Buchen Sie Mails - sofern moeglich!
+- Werben Sie neue Mitglieder! Die Werbelinks finden Sie im Mitgliedsbereich.
+- Loggen Sie sich ab und an mal ein!
+---------------------------------------
+
+Alle weiteren Infos finden Sie dazu im Mitgliedsbereich. Der Rechtsweg ist ausgeschlossen.
+
+Wir wuenschen Ihnen viel Erfolg in der Aktiv-Rallye!
diff --git a/0.2.1/templates/de/emails/confirm-member.tpl b/0.2.1/templates/de/emails/confirm-member.tpl
new file mode 100644 (file)
index 0000000..0a78f9e
--- /dev/null
@@ -0,0 +1,17 @@
+Hallo $salut $surname $family,
+
+Sie haben soeben Ihre Email-Adresse best&auml;tigt und sind somit f&uuml;r den {!MT_WORD!} {!MAIN_TITLE!} freigeschaltet!
+
+Sie k&ouml;nnen sich nun hier einloggen:
+
+Ihre Login-ID lautet: $UID
+URL zum Login: {!URL!}/login.php
+
+f&uuml;r Ihre Anmeldung werden wir Ihnen als Willkommensgutschrift $POINTS {!POINTS!} gutschreiben, sobald Sie $CONFIG[ref_payout] Mails best&auml;tigt haben. Erst dann k&ouml;nnen Sie Mails an die anderen Mitglieder verschicken!
+
+Wir w&uuml;nschen Ihnen viel Spass und Erfolg beim Mail-Versand!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/confirm-referral.tpl b/0.2.1/templates/de/emails/confirm-referral.tpl
new file mode 100644 (file)
index 0000000..7da5f74
--- /dev/null
@@ -0,0 +1,19 @@
+Hallo $salut $surname $family,
+
+Sie haben heute ein neues Mitglied f&uuml;r unseren {!MT_WORD!} geworben!
+
+Hier sehen Sie genau, in welcher Ebene Sie ihn geworben haben:
+-----------------
+Referral-Ebene ($PERCENT%): $LEVEL
+{!POINTS!}: $POINTS
+ID des Mitgliedes: $REFID
+-----------------
+
+Sie werden nun auch weiterhin {!POINTS!} &uuml;ber diese geworbene Person erhalten.
+
+Vielen Dank f&uuml;r Ihr Mitwerben! Wir w&uuml;nschen Ihnen noch weiterhin viele neue Referrals!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/del-user.tpl b/0.2.1/templates/de/emails/del-user.tpl
new file mode 100644 (file)
index 0000000..8a476f8
--- /dev/null
@@ -0,0 +1,19 @@
+Hallo $salut $surname $family,
+
+Einer unserer Administratoren hat soeben Ihren Account geloescht!
+
+Grund der Loeschung war folgender:
+------------------------------------
+$content
+------------------------------------
+Ihre User-ID war: $UID
+------------------------------------
+
+Wir wuenschen Ihnen weiterhin noch alles Gute und koennen Sie vielleicht irgentwann einmal wieder begruessen.
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/done-admin.tpl b/0.2.1/templates/de/emails/done-admin.tpl
new file mode 100644 (file)
index 0000000..8ee3092
--- /dev/null
@@ -0,0 +1,24 @@
+Hallo lieber Administrator,
+
+Eine gebuchte Mail wurde soeben vollstaendig ausgesendet. Das werbende Mitglied wurde darueber in Kenntnis gesetzt.
+
+- - - - -  Werbetext-Anfang:  - - - - -
+$content
+- - - - -  Werbetext-Ende:   - - - - -
+
+------------------------------
+Werber: $SEND_UID
+------------------------------
+Verfallszeit: $EXPIRATION
+------------------------------
+Beworbene Kategorie: $CATEGORY
+------------------------------
+Beworbene URL: $TARGET_URL
+------------------------------
+
+Sollte diese Buchung nicht Ihren AGBs entsprechen, loggen Sie sich bitte in den Admin-Bereich ein und aendern die Mail.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/done-member.tpl b/0.2.1/templates/de/emails/done-member.tpl
new file mode 100644 (file)
index 0000000..67dbdc7
--- /dev/null
@@ -0,0 +1,28 @@
+Hallo $salut $surname $family,
+
+Ihre gebuchte Mail wurde soeben vollstaendig von unserem System versendet! Wir wuenschen Ihnen viel Erfolg mit Ihrer Werbebuchung!
+
+- - - - -  Werbetext-Anfang:  - - - - -
+$content
+- - - - -  Werbetext-Ende:   - - - - -
+
+----------------
+Werber: $SEND_UID
+----------------
+Verfallszeit: $EXPIRATION
+----------------
+Beworbene Kategorie: $CATEGORY
+----------------
+Beworbene URL: $TARGET_URL
+----------------
+
+Den weiteren Verlauf dieser Werbebuchung koennen Sie im Mitgliedsbereich unter Statistiken verfolgen!
+
+{!URL!}/login.php
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/guest/guest_request_confirm.tpl b/0.2.1/templates/de/emails/guest/guest_request_confirm.tpl
new file mode 100644 (file)
index 0000000..ede6de5
--- /dev/null
@@ -0,0 +1,13 @@
+Hallo $salut $surname $family,
+
+Sie hatten sich zu unserem {!MT_WORD!} {!MAIN_TITLE!} angemeldet und heute Ihren Best&auml;tigungslink erneut angefordert, jedoch bis jetzt noch nicht Ihre eMail-Adresse best&auml;tigt. Diesen Schritt koennen Sie jetzt nachholen, damit Sie sich einloggen koennen.
+
+Hier ist Ihr Best&auml;tigungslink:
+{!URL!}/confirm.php?hash=$HASH
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/header.tpl b/0.2.1/templates/de/emails/header.tpl
new file mode 100644 (file)
index 0000000..8820261
--- /dev/null
@@ -0,0 +1,4 @@
+X-Mailer: {!TITLE!} {!VERSION!}
+Errors-To: {!WEBMASTER!}
+X-Loop: {!WEBMASTER!}
+From: {!MAIN_TITLE!} <{!WEBMASTER!}>
diff --git a/0.2.1/templates/de/emails/lock-user.tpl b/0.2.1/templates/de/emails/lock-user.tpl
new file mode 100644 (file)
index 0000000..e04f073
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo $salut $surname $family,
+
+--------------
+Ihre User-ID bei uns: $UID
+--------------
+
+Ihr Account wurde von einem unserer Administratoren gesperrt! Bitte halten Sie sich an unsere AGBs.
+
+Grund der Sperrung war:
+--------------
+$content
+--------------
+
+Sollten Sie damit nicht einverstanden sein, so melden Sie sich bitte bei uns ({!WEBMASTER!}). Wir kommen dann in Kontakt mit Ihnen.
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/member/member_autopurge_delete.tpl b/0.2.1/templates/de/emails/member/member_autopurge_delete.tpl
new file mode 100644 (file)
index 0000000..d874552
--- /dev/null
@@ -0,0 +1,3 @@
+Automatische Loeschung Ihres Accounts wegen Inaktivitaet!
+
+Sie waren als letztes am $content aktiv!
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_autopurge_inactive.tpl b/0.2.1/templates/de/emails/member/member_autopurge_inactive.tpl
new file mode 100644 (file)
index 0000000..8fe5732
--- /dev/null
@@ -0,0 +1,19 @@
+Hallo $salut $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Sie sind seit geraumer Zeit in unserem {!MT_WORD!} nicht mehr aktiv gewesen. Sie waren seit dem $content nicht mehr eingeloggt oder haben keine Mail bestaetigt!
+
+Sollten Sie weitere {--__INACTIVE_TIME--} Tage nicht mehr aktiv sein, wird Ihr Account automatisch geloescht! Alle Ihre angesammelten {!POINTS!} gehen verloren!
+
+Unserer {!MT_WORD!} lebt davon, dass seine Mitglieder aktiv bleiben - oder Urlaub koennen Sie auch beantragen - und Mails bestaetigen. Bitte loggen Sie sich bald zu unserem {!MT_WORD!} wieder ein!
+
+Hier koennen Sie sich einloggen:
+URL: {!URL!}/login.php
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_autopurge_points.tpl b/0.2.1/templates/de/emails/member/member_autopurge_points.tpl
new file mode 100644 (file)
index 0000000..9e7c451
--- /dev/null
@@ -0,0 +1,12 @@
+Hallo $salut $surname $family,
+
+Bei der automatischen Loeschung von Bestaetigungslinks wurden Ihnen $content {!POINTS!} wieder gutgeschrieben!
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_autopurge_unconfirmed.tpl b/0.2.1/templates/de/emails/member/member_autopurge_unconfirmed.tpl
new file mode 100644 (file)
index 0000000..7e1fc4e
--- /dev/null
@@ -0,0 +1,3 @@
+Sie hatten sich vor laengerer Zeit zu unserem {!MT_WORD!} {!MAIN_TITLE!} ({!URL!}) angemeldet, aber bis heute noch nicht Ihre EMail-Adresse bestaetigt!
+
+Ihre Anmeldung ist bei uns am $content eingegangen. Ihr Account ist hier unwiederruflich geloescht!
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_beg.tpl b/0.2.1/templates/de/emails/member/member_beg.tpl
new file mode 100644 (file)
index 0000000..8d1019e
--- /dev/null
@@ -0,0 +1,14 @@
+Hallo $salut $surname $family,
+
+Bei der monatlichen Bettel-Rallye haben Sie soeben Ihre $content {!POINTS!} gewonnen!
+
+Herzlichen Glueckwunsch!
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_birthday.tpl b/0.2.1/templates/de/emails/member/member_birthday.tpl
new file mode 100644 (file)
index 0000000..4eb4869
--- /dev/null
@@ -0,0 +1,10 @@
+Hallo $salut $surname $family,
+
+Wir das Team von {!MAIN_TITLE!} wuenschen Ihnen alles Gute und Gesundheit zu Ihrem $content. Geburtstag!
+
+Diese Mail wurde automatisch versandt.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_birthday_confirm.tpl b/0.2.1/templates/de/emails/member/member_birthday_confirm.tpl
new file mode 100644 (file)
index 0000000..ac9b629
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo $salut $surname $family,
+
+Wir das Team von {!MAIN_TITLE!} wuenschen Ihnen alles Gute und Gesundheit zu Ihrem $content[age]. Geburtstag!
+
+Wenn Sie den folgenden Link anklicken, erhalten Sie $config[points] {!POINTS!} Ihrem Account sofort gutgeschrieben!
+
+----------------------------------------------------------------------
+{!URL!}/birthday_confirm.php?uid=$UID&check=$content[check]
+----------------------------------------------------------------------
+
+Diese Mail wurde automatisch versandt.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_bonus.tpl b/0.2.1/templates/de/emails/member/member_bonus.tpl
new file mode 100644 (file)
index 0000000..33ec699
--- /dev/null
@@ -0,0 +1,14 @@
+Hallo $salut $surname $family,
+
+Bei der monatlichen Aktiv-Rallye haben Sie soeben Ihre $content {!POINTS!} gewonnen!
+
+Herzlichen Glueckwunsch!
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_contct.tpl b/0.2.1/templates/de/emails/member/member_contct.tpl
new file mode 100644 (file)
index 0000000..06a1d58
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo $content[surname] $content[family],
+
+------------------------------
+Ihre Mitglied-ID lautet: $content[u_id]
+------------------------------
+
+Einer unserer Administratoren hat Ihnen folgende Nachricht zugeschickt:
+
+------------------------------------------
+$content[text]
+------------------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_doubler.tpl b/0.2.1/templates/de/emails/member/member_doubler.tpl
new file mode 100644 (file)
index 0000000..ed708a7
--- /dev/null
@@ -0,0 +1,14 @@
+Hallo $salut $surname $family,
+
+Wir haben Ihnen soeben $content[points] {!POINTS!} durch eine Verdoppelung vom $content[when] Ihrem Account gutgeschrieben!
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+Doppler-Transaktionsnummer: $content[id]
+Ihre IP-Nummer lautete: $content[ip]
+------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_holiday_activated.tpl b/0.2.1/templates/de/emails/member/member_holiday_activated.tpl
new file mode 100644 (file)
index 0000000..5caae85
--- /dev/null
@@ -0,0 +1,29 @@
+Hallo $salut $surname $family,
+
+Sie hatten bei uns Urlaub beantragt und dabei folgende Daten hinterlassen:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+Zeitpunkt Ihrer Beantragung: $content[activated] Uhr
+------------------------------
+Anfang Ihres Urlaubes: $content[start] Uhr
+------------------------------
+Ende Ihres Urlaubes: $content[end] Uhr
+------------------------------
+
+Ihre Urlaubsschaltung ist hiermit automatisch von unserem System aktiviert worden. Sie koennen jetzt
+keine Mails mehr empfangen und auch nicht mehr selber versenden! Ihren Mitgliedsbereich koennen dennoch
+weiterhin wie gewohnt aufrufen. Sollten Sie dennoch Mails empfangen, so wurden diese vor Ihrer
+Urlaubsschaltung von anderen Mitgliedern gebucht.
+
+Wir wuenschen Ihnen einen schoenen und hoffentlich auch erholsamen Urlaub und wuerden uns freuen, Sie nach Ihrem Urlaub wieder bei uns begruessen zu duerfen!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_holiday_removed.tpl b/0.2.1/templates/de/emails/member/member_holiday_removed.tpl
new file mode 100644 (file)
index 0000000..e0053a3
--- /dev/null
@@ -0,0 +1,22 @@
+Hallo $salut $surname $family,
+
+Wir haben soeben Ihren Urlaub bei uns beendet. Folgende Daten wurden uns uebermittelt:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+Anfang Ihres Urlaubes: $content[start]
+------------------------------
+Ende Ihres Urlaubes: $content[end]
+------------------------------
+
+Ihre Urlaubsschaltung ist hiermit wieder aufgehoben. Sie koennen wieder Mails buchen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!}/login.php ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_holiday_request.tpl b/0.2.1/templates/de/emails/member/member_holiday_request.tpl
new file mode 100644 (file)
index 0000000..b71a3a4
--- /dev/null
@@ -0,0 +1,28 @@
+Hallo $salut $surname $family,
+
+Sie hatten bei uns Urlaub beantragt und dabei folgende Daten hinterlassen:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+Anfang Ihres Urlaubes: {--_START_DAY--}. {--_START_MONTH--} {--_START_YEAR--}
+------------------------------
+Ende Ihres Urlaubes: {--_END_DAY--}. {--_END_MONTH--} {--_END_YEAR--}
+------------------------------
+
+$content
+
+------------------------------
+
+Ihre Urlaubsschaltung ist hiermit beantragt worden und wird zum gewuenschten Zeitpunkt aktiviert! Bis
+zum gebuchten Zeitpunkt koennen Sie jedoch weiterhin Mails empfangen und auch selber versenden - solange
+Ihr Guthaben ausreichend ist und auch genuegend Mitglieder vorhanden sind.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_holiday_unlock.tpl b/0.2.1/templates/de/emails/member/member_holiday_unlock.tpl
new file mode 100644 (file)
index 0000000..d4fb8ff
--- /dev/null
@@ -0,0 +1,26 @@
+Hallo $salut $surname $family,
+
+Ihr beantragter Urlaub ist hiermit zu Ende. Folgende Daten hatten Sie uns uebermittelt:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+Anfang Ihres Urlaubes: $content[holiday_start]
+------------------------------
+Ende Ihres Urlaubes: $content[holiday_end]
+------------------------------
+
+$content[holiday_comments]
+
+------------------------------
+
+Ihre Urlaubsschaltung ist hiermit wieder aufgehoben. Sie koennen sich wieder in Ihren Mitglieder-Account einloggen. Verwenden Sie den unten stehenden Link dazu.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!}/login.php ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_mydata_notify.tpl b/0.2.1/templates/de/emails/member/member_mydata_notify.tpl
new file mode 100644 (file)
index 0000000..d96c0c9
--- /dev/null
@@ -0,0 +1,31 @@
+{--HELLO--} $DATA[1] $DATA[2],
+
+{--MEMBER_HAVE_CHANGED_DATA--}
+
+{--YOUR_NEW_DATA--}:
+------------------------------------------
+{--SEX--}: $DATA[0]
+{--SURNAME--}: $DATA[1]
+{--FAMILY_NAME--}: $DATA[2]
+{--STREET_NR--}: $DATA[3]
+{--COUNTRY--}: $DATA[4]
+{--ZIP--}: $DATA[5]
+{--CITY--}: $DATA[6]
+{--ADDY--}: $DATA[7]
+{--PASS_1--}: $_POST[pass1]
+------------------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------------------
+
+{--PLEASE_NOTIFY_ABUSE_MYDATA--}
+
+------------------------------------------
+$DATA[info]
+------------------------------------------
+
+{--THANX--}
+  {--YOUR--} {!MAIN_TITLE!} {--TEAM--}
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/member/member_newsletter_done.tpl b/0.2.1/templates/de/emails/member/member_newsletter_done.tpl
new file mode 100644 (file)
index 0000000..cc2cfc8
--- /dev/null
@@ -0,0 +1,20 @@
+Hallo $salut $surname $family,
+
+Sie hatten bei uns die Abbestellung unseres Newsletters beantragt. Diese wurde nun durchgefuehrt. Hier sind nochmals Ihre an uns uebermittelten Daten:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+
+Sie werden automatisch um 00:00 Uhr des Folgeabends wieder zum Newsletter-Empfang freigegeben, sobald die gebuchte Zeitspanne von 1 Monat abgelaufen ist.
+
+Sie erhalten dann eine Mitteilung, dass Sie wieder den Newsletter empfangen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_newsletter_request.tpl b/0.2.1/templates/de/emails/member/member_newsletter_request.tpl
new file mode 100644 (file)
index 0000000..8df5147
--- /dev/null
@@ -0,0 +1,26 @@
+Hallo $salut $surname $family,
+
+Sie hatten bei uns die Abbestellung unseres Newsletters beantragt. Folgende Daten wurden dabei an uns uebermittelt:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+
+Bitte ueberweisen Sie {!__CHARGE_VALUE!} {!__CURRENCY!} auf folgendes Konto:
+
+-------------------------
+Kontonummer: 1234 5678 90
+BLZ: 111 111 111
+Verwendungszweck: NL-Abmeldung $UID
+-------------------------
+
+Sobald wir den geforderten Betrag auf unserem Konto sehen, werden wir den Newsletterempfang fuer Sie fuer die gebuchte Dauer deaktivieren.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_newsletter_reset.tpl b/0.2.1/templates/de/emails/member/member_newsletter_reset.tpl
new file mode 100644 (file)
index 0000000..43185a8
--- /dev/null
@@ -0,0 +1,18 @@
+Hallo $salut $surname $family,
+
+Sie hatten bei uns die Abbestellung unseres Newsletters beantragt. Die gebuchte Zeitspanne ist nun abgelaufen. Hier sind nochmals Ihre Daten:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+
+Sie wurden automatisch wieder zum Newsletter-Empfang freigegeben.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_payout_accepted.tpl b/0.2.1/templates/de/emails/member/member_payout_accepted.tpl
new file mode 100644 (file)
index 0000000..b7d5c39
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo $salut $surname $family,
+
+Sie hatten an uns {!MAIN_TITLE!} eine Auszahlungsanfrage geschickt.
+
+Wir haben folgende Daten von Ihnen per Mail erhalten:
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+
+Nachricht vom Admin:
+------------------------------
+$content
+------------------------------
+
+Ihre Anfrage wurde hiermit angenommen! Wir werden baldmoeglichst den geforderten Betrag an Ihre angegebene Kontoverbindung ueberweisen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_payout_rejected.tpl b/0.2.1/templates/de/emails/member/member_payout_rejected.tpl
new file mode 100644 (file)
index 0000000..b5264a6
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo $salut $surname $family,
+
+Sie hatten an uns {!MAIN_TITLE!} eine Auszahlungsanfrage geschickt.
+
+Wir haben folgende Daten von Ihnen per Mail erhalten:
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+
+Nachricht vom Admin:
+------------------------------
+$content
+------------------------------
+
+Ihre Anfrage wurde hiermit abgelehnt! Bitte beachten Sie unsere AGBs. Ihre {!POINTS!} werden wir gesondert zurueckbuchen oder bei schwerwiegenden Faellen uns vorbehalten, dies nicht zu tun oder Ihren Account bei uns zu sperren.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_payout_request.tpl b/0.2.1/templates/de/emails/member/member_payout_request.tpl
new file mode 100644 (file)
index 0000000..9118ca4
--- /dev/null
@@ -0,0 +1,27 @@
+Hallo $salut $surname $family,
+
+Sie hatten an uns {!MAIN_TITLE!} eine Auszahlungsanfrage geschickt.
+
+Wir haben folgende Daten von Ihnen per Mail erhalten:
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+Auszahlungsart: {--PAYOUT_TYPE_VALUE--}
+Auszahlungshoehe: $_POST[payout]
+An Konto: $_POST[account]
+Bei Bank/Webseite: $_POST[bank]
+------------------------------
+
+Die dazu noetigen {--PAYOUT_POINTS_VALUE--} haben wir Ihnen bereits abgezogen.
+
+Sobald wir Ihre Anfrage readaktionell geprueft haben und diese auch korrekt ausgefuellt wurde, werden wir die Uerberweisung dann auch taetigen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_payout_request_banner.tpl b/0.2.1/templates/de/emails/member/member_payout_request_banner.tpl
new file mode 100644 (file)
index 0000000..67017a7
--- /dev/null
@@ -0,0 +1,29 @@
+Hallo $salut $surname $family,
+
+Sie hatten an uns {!MAIN_TITLE!} eine Auszahlungsanfrage geschickt.
+
+Wir haben folgende Daten von Ihnen per Mail erhalten:
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+Auszahlungsart: {--PAYOUT_TYPE_VALUE--}
+Auszahlungshoehe: $_POST[payout]
+------------------------------
+Ziel-URL: $_POST[turl]
+Linktext: $_POST[alt]
+Banner-URL: $_POST[banner]
+------------------------------
+
+Die dazu noetigen {--PAYOUT_POINTS_VALUE--} haben wir Ihnen bereits abgezogen.
+
+Sobald wir Ihre Anfrage readaktionell geprueft haben und diese auch korrekt ausgefuellt wurde, werden wir die Uerberweisung dann auch taetigen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_rallye_expired.tpl b/0.2.1/templates/de/emails/member/member_rallye_expired.tpl
new file mode 100644 (file)
index 0000000..e02544f
--- /dev/null
@@ -0,0 +1,34 @@
+Hallo $salut $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Herzlichen Glueckwunsch, Sie haben soeben den $DATA[level]. Platz in unserer aktuellen Referal-Rallye gemacht!
+
+------------------------------
+Ihr Gewinn: $DATA[infos]
+------------------------------
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+Wir bedanken uns fuer Ihre Bemuehungen und Interesse an unserer Rallye und wuenschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
+
+Wichtige Hinweise:
+--------------------------------
+- Es werden nur aktive User gewertet. Der Rechtsweg ist ausgeschlossen.
+- $DATA[min_users]
+- $DATA[min_prices]
+--------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/member/member_rallye_expired_bronce.tpl b/0.2.1/templates/de/emails/member/member_rallye_expired_bronce.tpl
new file mode 100644 (file)
index 0000000..56fe3f0
--- /dev/null
@@ -0,0 +1,34 @@
+Hallo $salut $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Herzlichen Glueckwunsch, Sie sind der Bronze-Gewinner unserer Referal-Rallye!
+
+------------------------------
+Ihr Gewinn: $DATA[infos]
+------------------------------
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+Wir bedanken uns fuer Ihre Bemuehungen und Interesse an unserer Rallye und wuenschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
+
+Wichtige Hinweise:
+-----------------------------
+- Es werden nur aktive User gewertet. Der Rechtsweg ist ausgeschlossen.
+- $DATA[min_users]
+- $DATA[min_prices]
+-----------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/member/member_rallye_expired_gold.tpl b/0.2.1/templates/de/emails/member/member_rallye_expired_gold.tpl
new file mode 100644 (file)
index 0000000..2336e1b
--- /dev/null
@@ -0,0 +1,34 @@
+Hallo $salut $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Herzlichen Glueckwunsch, Sie sind der Gold-Gewinner unserer Referal-Rallye!
+
+------------------------------
+Ihr Gewinn: $DATA[infos]
+------------------------------
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+Wir bedanken uns fuer Ihre Bemuehungen und Interesse an unserer Rallye und wuenschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
+
+Wichtige Hinweise:
+-----------------------------
+- Es werden nur aktive User gewertet. Der Rechtsweg ist ausgeschlossen.
+- $DATA[min_users]
+- $DATA[min_prices]
+-----------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/member/member_rallye_expired_silver.tpl b/0.2.1/templates/de/emails/member/member_rallye_expired_silver.tpl
new file mode 100644 (file)
index 0000000..cdd2680
--- /dev/null
@@ -0,0 +1,34 @@
+Hallo $salut $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Herzlichen Glueckwunsch, Sie sind der Silber-Gewinner unserer Referal-Rallye!
+
+------------------------------
+Ihr Gewinn: $DATA[infos]
+------------------------------
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+
+Wir bedanken uns fuer Ihre Bemuehungen und Interesse an unserer Rallye und wuenschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
+
+Wichtige Hinweise:
+-----------------------------
+- Es werden nur aktive User gewertet. Der Rechtsweg ist ausgeschlossen.
+- $DATA[min_users]
+- $DATA[min_prices]
+-----------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/member/member_rallye_notify.tpl b/0.2.1/templates/de/emails/member/member_rallye_notify.tpl
new file mode 100644 (file)
index 0000000..974fb5c
--- /dev/null
@@ -0,0 +1,38 @@
+Hallo $surname $family,
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+
+Soeben haben wir von {!MAIN_TITLE!} eine neue Referral-Rallye gestartet!
+
+Hier alle Infos zur Rallye:
+------------------------------
+Titel: $DATA[title]
+------------------------------
+Beginn der Rallye: $DATA[start] Uhr
+Ende der Rallye: $DATA[end] Uhr
+Server-Zeit: $DATA[now_t] Uhr
+------------------------------
+$content
+Ihr Werbelink zum Werben neuer Mitglieder:
+{!URL!}/ref.php?ref=$UID
+------------------------------
+
+Weitere Werbebanner, sowie alle weiteren noetigen Daten finden Sie im Mitgliedsbereich unter *Refs-Banner* !
+
+Ihre aktuellen $DATA[refs] Referals wurden dabei nicht beruecksichtig, da Sie diese Mitglieder vor der Rallye angeworben hatten.
+
+Viel Spass beim Werben!
+
+Wichtig:
+------------------------------
+- Es werden nur aktive User gewertet. Der Rechtsweg ist ausgeschlossen.
+- $DATA[min_users]
+- $DATA[min_prices]
+------------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_stats_bonus.tpl b/0.2.1/templates/de/emails/member/member_stats_bonus.tpl
new file mode 100644 (file)
index 0000000..9d65bca
--- /dev/null
@@ -0,0 +1,22 @@
+Hallo $salut $surname $family,
+
+Sie haben soeben {--__STATS_BONUS--} {!POINTS!} auf Ihr Aktiv-Konto gutgeschrieben bekommen, da die folgende Werbebuchung 100% Klickrate erreicht hat:
+
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Betreff: $content[subject]
+------------------------------
+Wann bestellt: $content[timestamp]
+------------------------------
+Beworbene URL: $content[url]
+------------------------------
+Gebuchte Empfaenger: $content[clicks]
+------------------------------
+
+Fuer diese Werbebuchung erhalten Sie nur einmal diese Gutschrift!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_support-order.tpl b/0.2.1/templates/de/emails/member/member_support-order.tpl
new file mode 100644 (file)
index 0000000..0949af4
--- /dev/null
@@ -0,0 +1,22 @@
+Hallo $salut $surname $family,
+
+Sie hatten eine Frage zur Mailbuchung an uns gestellt. Folgendes wurde an den Support weitergeleitet:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+
+$content
+
+------------------------------
+
+Einer unserer Mitarbeiter wird sich bald bei Ihnen direkt oder per Support-System melden. In beiden Faelllen erhalten Sie eine Mail!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_support-ordr.tpl b/0.2.1/templates/de/emails/member/member_support-ordr.tpl
new file mode 100644 (file)
index 0000000..0949af4
--- /dev/null
@@ -0,0 +1,22 @@
+Hallo $salut $surname $family,
+
+Sie hatten eine Frage zur Mailbuchung an uns gestellt. Folgendes wurde an den Support weitergeleitet:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+
+$content
+
+------------------------------
+
+Einer unserer Mitarbeiter wird sich bald bei Ihnen direkt oder per Support-System melden. In beiden Faelllen erhalten Sie eine Mail!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_support-reflink.tpl b/0.2.1/templates/de/emails/member/member_support-reflink.tpl
new file mode 100644 (file)
index 0000000..c91ad79
--- /dev/null
@@ -0,0 +1,22 @@
+Hallo $salut $surname $family,
+
+Sie hatten eine Frage zu Ihrem Referal-Link uns gestellt. Folgendes wurde an den Support weitergeleitet:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+
+$content
+
+------------------------------
+
+Einer unserer Mitarbeiter wird sich bald bei Ihnen direkt oder per Support-System melden. In beiden Faelllen erhalten Sie eine Mail!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_support-unconfirmed.tpl b/0.2.1/templates/de/emails/member/member_support-unconfirmed.tpl
new file mode 100644 (file)
index 0000000..3208dfd
--- /dev/null
@@ -0,0 +1,22 @@
+Hallo $salut $surname $family,
+
+Sie hatten uns wegen Ihrer unbestaetigten Mails kontaktiert. Folgendes wurde an den Support weitergeleitet:
+
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+E-Mail Adresse: $email
+------------------------------
+Vor-, Nachname: $salut $surname $family
+------------------------------
+
+$content
+
+------------------------------
+
+Einer unserer Mitarbeiter wird sich bald bei Ihnen direkt oder per Support-System melden. In beiden Faelllen erhalten Sie eine Mail!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_transfer_recipient.tpl b/0.2.1/templates/de/emails/member/member_transfer_recipient.tpl
new file mode 100644 (file)
index 0000000..c82e1b4
--- /dev/null
@@ -0,0 +1,23 @@
+Hallo $salut $surname $family,
+
+Sie haben soeben eine {!POINTS!}-Ueberweisung von einem unserer Mitglieder erhalten!
+
+Hier sind nochmals alle Transaktionsdaten:
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+--   Daten des Absenders:   --
+------------------------------
+Mitglieder-ID: {--__SENDER_UID--}
+------------------------------
+Verwendungszweck: {--__TRANSFER_REASON--}
+------------------------------
+Transaktionsnummer: {--__TRANS_ID--}
+------------------------------
+
+Sie koennen diese Transaktion {--__TRANSFER_EXPIRES--} noch im Mitgliedsbereich unter "{!POINTS!}-Transfer" nachvollziehen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_transfer_sender.tpl b/0.2.1/templates/de/emails/member/member_transfer_sender.tpl
new file mode 100644 (file)
index 0000000..11d40b5
--- /dev/null
@@ -0,0 +1,23 @@
+Hallo $salut $surname $family,
+
+Sie haben soeben eine {!POINTS!}-Ueberweisung an eines unserer Mitglieder abgeschlossen!
+
+Hier sind nochmals alle Transaktionsdaten:
+------------------------------
+Ihr Mitglieder-ID ist: $UID
+------------------------------
+--  Daten des Empfaengers:  --
+------------------------------
+Mitglieder-ID: {--__RECIPIENT_UID--}
+------------------------------
+Verwendungszweck: {--__TRANSFER_REASON--}
+------------------------------
+Transaktionsnummer: {--__TRANS_ID--}
+------------------------------
+
+Sie koennen diese Transaktion {--__TRANSFER_EXPIRES--} noch im Mitgliedsbereich unter "{!POINTS!}-Transfer" nachvollziehen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_wernis_accepted.tpl b/0.2.1/templates/de/emails/member/member_wernis_accepted.tpl
new file mode 100644 (file)
index 0000000..b7d5c39
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo $salut $surname $family,
+
+Sie hatten an uns {!MAIN_TITLE!} eine Auszahlungsanfrage geschickt.
+
+Wir haben folgende Daten von Ihnen per Mail erhalten:
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+
+Nachricht vom Admin:
+------------------------------
+$content
+------------------------------
+
+Ihre Anfrage wurde hiermit angenommen! Wir werden baldmoeglichst den geforderten Betrag an Ihre angegebene Kontoverbindung ueberweisen.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_wernis_rejected.tpl b/0.2.1/templates/de/emails/member/member_wernis_rejected.tpl
new file mode 100644 (file)
index 0000000..b5264a6
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo $salut $surname $family,
+
+Sie hatten an uns {!MAIN_TITLE!} eine Auszahlungsanfrage geschickt.
+
+Wir haben folgende Daten von Ihnen per Mail erhalten:
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+
+Nachricht vom Admin:
+------------------------------
+$content
+------------------------------
+
+Ihre Anfrage wurde hiermit abgelehnt! Bitte beachten Sie unsere AGBs. Ihre {!POINTS!} werden wir gesondert zurueckbuchen oder bei schwerwiegenden Faellen uns vorbehalten, dies nicht zu tun oder Ihren Account bei uns zu sperren.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/member/member_wernis_request.tpl b/0.2.1/templates/de/emails/member/member_wernis_request.tpl
new file mode 100644 (file)
index 0000000..235e402
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo $salut $surname $family,
+
+Sie hatten an uns {!MAIN_TITLE!} eine Auszahlungsanfrage geschickt.
+
+Wir haben folgende Daten von Ihnen per Mail erhalten:
+------------------------------
+Ihre Mitglied-ID lautet: $UID
+------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+------------------------------
+Auszahlungshoehe: $_POST[payout]
+An Konto: $_POST[account]
+------------------------------
+
+Die dazu noetigen {--WERNIS_POINTS_VALUE--} {!POINTS!} haben wir Ihnen bereits abgezogen.
+
+Sie sollten soeben eine Aufbuchung auf Ihrem WDS66-Hauptaccount erhalten haben!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/new-pass.tpl b/0.2.1/templates/de/emails/new-pass.tpl
new file mode 100644 (file)
index 0000000..7420649
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo $salut $surname $family,
+
+Sie oder ein anderes Mitglied ($REMOTE) haben soben ein neues Passwort angefordert. Hier ist Ihr neues Passwort:
+
+------------------
+Ihre Login-ID lautet: $UID / Nickname: $nick
+Neues Passwort: $PASS
+Sie k&ouml;nnen sich nun hier einloggen:: {!URL!}/login.php
+------------------
+
+Sollten Sie dies nicht gewesen sein, so melden Sie sich bitte bei uns!
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/newsletter.tpl b/0.2.1/templates/de/emails/newsletter.tpl
new file mode 100644 (file)
index 0000000..0be4343
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo $salut $surname $family,
+
+--------------
+Ihre User-ID bei uns: $UID
+--------------
+
+Sie erhalten diesen Newsletter von uns, weil Sie Mitglied bei unserem {!MT_WORD!}-Dienst {!MAIN_TITLE!} ({!URL!}) sind. Dies ist somit kein Spam! Eine Abmeldemoeglichkeit finden Sie am Ende dieses Newsletters.
+
+$content
+
+Moechten Sie keine weiteren Newsletter mehr von uns erhalten, melden Sie sich bitte bei uns ({!WEBMASTER!}) und wir loeschen dann Ihren Account bei uns.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/newsletter_html.tpl b/0.2.1/templates/de/emails/newsletter_html.tpl
new file mode 100644 (file)
index 0000000..2c82f29
--- /dev/null
@@ -0,0 +1,16 @@
+Hallo $salut $surname $family,
+
+--------------
+Ihre User-ID bei uns: $UID
+--------------
+
+Sie erhalten diesen Newsletter von uns, weil Sie Mitglied bei unserem {!MT_WORD!}-Dienst {!MAIN_TITLE!} ({!URL!}) sind. Dies ist somit kein Spam! Eine Abmeldem&ouml;glichkeit finden Sie am Ende dieses Newsletters.
+
+$content
+
+M&ouml;chten Sie keine weiteren Newsletter mehr von uns erhalten, melden Sie sich bitte bei uns ({!WEBMASTER!}) und wir l&ouml;schen dann Ihren Account bei uns.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/normal-mail.tpl b/0.2.1/templates/de/emails/normal-mail.tpl
new file mode 100644 (file)
index 0000000..b85ee1b
--- /dev/null
@@ -0,0 +1,38 @@
+Hallo $salut $surname, $family,
+
+Hier kommt eine weitere Mail von einem unserer Mitglieder zu Ihnen! :-) Weiteres zum Thema SPAM lesen Sie bitte am Ende dieser Mail.
+
+- - - - -  Werbetext-Anfang:  - - - - -
+$content
+- - - - -  Werbetext-Ende:   - - - - -
+
+----------------
+Werber: $SEND_UID
+----------------
+Verfallszeit: $EXPIRATION
+----------------
+Beworbene Kategorie: $CATEGORY
+----------------
+Wartezeit: $TIME Sekunden
+----------------
+Beworbene URL: $TARGET_URL
+----------------
+Hinweis: Angesammelte {!POINTS!} k&ouml;nnen versteigert oder verkauft werden, jedoch mu&szlig; der K&auml;ufer bei {!MAIN_TITLE!} Mitglied sein oder werden.
+
+Um Ihre $POINTS {!POINTS!} gutgeschrieben zu bekommen, klicken Sie bitte auf folgenden Link:
+{!URL!}/mailid.php?uid=$UID&mailid=$MAILID
+
+Wichtig! Achten Sie darauf das Ihr Mailserver immer empfangbereit ist. Sollte Ihr Mailserver nicht empfangbereit sein (z.B. voll usw.), werden wir Ihren Account sperren! Sie haben nun innerhalb von 10 Tagen die m&ouml;glichkeit sich bei uns zu melden zwecks Freischaltung, erfolgt dieses nicht, wird Ihr Account gel&ouml;scht! Bei dieser Sperrung erhalten Sie von uns keine Mitteilung, sollten Sie keine Mails von uns bekommen, pr&uuml;fen Sie Ihren Account!
+----------------
+Bitte best&auml;tigen Sie diese Mail, anderfalls geht sie und die {!POINTS!} nach der evtl. angezeigten Verfallszeit verloren! Sollte keine Verfallszeit angezeigt werden, besteht sie solgange, bis wir unserem Server aufr&auml;umen!
+
+Diese Email ist kein SPAM! Sie erhalten diese Mail von unseren Mitgliedern aufgrund Ihrer Mitgliedschaft bei unserem {!MT_WORD!}-Service {!MAIN_TITLE!} ({!URL!}). Wenn Sie keine weiteren Emails empfangen m&ouml;chten, melden Sie sich bitte unter {!WEBMASTER!} mit Ihrer Mitglieder ID ab. Sie werden dann keine weiteren Mails mehr erhalten, und Ihr Account wird gel&ouml;scht.
+
+{!MAIN_TITLE!} distanziert sich von jeglichen Inhalte und Links innerhalb dieser E-Mail.
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/order-accept.tpl b/0.2.1/templates/de/emails/order-accept.tpl
new file mode 100644 (file)
index 0000000..7613e65
--- /dev/null
@@ -0,0 +1,18 @@
+Hallo $salut $surname, $family,
+
+Einer unserer Administratoren hat soeben Ihre Mailbuchung freigegeben. Sie wird von unserem System automatisch versendet! Bitte beachten Sie, dass dies ggf. zeitversetzt zu dieser Mail versendet wird. Hier sind nochmals URL und Betreff Ihrer Mailbuchung:
+
+-----------------------------
+Beworbene URL: $TARGET_URL
+-----------------------------
+Betreffzeile: $SUBJECT
+-----------------------------
+
+Sie koennen den Versand-Fortschritt im Mitgliedsmenue unter "Unbestaetigte Mails" verfolgen. Sobald die Mail vollstaendig versendet wurde, erhalten Sie eine weitere Mail!
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/order-admin.tpl b/0.2.1/templates/de/emails/order-admin.tpl
new file mode 100644 (file)
index 0000000..4a975f9
--- /dev/null
@@ -0,0 +1,34 @@
+Hallo lieber Administrator
+
+Ein Mitglied hat soeben eine Mailbuchung durchgef&uuml;hrt!
+
+Seine Buchung befindet sich nun im Sende-Pool und wird automatisch in $BLOCKS-Mail-Bloecken versand.
+
+Hier sind nochmals seine Daten, gebuchter Text und URL zur Verifizierung:
+------------------------------------------------
+Anrede: $salut
+Vorname: $surname
+Nachname: $family
+Email-Adresse: $email
+Gebuchte Kategorie: $CATEGORY
+Gebuchter Payment-Typ: $PAYMENT
+Betreffzeile in den Mails: $SUBJECT
+Gebuchte URL: $TARGET_URL
+------------------------------------
+IP-Nummer: $REMOTE_ADDR
+------------------------------------
+Browser: $HTTP_USER_AGENT
+------------------------------------------------
+
+------------------------------------------------
+$content
+------------------------------------------------
+
+Sie werden bald nochmals benachrichtig, sobald der Versand vollstaendig beendet wurde.
+
+{--ADMIN_AUTOSEND--}
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/order-deleted.tpl b/0.2.1/templates/de/emails/order-deleted.tpl
new file mode 100644 (file)
index 0000000..359dcf2
--- /dev/null
@@ -0,0 +1,17 @@
+Hallo $salut $surname $family,
+
+Einer unserer Administratoren hat soeben Ihre Mailbuchung geloescht. Hier sind nochmals Ihre URL und Betreff Ihrer Mailbuchung:
+
+---------------
+Beworbene URL: $TARGET_URL
+Betreffzeile: $SUBJECT
+---------------
+
+Ihre Mailbuchung wurde somit gel&ouml;scht. Sollten Sie Fragen hierzu haben, so wenden Sie sich bitte an unseren Support.
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/order-member.tpl b/0.2.1/templates/de/emails/order-member.tpl
new file mode 100644 (file)
index 0000000..44b88ea
--- /dev/null
@@ -0,0 +1,26 @@
+Hallo $salut $surname $family,
+
+Ihre Mailbuchung befindet sich derzeit in Warteschleife und wird bald ausgesendet!
+
+Hier sind nochmals Ihre Daten aus dem Buchungsformular:
+------------------------------------------------
+Gebuchte Kategorie: $CATEGORY
+Gebuchter Payment-Typ: $PAYMENT
+Betreffzeile in den Mails: $SUBJECT
+Gebuchte URL: $TARGET_URL
+------------------------------------------------
+
+------------------------------------------------
+$content
+------------------------------------------------
+
+Sobald Ihre Mailbuchung vollst&auml;ndig gesendet wurde, erhalten Sie eine zweite Mail! Sie k&ouml;nnen bereits eine weitere Mailbuchung durchf&uuml;hren!
+
+{--MEMBER_AUTOSEND--}
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/order-reject.tpl b/0.2.1/templates/de/emails/order-reject.tpl
new file mode 100644 (file)
index 0000000..e533bde
--- /dev/null
@@ -0,0 +1,17 @@
+Hallo $salut $surname $family,
+
+Einer unserer Administratoren hat soeben Ihre Mailbuchung abgelehnt. Bite beachten Sie unsere AGBs! Bei weiteren Verstoessen gegen unsere AGBs werden wir Ihre URL und ggf. auch Ihren Account sperren. Hier sind nochmals Ihre URL und Betreff Ihrer Mailbuchung:
+
+-----------------------------
+Beworbene URL: $TARGET_URL
+Betreffzeile: $SUBJECT
+-----------------------------
+
+Ihre Mailbuchung wurde somit gel&ouml;scht. Sollten Sie Fragen hierzu haben, so wenden Sie sich bitte an unseren Support.
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/profile-updte.tpl b/0.2.1/templates/de/emails/profile-updte.tpl
new file mode 100644 (file)
index 0000000..b98088e
--- /dev/null
@@ -0,0 +1,24 @@
+Hallo $salut $surname $family,
+
+Haben Sie Neuigkeiten fuer uns?
+
+Sie hatten sich vor laengerer Zeit zu unserem {!MT_WORD!}-Service {!MAIN_TITLE!} angemeldet. Dabei haben Sie persoenliche Daten, wie Ihre komplette Anschrift usw. angegeben. Sind Sie vielleicht mittlerweile umngezogen oder haben geheiratet und haben einen anderen Namen? Oder moechten Sie vielleicht aus der einen oder anderen Kategorie noch Mails empfangen?
+
+Bitte loggen Sie sich zu unserem {!MT_WORD!}-System ein und aktualisieren Sie Ihre Daten!
+
+------------------
+Ihre User-ID war: $UID
+------------------
+Angemeldet seit: $DATA[6]
+------------------
+Letzte Profilaenderung: $DATA[5]
+------------------
+
+Sollten Sie diese Mail irrtuemlich erhalten haben, weil sich bei Ihnen nichts geaendert hat, bitten wir Sie dies zu entschuldigen und sich dennoch einmal einzuloggen und auf "Benachrichtigung abschalten" zu klicken.
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!}/login.php ({!WEBMASTER!})
diff --git a/0.2.1/templates/de/emails/register-admin.tpl b/0.2.1/templates/de/emails/register-admin.tpl
new file mode 100644 (file)
index 0000000..bc6328d
--- /dev/null
@@ -0,0 +1,26 @@
+Hallo lieber Administrator,
+
+Ein Gast hat sich soeben bei uns angemeldet.
+
+Hier sind zur &Uuml;berpr&uuml;fung nochmals seine pers&ouml;nlichen Daten:
+-------------------------
+Anrede: $content[salut]
+Vorname: $content[surname]
+Nachname: $content[family]
+Stra&szlig;e und Hausnummer: $content[street]
+L&auml;ndercode: $content[country]
+Postleitzahl: $content[zip]
+Wohnort: $content[city]
+Email-Adresse: $content[email]
+Geburtsdatum: $content[birthday]
+-------------------------
+IP-Nummer: $REMOTE_ADDR
+Browser: $HTTP_USER_AGENT
+-------------------------
+Geworben von: $content[refid]
+-------------------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Script
+
+{!URL!}/modules.php?module=admin&action=login
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/register-member.tpl b/0.2.1/templates/de/emails/register-member.tpl
new file mode 100644 (file)
index 0000000..e5a6f4e
--- /dev/null
@@ -0,0 +1,36 @@
+Hallo $content[salut] $content[surname] $content[family],
+
+vielen Dank, dass Sie sich f&uuml;r unseren {!MT_WORD!} entschieden haben! Sollten Sie dies nicht gewesen sein, so melden Sie sich bitte bei uns!
+
+Hier sind nochmals zur &Uuml;berpr&uuml;fung Ihre pers&ouml;nlichen Daten:
+-----------------------------------------------
+Anrede: $content[salut]
+Vorname: $content[surname]
+Nachname: $content[family]
+Stra&szlig;e und Hausnummer: $content[street]
+L&auml;ndercode: $content[country]
+Postleitzahl: $content[zip]
+Wohnort: $content[city]
+Email-Adresse: $content[email]
+Geburtsdatum: $content[birthday]
+-----------------------------------------------
+Ihr Passwort: $content[pass]
+-----------------------------------------------
+Geworben von: $content[refid]
+-----------------------------------------------
+
+Hier ist Ihr pers&ouml;nlicher Referral-Link, mit dem Sie bereits jetzt schon neue Mitglieder werben k&ouml;nnen:
+
+{!URL!}/ref.php?refid=$content[uid]
+
+Bevor Sie sich jedoch in den Mitgliesbereich einloggen k&ouml;nnen, m&uuml;ssen Sie noch Ihre Email-Adresse best&auml;tigen. Im Mitgliedsbereich finden Sie dann auch weitere Verlinkungsm&ouml;glichkeiten. Kopieren Sie dazu folgenden Link in die Adresszeile Ihres Browsers oder klicken Sie auf diesen einfach drauf.
+
+Ihr Best&auml;tigungslink:
+{!URL!}/confirm.php?hash=$content[hash]
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/sub-points.tpl b/0.2.1/templates/de/emails/sub-points.tpl
new file mode 100644 (file)
index 0000000..a7e2d8f
--- /dev/null
@@ -0,0 +1,13 @@
+Hallo $salut $surname $family,
+
+Einer unserer Administratoren hat Ihnen soeben {!__POINTS_VALUE!} {!POINTS!} abgezogen!
+
+Grund dazu war folgender:
+----------------
+$content
+----------------
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/emails/unlock-user.tpl b/0.2.1/templates/de/emails/unlock-user.tpl
new file mode 100644 (file)
index 0000000..ab2492d
--- /dev/null
@@ -0,0 +1,24 @@
+Hallo $salut $surname $family,
+
+Einer unserer Administratoren hat soeben Ihren Account wieder freigeben! Sie koennen sich nun wieder unter folgender URL einloggen:
+
+---------------------------
+User-ID : $UID
+Adresse : {!URL!}/login.php
+---------------------------
+
+Sollten Sie Ihr Passwort vergessen haben, geben Sie bitte unten die User-ID $UID und die Email-Adresse ein, an der diese Mail geschickt wurde.
+
+Nachricht vom Admin:
+---------------------------
+$content
+---------------------------
+
+Bitte beachten Sie beim naechsten Mal auf unsere AGBs, damit Ihnen diese Unangenehmlichkeiten erspart bleiben.
+
+Vielen Dank.
+
+Mit freundlichem Gruss,
+  Ihr {!MAIN_TITLE!} Team
+
+{!URL!} ({!WEBMASTER!})
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/.htaccess b/0.2.1/templates/de/html/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/admin/.htaccess b/0.2.1/templates/de/html/admin/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/admin/admin_add_bank_package.tpl b/0.2.1/templates/de/html/admin/admin_add_bank_package.tpl
new file mode 100644 (file)
index 0000000..b1a5ee7
--- /dev/null
@@ -0,0 +1,151 @@
+<FORM
+       action="{--URL--}/modules.php?module=admin&amp;what=add_bank_package"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2" height="30" colspan="3" align="center">
+               <STRONG>{--ADMIN_ADD_BANK_PACKAGE_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350">{--ADMIN_BANK_PACKAGE_TITLE--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="240"><INPUT class="admin_normal" type="text"
+                       name="title" size="28" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" valign="top" style="padding-top: 2px">
+               {--ADMIN_BANK_PACKAGE_DESCRIPTION--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><TEXTAREA class="admin_normal" name="description" rows="5"
+                       cols="28"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" valign="top" style="padding-top: 2px">
+               {--ADMIN_BANK_PACKAGE_ACCOUNT_FEE--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="text" name="account_fee"
+                       size="8" maxlength="20" value="0,00000"> {--POINTS--}</TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_BANK_PACKAGE_FREE_TRANSFERS--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="text" name="free_transfers"
+                       size="4" maxlength="20" value="0"></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_BANK_PACKAGE_OUTPUT_MODE--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SELECT class="admin_select" name="output_system_mode"
+                       size="1">
+                       <OPTION value="LOGIN">{--BANK_OUTPUT_MODE_LOGIN--}</OPTION>
+                       <OPTION value="EMAIL">{--BANK_OUTPUT_MODE_EMAIL--}</OPTION>
+                       <OPTION value="DISABLED">{--BANK_OUTPUT_MODE_DISABLED--}</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_BANK_PACKAGE_FREE_MONTHS_FEE--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="text"
+                       name="free_months_no_fee" size="3" maxlength="20" value="0">
+               {--_MONTHS--}</TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_BANK_PACKAGE_INTEREST_PLUS--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="text" name="interest_plus"
+                       size="4" maxlength="10" value="0,00"> %</TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_BANK_PACKAGE_INTEREST_MINUS--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="text" name="interest_minus"
+                       size="4" maxlength="10" value="0,00"> %</TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_BANK_PACKAGE_FIRST_PAYMENT--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="text" name="first_payment"
+                       size="4" maxlength="20" value="1,00"> {--POINTS--}</TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_BANK_PACKAGE_FREE_ACCOUNT_INCOME--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="text"
+                       name="free_account_income" size="4" maxlength="20" value="0,00">
+               {--POINTS--}</TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" valign="top" style="padding-top: 2px">
+               {--ADMIN_BANK_PACKAGE_FREE_ACCOUNT_STUFF--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><TEXTAREA class="admin_normal" name="free_account_stuff"
+                       rows="5" cols="28"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_BANK_PACKAGE_TAN_LOCK--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="text" name="tan_lock"
+                       size="4" maxlength="20" value="0"></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" valign="top" style="padding-top: 2px">
+               {--ADMIN_BANK_PACKAGE_ACTIVE--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT class="admin_normal" type="radio"
+                       name="package_active" value="Y" default checked>&nbsp;{--YES--}<BR />
+               <INPUT class="admin_normal" type="radio" name="package_active"
+                       value="N">&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" class="admin_submit" name="ok"
+                       value="{--ADMIN_ADD_BANK_PACKAGE--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--ADMIN_BANK_FOOTER_NOTE--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_add_banner.tpl b/0.2.1/templates/de/html/admin/admin_add_banner.tpl
new file mode 100644 (file)
index 0000000..45dcd60
--- /dev/null
@@ -0,0 +1,49 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=refbanner"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="410">
+       <TR>
+               <TD class="admin_title bottom2" colspan="3" align="center" height="30">
+               <STRONG>{--ADMIN_ADD_BANNER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="200">{--ADMIN_ENTER_BANNER_URL--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="200"><INPUT type="text" name="url"
+                       class="admin_normal" size="20" maxlength="355" value="http://">
+               </TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="200">{--ADMIN_ENTER_ALTERNATE_TEXT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="alternate" class="admin_normal"
+                       size="20" maxlength="355" value="{!MAIN_TITLE!}"></TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="200">{--ADMIN_SELECT_BANNER_ACTIVE--}</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><SELECT name="visible" size="1" class="admin_select">
+                       <OPTION value="Y">{--YES--}</OPTION>
+                       <OPTION value="N">{--NO--}</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--ADMIN_SUBMIT_BANNER--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_add_cat.tpl b/0.2.1/templates/de/html/admin/admin_add_cat.tpl
new file mode 100644 (file)
index 0000000..b1f7b08
--- /dev/null
@@ -0,0 +1,62 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_cats"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2 seperator" width="10" height="30">&nbsp;</TD>
+               <TD class="admin_title bottom2" align="center" colspan="3"><STRONG>{--ADD_NEW_CATEGORY--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="7" colspan="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200"><STRONG>{--ENTER_CATNAME--}:</STRONG>
+               </TD>
+               <TD class="seperator" width="7">&nbsp;</TD>
+               <TD><INPUT type="text" name="catname" size="30" maxlength="255"
+                       class="admin_normal"></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="7" colspan="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200"><STRONG>{--SELECT_PARENT--}</STRONG>
+               </TD>
+               <TD class="seperator" width="7">&nbsp;</TD>
+               <TD><SELECT name="parent" size="1" class="admin_select">
+                       {--CATS--}
+                       <OPTION value="-1">{--IS_TOP_CATEGORY--}</OPTION>
+               </SELECT></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="7" colspan="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200"><STRONG>{--CAT_IS_VISIBLE--}</STRONG>
+               </TD>
+               <TD class="seperator" width="7">&nbsp;</TD>
+               <TD>{--YES--}: <INPUT type="radio" name="visible" value="Y"
+                       class="admin_normal" checked>&nbsp;&nbsp; {--NO--}: <INPUT
+                       type="radio" name="visible" value="N" class="admin_normal"></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="7" colspan="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" align="center" colspan="3"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="add" class="admin_submit"
+                       value="{--ADD_NEW_CAT--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_add_country.tpl b/0.2.1/templates/de/html/admin/admin_add_country.tpl
new file mode 100644 (file)
index 0000000..33639c9
--- /dev/null
@@ -0,0 +1,58 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_country"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="430">
+       <TR>
+               <TD class="admin_title bottom2" width="10" height="30">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--ADMIN_ADD_COUNTRY_CODE--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="300">{--ADMIN_ENTER_COUNTRY_CODE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="100"><INPUT type="text" name="code"
+                       class="admin_normal" size="2" maxlength="2"></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200">{--ADMIN_ENTER_COUNTRY_NAME--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="descr" class="admin_normal"
+                       size="10" maxlength="255"></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200">{--ADMIN_COUNTRY_CODE_ACTIVE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><SELECT name="is_active" size="1" class="admin_select">
+                       <OPTION value="Y">{--YES--}</OPTION>
+                       <OPTION value="N">{--NO--}</OPTION>
+               </SELECT></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="add" class="admin_submit"
+                       value="{--ADD_COUNTRY--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_add_max.tpl b/0.2.1/templates/de/html/admin/admin_add_max.tpl
new file mode 100644 (file)
index 0000000..423bcb8
--- /dev/null
@@ -0,0 +1,51 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_email"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD colspan="5" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--ADMIN_ADD_MAX_VALUE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD colspan="3" align="center">{--MAX_RECEIVE--}</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right">{--ENTER_MAX_VALUE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="max" class="admin_normal" size="5"
+                       maxlength="5" value=""></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right">{--ENTER_MAX_COMMENT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="comment" class="admin_normal"
+                       size="10" maxlength="255" value=""></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" colspan="5" height="14">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="add_max" class="admin_submit"
+                       value="{--ADD_MAX_RECEIVE--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_add_payment.tpl b/0.2.1/templates/de/html/admin/admin_add_payment.tpl
new file mode 100644 (file)
index 0000000..9869fce
--- /dev/null
@@ -0,0 +1,56 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=payments&do=add"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="410">
+       <TR>
+               <TD class="admin_title bottom2" colspan="3" align="center" height="30">
+               <STRONG>{--ADD_NEW_PAYMENT--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="200">{--ENTER_PAY_TIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="200"><INPUT type="text" name="t_wait"
+                       class="admin_normal" size="3" maxlength="3">&nbsp;{--SECS--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_PAY_PAYMENT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="payment" class="admin_normal"
+                       size="3" maxlength="3">&nbsp;{!POINTS!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_PAY_PRICE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="price" class="admin_normal" size="3"
+                       maxlength="3">&nbsp;{!POINTS!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_PAY_TITLE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="title" class="admin_normal"
+                       size="15" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--ADD_PAYMENT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_add_points.tpl b/0.2.1/templates/de/html/admin/admin_add_points.tpl
new file mode 100644 (file)
index 0000000..5d90196
--- /dev/null
@@ -0,0 +1,49 @@
+
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=add_points&amp;u_id={!__UID_VALUE!}"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD class="admin_title seperator" height="10" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_title" colspan="3" align="center">
+               {--ADMIN_ADD_POINTS_TO_USER--}:<BR>
+               <STRONG>{!__USER_VALUE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="admin_title seperator bottom2" height="10" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_POINTS_ADD--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="points" size="6" maxlength="7"
+                       class="admin_normal"></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_ADD_REASON--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><TEXTAREA name="reason" class="admin_normal" rows="5"
+                       cols="20"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" class="admin_submit" name="ok"
+                       value="{--ADMIN_ADD_POINTS--}"></TD>
+       </TR>
+       <TR>
+               <TD height="10" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_add_points_all.tpl b/0.2.1/templates/de/html/admin/admin_add_points_all.tpl
new file mode 100644 (file)
index 0000000..de3032f
--- /dev/null
@@ -0,0 +1,46 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=add_points&amp;u_id=all"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD class="admin_title seperator" height="10" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_title" colspan="3" align="center">{--ADMIN_ADD_POINTS_TO_ALL--}:</TD>
+       </TR>
+       <TR>
+               <TD class="admin_title seperator bottom2" height="10" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_POINTS_ADD--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="points" size="6" maxlength="7"
+                       class="admin_normal"></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_ADD_REASON--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><TEXTAREA name="reason" class="admin_normal" rows="5"
+                       cols="20"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" class="admin_submit" name="ok"
+                       value="{--ADMIN_ADD_POINTS--}"></TD>
+       </TR>
+       <TR>
+               <TD height="10" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_add_rallye.tpl b/0.2.1/templates/de/html/admin/admin_add_rallye.tpl
new file mode 100644 (file)
index 0000000..9ef6edc
--- /dev/null
@@ -0,0 +1,128 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=add_rallye"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" height="30" class="admin_title bottom2">
+               <STRONG>{--ADMIN_RALLYE_ADD_NEW_TITLE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_TITLE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><INPUT type="text" name="title"
+                       class="admin_normal" size="30" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" valign="top">{--RALLYE_DESCR--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><TEXTAREA name="descr" cols="30" rows="6"
+                       class="admin_normal"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_TEMPLATE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--_TEMPLATES--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="200" align="right" valign="top">{--RALLYE_START_DAY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="290" align="center">{--_START_DAY--}.
+               {--_START_MONTH--}. {--_START_YEAR--}<BR>
+               {--_START_HOUR--}: {--_START_MIN--}: {--_START_SEC--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" valign="top">{--RALLYE_END_DAY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--_END_DAY--}. {--_END_MONTH--}.
+               {--_END_YEAR--}<BR>
+               {--_END_HOUR--}: {--_END_MIN--}: {--_END_SEC--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_IS_ACTIVE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><SELECT name="active" size="1"
+                       class="admin_select">
+                       {--_ACTIVE_OPTIONS--}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_AUTO_ADD_USER--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><SELECT name="auto_add" size="1"
+                       class="admin_select">
+                       {--_AUTO_ADD_OPTIONS--}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_SEND_NOTIFY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><SELECT name="notify" size="1"
+                       class="admin_select">
+                       {--_NOTIFY_OPTIONS--}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_MIN_USERS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><INPUT type="text" name="min_users"
+                       class="admin_normal" size="5" maxlength="20" value="100"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_MIN_PRICES--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><INPUT type="text" name="min_prices"
+                       class="admin_normal" size="5" maxlength="20" value="3"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--ADD_RALLYE--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_add_rallye_prices.tpl b/0.2.1/templates/de/html/admin/admin_add_rallye_prices.tpl
new file mode 100644 (file)
index 0000000..df99c34
--- /dev/null
@@ -0,0 +1,51 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" height="30" class="admin_title bottom2">
+               <STRONG>{--RALLYE_CONFIG_PRICES_1--}$content{--RALLYE_CONFIG_PRICES_2--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="340" align="right">{--RALLYE_PRICE_LEVEL--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="130"><INPUT type="text" name="level"
+                       class="admin_normal" size="5" maxlength="20"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_PRICE_POINTS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="points" class="admin_normal"
+                       size="8" maxlength="20"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--RALLYE_PRICE_INFOS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="info" class="admin_normal" size="15"
+                       maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="add" class="admin_submit"
+                       value="{--ADD_RALLYE_PRICE--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_add_reflvl.tpl b/0.2.1/templates/de/html/admin/admin_add_reflvl.tpl
new file mode 100644 (file)
index 0000000..c56575c
--- /dev/null
@@ -0,0 +1,46 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_points&sub=ref&do=add"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2" width="10" height="30">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--ADD_NEW_REFDEPTH--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200">{--ENTER_REF_LVL--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="lvl" class="admin_normal" size="3"
+                       maxlength="3"></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200">{--ENTER_REF_PERCENTS--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="perc" class="admin_normal" size="3"
+                       maxlength="3">%</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--ADD_DEPTH--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_admin_add.tpl b/0.2.1/templates/de/html/admin/admin_admin_add.tpl
new file mode 100644 (file)
index 0000000..c04eb32
--- /dev/null
@@ -0,0 +1,79 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=admin_add"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_title dashed">
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right" width="245">{--ENTER_TITLE--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD class="admin_table" width="245" align="center"><INPUT
+                       type="text" name="title" class="admin_normal" size="30"
+                       maxlength="50"></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_WHAT_NAME--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD class="admin_table" align="center">{--__WHAT_SELECTION--} <BR>
+               <SPAN class="admin_note">({--CREATE_WHAT_FIRST--})</SPAN></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_PARENT_MENU--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD class="admin_table" align="center">{--__ACTION_SELECTION--} <BR>
+               <SPAN class="admin_note">({--CREATE_ACTION_FIRST--})</SPAN></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--ENTER_DESCR--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD class="admin_table" align="center"><TEXTAREA name="descr"
+                       rows="10" cols="30" class="admin_normal"></TEXTAREA></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_BELOW_MENU--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD class="admin_table" align="center">{--__BELOW_SELECTION--}</TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" width="10">&nbsp;</TD>
+               <TD class="admin_table" align="center" colspan="3"><INPUT
+                       type="reset" class="admin_reset" class="admin_normal"
+                       value="{--CLEAR_FORM--}">&nbsp;* <INPUT type="submit"
+                       class="admin_submit" name="ok" value="{--ADMIN_ADD_MENU--}">
+               </TD>
+               <TD class="admin_table" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" height="8" colspan="5"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_add.tpl b/0.2.1/templates/de/html/admin/admin_admins_add.tpl
new file mode 100644 (file)
index 0000000..e396d6e
--- /dev/null
@@ -0,0 +1,55 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=admins_add"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ADMINS_ADD_NEW_ADMIN--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="235" align="right">{--ADMIN_ADMINS_ENTER_LOGIN--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="235"><INPUT type="text" name="login"
+                       class="admin_normal" size="10" maxlength="255" value="$_POST[login]"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_ADMINS_ENTER_EMAIL--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="email" class="admin_normal"
+                       size="25" maxlength="255" value="$_POST[email]"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_ADMINS_ENTER_PASS1--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="password" name="pass1" class="admin_normal"
+                       size="10" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_ADMINS_ENTER_PASS2--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="password" name="pass2" class="admin_normal"
+                       size="10" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="bottom2 seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="add" class="admin_submit"
+                       value="{--ADMIN_ADMINS_ADD_ADMIN--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_admins_add_acl.tpl b/0.2.1/templates/de/html/admin/admin_admins_add_acl.tpl
new file mode 100644 (file)
index 0000000..b3b6f0c
--- /dev/null
@@ -0,0 +1,56 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_admins"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ADMINS_ADD_ACL--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="235" align="right">{--ADMIN_ADMINS_SELECT_LOGIN--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="235"><SELECT name="admin_id" size="1"
+                       class="admin_select">
+                       {--_ADMINS_SELECTION--}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_ADMINS_SELECT_ACTION--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--_ACTION_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_ADMINS_SELECT_WHAT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--_WHAT_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_ADMINS_SELECT_MODE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SELECT name="mode" size="1" class="admin_select">
+                       {--_MODE_OPTIONS--}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="add" class="admin_submit"
+                       value="{--ADMIN_ADMINS_ADD_ADMIN--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_admins_contact_form.tpl b/0.2.1/templates/de/html/admin/admin_admins_contact_form.tpl
new file mode 100644 (file)
index 0000000..d433495
--- /dev/null
@@ -0,0 +1,34 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=admins_contact&amp;admin={--__ADMIN--}"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="400"
+       class="admin_table dashed">
+       <TR>
+               <TD width="195" class="admin_title bottom2" align="right" height="28"><STRONG>{--ADMINS_ADMIN_ID--}:</STRONG></TD>
+               <TD width="10" class="admin_title bottom2 seperator">&nbsp;</TD>
+               <TD width="195" class="admin_title bottom2"><STRONG>{--__ADMIN--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center">{--ADMINS_ENTER_CONTACT_TEXT--}:<BR>
+               <TEXTAREA class="admin_normal" name="text" rows="5" cols="40"></TEXTAREA>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       {--ADMINS_MESSAGING_SELECTION--}
+       <TR>
+               <TD colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer top2" align="right"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">
+               <TD width="10" class="admin_footer top2 seperator">&nbsp;</TD>
+               <TD class="admin_footer top2"><INPUT type="submit" name="ok"
+                       class="admin_submit" value="{--ADMINS_CONTACT_SUBMIT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_contct_default.tpl b/0.2.1/templates/de/html/admin/admin_admins_contct_default.tpl
new file mode 100644 (file)
index 0000000..d5bdebf
--- /dev/null
@@ -0,0 +1,5 @@
+<TR>
+       <TD colspan="3" align="center" class="admin_title bottom2" height="28">
+       {--ADMINS_CONTACT_DEFAULT_MAIL--} <INPUT type="hidden" name="type"
+               value="mail"></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_contct_form.tpl b/0.2.1/templates/de/html/admin/admin_admins_contct_form.tpl
new file mode 100644 (file)
index 0000000..923557b
--- /dev/null
@@ -0,0 +1,34 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=admins_contct&amp;admin={--__ADMIN--}"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="400"
+       class="admin_table dashed">
+       <TR>
+               <TD width="195" class="admin_header bottom2" align="right" height="28"><STRONG>{--ADMINS_ADMIN_ID--}:</STRONG></TD>
+               <TD width="10" class="admin_header bottom2 seperator">&nbsp;</TD>
+               <TD width="195" class="admin_header bottom2" align="left"><STRONG>{--__ADMIN--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center">{--ADMINS_ENTER_CONTACT_TEXT--}:<BR>
+               <TEXTAREA class="admin_normal" name="text" rows="5" cols="40"></TEXTAREA>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       {--ADMINS_MESSAGING_SELECTION--}
+       <TR>
+               <TD colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer top2" align="right"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">
+               <TD width="10" class="admin_footer top2 seperator">&nbsp;</TD>
+               <TD class="admin_footer top2"><INPUT type="submit" name="ok"
+                       class="admin_submit" value="{--ADMINS_CONTACT_SUBMIT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_contct_select.tpl b/0.2.1/templates/de/html/admin/admin_admins_contct_select.tpl
new file mode 100644 (file)
index 0000000..76a7c84
--- /dev/null
@@ -0,0 +1,15 @@
+<TR>
+       <TD colspan="3" align="center" class="admin_title bottom2" height="28">
+       {--ADMINS_SELECT_CONTACT_TYPE--}</TD>
+</TR>
+<TR>
+       <TD colspan="3" class="seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD align="right"><INPUT type="radio" name="type"
+               class="admin_normal" value="mail" checked>&nbsp;{--ADMINS_CONTACT_TYPE_MAIL--}
+       </TD>
+       <TD width="10" class="seperator">&nbsp;</TD>
+       <TD><INPUT type="radio" name="type" class="admin_normal"
+               value="msg">&nbsp;{--ADMINS_CONTACT_TYPE_MSG--}</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_mails_edit.tpl b/0.2.1/templates/de/html/admin/admin_admins_mails_edit.tpl
new file mode 100644 (file)
index 0000000..0512053
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=admins_mails"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="2" align="center" class="admin_title" height="30"><STRONG>{--ADMINS_MAILS_EDIT_TITLE--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_ADMINS_TEMPLATE--}:</STRONG>
+               </TD>
+               <TD class="admin_title bottom2" align="center"><STRONG>{--ADMIN_ADMINS_CONTACT--}:</STRONG>
+               </TD>
+       </TR>
+       {!__ADMINS_ROWS!}
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--ADMIN_ADMINS_CHANGE--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_mails_edit_form.tpl b/0.2.1/templates/de/html/admin/admin_admins_mails_edit_form.tpl
new file mode 100644 (file)
index 0000000..e9c1d8f
--- /dev/null
@@ -0,0 +1,8 @@
+<FONT class="tiny">{--ADMINS_ADD_MORE_ADMINS--}:</FONT>
+<BR>
+<SELECT name="admin_new[$content[template]]" size="1"
+       class="admin_select">
+       <OPTION value="x">{--SELECT_NONE--}</OPTION>
+       $content[admins]
+</SELECT>
+<BR>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_mails_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_admins_mails_edit_row.tpl
new file mode 100644 (file)
index 0000000..ae98302
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[tpl] <INPUT type="hidden" name="template[$content[id2]]"
+               value="$content[tpl]"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[content]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_mails_list.tpl b/0.2.1/templates/de/html/admin/admin_admins_mails_list.tpl
new file mode 100644 (file)
index 0000000..6d530a9
--- /dev/null
@@ -0,0 +1,25 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=admins_mails"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title" height="30"><STRONG>{--ADMINS_MAILS_TITLE--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="30" class="admin_title bottom2 right2" align="center">
+               <STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="235" class="admin_title bottom2 right2" align="center">
+               <STRONG>{--ADMIN_ADMINS_TEMPLATE--}:</STRONG></TD>
+               <TD width="235" class="admin_title bottom2" align="center"><STRONG>{--ADMIN_ADMINS_CONTACT--}:</STRONG>
+               </TD>
+       </TR>
+       {--__MAILS_ROWS--}
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--ADMIN_ADMINS_EDIT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_admins_mails_list_row.tpl b/0.2.1/templates/de/html/admin/admin_admins_mails_list_row.tpl
new file mode 100644 (file)
index 0000000..e2de552
--- /dev/null
@@ -0,0 +1,9 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" name="sel[$content[tpl]]" class="admin_normal"
+               value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[tpl]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">
+       $content[alnk]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_amenu_delete.tpl b/0.2.1/templates/de/html/admin/admin_amenu_delete.tpl
new file mode 100644 (file)
index 0000000..f6698b2
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=adminedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD align="center" colspan="2" class="admin_header" height="40">
+               <STRONG>{--DEL_ADMIN_MENU--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="admin_header bottom2">
+               {--DEL_MENU_1--}{!__CHK_VALUE!}{--DEL_MENU_2--}</TD>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><INPUT
+                       type="hidden" name="ok" value="del"> <INPUT type="hidden"
+                       name="chk" value="{!__CHK_VALUE!}_{!__CNT_VALUE!}"> <INPUT
+                       type="submit" class="admin_delete submit" name="submit"
+                       value="{--DEL_ENTRIES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_amenu_delete_row.tpl b/0.2.1/templates/de/html/admin/admin_amenu_delete_row.tpl
new file mode 100644 (file)
index 0000000..d1a3d08
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD width="50%" class="switch_sw$content[sw] bottom2" align="right">$content[cnt].
+       {--ENTRY_DELETE--}:&nbsp;&nbsp;
+       <TD width="50%" class="switch_sw$content[sw] bottom2">
+       $content[menu] <INPUT type="hidden" name="sel[$content[sel]]"
+               value="$content[menu]"></TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_amenu_edit.tpl b/0.2.1/templates/de/html/admin/admin_amenu_edit.tpl
new file mode 100644 (file)
index 0000000..88766c2
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=adminedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="admin_table dashed">
+       <TR>
+               <TH class="admin_title bottom2 right2" align="center" width="30"
+                       height="30"><STRONG>{--ID_SELECT--}</STRONG></TH>
+               <TH class="admin_title bottom2 right2" align="center"><STRONG>{--DISPLAY_ACTION--}</STRONG></TH>
+               <TH class="admin_title bottom2 right2" align="center"><STRONG>{--DISPLAY_WHAT--}</STRONG></TH>
+               <TH class="admin_title bottom2 right2" align="center"><STRONG>{--DISPLAY_TITLE--}</STRONG></TH>
+               <TH class="admin_title bottom2" align="center"><STRONG>{--SORT_NAVIGATION--}</STRONG></TH>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}"
+                       class="admin_normal">&nbsp;* <INPUT type="submit"
+                       class="admin_submit" name="edit" value="{--EDIT_MENUS--}">&nbsp;*
+               <INPUT type="submit" class="admin_delete submit" name="del"
+                       value="{--DEL_MENUS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_amenu_edit_form.tpl b/0.2.1/templates/de/html/admin/admin_amenu_edit_form.tpl
new file mode 100644 (file)
index 0000000..b309903
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=adminedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD align="center" colspan="2" class="admin_title" height="40"><STRONG>{--EDIT_ADMIN_MENU--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="admin_title bottom2">
+               {--EDIT_MENU_1--}{!__CHK_VALUE!}{--EDIT_MENU_2--}</TD>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><INPUT
+                       type="hidden" name="ok" value="edit"> <INPUT type="hidden"
+                       name="chk" value="{!__CHK_VALUE!}_{!__CNT_VALUE!}"> <INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" class="admin_submit" name="submit"
+                       value="{--SUBMIT_CHANGES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_amenu_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_amenu_edit_row.tpl
new file mode 100644 (file)
index 0000000..c172710
--- /dev/null
@@ -0,0 +1,49 @@
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2"></TD>
+</TR>
+<TR>
+       <TD colspan="2" class="admin_edit switch_sw$content[sw]">$content[cnt].
+       {--ENTRY_MODIFY--}:
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2"></TD>
+</TR>
+<TR>
+       <TD width="50%" align="right" class="admin_edit switch_sw$content[sw]">
+       {--EDIT_ACTION--}:</TD>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]">
+       $content[action]</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2"></TD>
+</TR>
+<TR>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]" align="right">
+       {--EDIT_WHAT--}:</TD>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]">
+       $content[what]</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2"></TD>
+</TR>
+<TR>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]" align="right">
+       {--EDIT_TITLE--}:</TD>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]"><INPUT
+               type="text" name="sel[$content[sel]]" value="$content[menu]"
+               class="admin_normal" size="30" maxlength="50"></TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2"></TD>
+</TR>
+<TR>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]" align="right">
+       {--EDIT_DESCR--}:</TD>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]"><TEXTAREA
+               name="sel_desc[$content[sel]]" class="admin_normal" rows="10"
+               cols="30">$content[descr]</TEXTAREA></TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw] bottom2"
+               height="2">&nbsp;</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_cache_stats.tpl b/0.2.1/templates/de/html/admin/admin_cache_stats.tpl
new file mode 100644 (file)
index 0000000..d93148d
--- /dev/null
@@ -0,0 +1,30 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="420"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="2" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--ADMIN_CACHE_STATS_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="320" class="bottom2 right2" align="right">{--ADMIN_CACHE_DB_HITS--}</TD>
+               <TD width="100" class="bottom2" style="padding-right: 2px"
+                       align="right">{!__DB_HITS!}</TD>
+       </TR>
+       <TR>
+               <TD width="320" class="bottom2 right2" align="right">{--ADMIN_CACHE_HITS--}</TD>
+               <TD width="100" class="bottom2" style="padding-right: 2px"
+                       align="right">+{!__CACHE_HITS!}</TD>
+       </TR>
+       <TR>
+               <TD width="320" class="bottom2 right2" align="right">{--ADMIN_TOTAL_HITS--}</TD>
+               <TD width="100" class="bottom2" style="padding-right: 2px"
+                       align="right">={!__TOTAL_HITS!}</TD>
+       </TR>
+       <TR>
+               <TD width="320" class="admin_footer right2" align="right"><STRONG>{--ADMIN_CACHE_PERCENTS--}</STRONG></TD>
+               <TD width="100" class="admin_footer" style="padding-right: 2px"
+                       align="center"><STRONG>{!__CACHE_PERC!}%</STRONG></TD>
+       </TR>
+</TABLE>
+
+<DIV class="admin_note"><FONT class="admin_note tiny">{--ADMIN_CACHE_NOTES--}</FONT>
+</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_config_active.tpl b/0.2.1/templates/de/html/admin/admin_config_active.tpl
new file mode 100644 (file)
index 0000000..6729921
--- /dev/null
@@ -0,0 +1,35 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_active"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="580">
+       <TR>
+               <TD class="admin_title bottom2 seperator" height="30" width="10">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--ADMIN_ACTIVE_SETTINGS--}:</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="275">{--ADMIN_ACTIVE_LIMIT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275"><INPUT type="input"
+                       name="active_limit" class="admin_normal" value="{--__LIMIT_VALUE--}"
+                       size="5" maxlength="20"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_admin.tpl b/0.2.1/templates/de/html/admin/admin_config_admin.tpl
new file mode 100644 (file)
index 0000000..eae37cf
--- /dev/null
@@ -0,0 +1,38 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_admin"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_CONFIG_ADMIN_MENU_HEADER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="200" align="right" valign="top"
+                       style="padding-top: 3px; padding-right: 20px">
+               {--ADMIN_SELECT_MENU_TYPE--}:</TD>
+               <TD width="40" align="center" valign="top" style="padding-top: 3px">
+               <INPUT type="radio" name="admin_menu" class="admin_normal" value="NEW"{--__ADMIN_MENU_NEW--}>
+               </TD>
+               <TD width="360">{--ADMIN_MENU_NEW--}</TD>
+       </TR>
+       <TR>
+               <TD width="200" class="seperator">&nbsp;</TD>
+               <TD width="40" align="center" valign="top" style="padding-top: 3px">
+               <INPUT type="radio" name="admin_menu" class="admin_normal" value="OLD"{--__ADMIN_MENU_OLD--}>
+               </TD>
+               <TD width="360">{--ADMIN_MENU_OLD--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_admins.tpl b/0.2.1/templates/de/html/admin/admin_config_admins.tpl
new file mode 100644 (file)
index 0000000..46c3c63
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_admins"
+       method="post">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="680"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ADMINS_LIST_ACLS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="30"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="120"><STRONG>{--ADMINS_AID--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="204"><STRONG>{--MENU_ACTION--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="204"><STRONG>{--MENU_WHAT--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="120"><STRONG>{--ADMIN_ADMINS_ACCESS_MODE--}:</STRONG></TD>
+       </TR>
+       {--__ACL_ROWS--}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--ADMINS_EDIT_ACLS--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--ADMINS_DEL_ACLS--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_admins_del.tpl b/0.2.1/templates/de/html/admin/admin_config_admins_del.tpl
new file mode 100644 (file)
index 0000000..a1b1a64
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_admins"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ADMINS_DELETE_ACLS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="30"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="120"><STRONG>{--ADMINS_AID--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="204"><STRONG>{--MENU_ACTION--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="204"><STRONG>{--MENU_WHAT--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="120"><STRONG>{--ADMIN_ADMINS_ACCESS_MODE--}:</STRONG></TD>
+       </TR>
+       {--__ACL_ROWS--}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="remove" class="admin_delete"
+                       value="{--ADMINS_REMOVE_ACLS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_admins_del_row.tpl b/0.2.1/templates/de/html/admin/admin_config_admins_del_row.tpl
new file mode 100644 (file)
index 0000000..0822c0c
--- /dev/null
@@ -0,0 +1,12 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><STRONG>$content[id]</STRONG>
+       <INPUT type="hidden" name="sel[$content[id]]" value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[admin]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[action]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[what]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">
+       $content[mode]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_admins_edit.tpl b/0.2.1/templates/de/html/admin/admin_config_admins_edit.tpl
new file mode 100644 (file)
index 0000000..7363b11
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_admins"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ADMINS_EDIT_ACLS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="30"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="120"><STRONG>{--ADMINS_AID--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="204"><STRONG>{--MENU_ACTION--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="204"><STRONG>{--MENU_WHAT--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="120"><STRONG>{--ADMIN_ADMINS_ACCESS_MODE--}:</STRONG></TD>
+       </TR>
+       {--__ACL_ROWS--}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--ADMINS_CHANGE_ACLS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_admins_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_config_admins_edit_row.tpl
new file mode 100644 (file)
index 0000000..e68d98f
--- /dev/null
@@ -0,0 +1,16 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><STRONG>$content[id]</STRONG>
+       <INPUT type="hidden" name="sel[$content[id]]" value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><SELECT
+               name="admin[$content[id]]" size="1" class="admin_select">
+               $content[admins_selection]
+       </SELECT></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[action_selection]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[what_selection]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center"><SELECT
+               name="mode[$content[id]]" size="1" class="admin_select">
+               $content[mode_options]
+       </SELECT></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_admins_row.tpl b/0.2.1/templates/de/html/admin/admin_config_admins_row.tpl
new file mode 100644 (file)
index 0000000..481d57e
--- /dev/null
@@ -0,0 +1,12 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" name="sel[$content[id]]" value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[admin]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[action]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[what]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">
+       $content[mode]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_autopurge.tpl b/0.2.1/templates/de/html/admin/admin_config_autopurge.tpl
new file mode 100644 (file)
index 0000000..a7d4c96
--- /dev/null
@@ -0,0 +1,179 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_autopurge"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="510"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_AUTOPURGE_CONFIGURATION--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               {--ADMIN_AUTOPURGE_INACTIVE_TITLE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_INACTIVE--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_INACTIVE_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_INACTIVE_SINCE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_IN_SINCE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_INACTIVE_TIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_IN_TIME--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               {--ADMIN_AUTOPURGE_UNCONFIRMED_TITLE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_UNCONFIRMED--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_UNCONFIRMED_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_UNCONFIRMED_TIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_UN_TIME--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               {--ADMIN_AUTOPURGE_TASKS_TITLE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_TASKS--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_TASKS_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_TASKS_TIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_TASK_TIME--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               {--ADMIN_AUTOPURGE_MAILID_TITLE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_OPTION_AUTOPURGE_ACTIVE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> {--YES--}:&nbsp;<INPUT
+                       type="radio" name="auto_purge_active" value="Y"{--_CFG_AP_ACTIVE_Y--}>&nbsp;
+               {--NO--}:&nbsp;<INPUT type="radio" name="auto_purge_active" value="N"{--_CFG_AP_ACTIVE_N--}>
+               </SPAN></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_OPTION_MAIL_LIFETIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--_CFG_AUTO_PURGE--}</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_NOTIFY_DEL_MAILS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_NOTIFY_DEL_MAILS--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               {--ADMIN_AUTOPURGE_DEL_MAILS_TITLE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_DEL_MAILS--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_DEL_MAILS_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_DEL_MAILS_TIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_DEL_MAILS_TIME--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               {--ADMIN_AUTOPURGE_NOTIFICATION_TITLE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_NOTIFY_INACTIVE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_NOTIFY_INACTIVE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_NOTIFY_UNCONFIRMED--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_NOTIFY_UNCONFIRMED--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_NOTIFY_TASKS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__AP_NOTIFY_TASKS--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_beg.tpl b/0.2.1/templates/de/html/admin/admin_config_beg.tpl
new file mode 100644 (file)
index 0000000..6ea8cb6
--- /dev/null
@@ -0,0 +1,206 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_beg"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EDIT_BEG_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="200" height="20">
+               {--ADMIN_BEG_POINTS--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="295" align="center"><INPUT type="text"
+                       name="beg_points" class="admin_normal" size="7" maxlength="10"
+                       value="{!__BEG_POINTS!}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_BEG_POINTS_MAX--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="text"
+                       name="beg_points_max" class="admin_normal" size="7" maxlength="10"
+                       value="{!__BEG_POINTS_MAX!}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_CONFIG_BEG_TIMEOUT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center">{!__BEG_TIMEOUT!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">
+               {--ADMIN_CONFIG_BEG_UID_TIMEOUT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center">{--__BEG_UID_TIMEOUT--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">
+               {--ADMIN_CONFIG_BEG_REMOTE_IP_TIMEOUT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center">{--__BEG_REMOTE_IP_TIMEOUT--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_USERID--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><SELECT name="beg_uid" size="1"
+                       class="admin_select">
+                       {!_MEMBER_SELECTION!}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_SELECT_BEG_MODE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20"><INPUT type="radio" name="beg_mode"
+                       class="admin_normal" value="DIRECT"{--__BEG_MODE_DIRECT--}>&nbsp;{--BEG_MODE_DIRECT--}<BR>
+               </TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="beg_mode"
+                       class="admin_normal" value="REF"{--__BEG_MODE_REF--}>&nbsp;{--BEG_MODE_REF--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EDIT_BEG_RALLYE_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_RALLYE_ACTIVE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="beg_rallye"
+                       class="admin_normal" value="Y"{--__BEG_RALLYE_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="beg_rallye" class="admin_normal" value="N"{--__BEG_RALLYE_N--}>&nbsp;{--NO--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_INCLUDE_OWN--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="beg_include_own"
+                       class="admin_normal" value="Y"{--__BEG_INCLUDE_OWN_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="beg_include_own" class="admin_normal"
+                       value="N"{--__BEG_INCLUDE_OWN_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_RANKS--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="text" name="beg_ranks"
+                       class="admin_normal" size="3" maxlength="7" value="{--__BEG_RANKS--}">
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_RALLYE_ONLY_ACTIVE--}
+               </TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="beg_active"
+                       class="admin_normal" value="Y"{--__BEG_ACTIVE_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="beg_active" class="admin_normal" value="N"{--__BEG_ACTIVE_N--}>&nbsp;{--NO--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EDIT_BEG_RALLYE_NOTIFICATIONS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_RAL_EN_NOTIFY--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="beg_ral_en_notify"
+                       class="admin_normal" value="Y"{--__BEG_RAL_EN_NOTIFY_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="beg_ral_en_notify" class="admin_normal"
+                       value="N"{--__BEG_RAL_EN_NOTIFY_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_RAL_DI_NOTIFY--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="beg_ral_di_notify"
+                       class="admin_normal" value="Y"{--__BEG_RAL_DI_NOTIFY_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="beg_ral_di_notify" class="admin_normal"
+                       value="N"{--__BEG_RAL_DI_NOTIFY_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_NEW_MEMBER_NOTIFY--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="beg_new_mem_notify"
+                       class="admin_normal" value="Y"{--__BEG_NEW_MEMBER_NOTIFY_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="beg_new_mem_notify" class="admin_normal"
+                       value="N"{--__BEG_NEW_MEMBER_NOTIFY_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_NOTIFY_BONUS--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="text" name="beg_notify_bonus"
+                       class="admin_normal" size="3" maxlength="7"
+                       value="{--__BEG_NOTIFY_BONUS--}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BEG_NOTIFY_WAIT--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center">{--__WAIT_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_birthday.tpl b/0.2.1/templates/de/html/admin/admin_config_birthday.tpl
new file mode 100644 (file)
index 0000000..ad5cb57
--- /dev/null
@@ -0,0 +1,63 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_birthday"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_CONFIG_BIRTHDAY_HEADER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="400" align="right">{--ADMIN_BIRTHDAY_POINTS--}:<BR>
+               <FONT class="admin_note">({--ADMIN_BIRTHDAY_POINTS_NOTE--})</FONT></TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="170"><INPUT type="text" name="birthday_points"
+                       class="admin_normal" value="{!__POINTS_VALUE!}" size="4"
+                       maxlength="6">&nbsp;<FONT class="tiny">({!POINTS!})</FONT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BIRTHDAY_ONLY_ACTIVE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="birthday_active"
+                       class="admin_normal" value="Y"{--__BIRTHDAY_ACTIVE_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="birthday_active" class="admin_normal"
+                       value="N"{--__BIRTHDAY_ACTIVE_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_SELECT_BIRTHDAY_MODE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20"><INPUT type="radio"
+                       name="birthday_mode" class="admin_normal" value="DIRECT"{--__BIRTHDAY_MODE_DIRECT--}>&nbsp;{--BIRTHDAY_MODE_DIRECT--}<BR>
+               </TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="radio" name="birthday_mode"
+                       class="admin_normal" value="REF"{--__BIRTHDAY_MODE_REF--}>&nbsp;{--BIRTHDAY_MODE_REF--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_bonus.tpl b/0.2.1/templates/de/html/admin/admin_config_bonus.tpl
new file mode 100644 (file)
index 0000000..ededcf5
--- /dev/null
@@ -0,0 +1,337 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_bonus"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ACTIVATE_BONUS_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_IS_ACTIVE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_active" class="admin_normal" value="Y"{--__BONUS_ACTIVE_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_active" class="admin_normal" value="N"{--__BONUS_ACTIVE_N--}>&nbsp;{--NO--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_INCLUDE_OWN--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_include_own" class="admin_normal" value="Y"{--__BONUS_INCLUDE_OWN_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_include_own" class="admin_normal"
+                       value="N"{--__BONUS_INCLUDE_OWN_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_CLICK_INCLUDE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_click_yn" class="admin_normal" value="Y"{--__BONUS_CLICK_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_click_yn" class="admin_normal"
+                       value="N"{--__BONUS_CLICK_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_LOGIN_INCLUDE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_login_yn" class="admin_normal" value="Y"{--__BONUS_LOGIN_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_login_yn" class="admin_normal"
+                       value="N"{--__BONUS_LOGIN_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_ORDER_INCLUDE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_order_yn" class="admin_normal" value="Y"{--__BONUS_ORDER_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_order_yn" class="admin_normal"
+                       value="N"{--__BONUS_ORDER_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_STATS_INCLUDE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_stats_yn" class="admin_normal" value="Y"{--__BONUS_STATS_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_stats_yn" class="admin_normal"
+                       value="N"{--__BONUS_STATS_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_REF_INCLUDE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_ref_yn" class="admin_normal" value="Y"{--__BONUS_REF_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_ref_yn" class="admin_normal" value="N"{--__BONUS_REF_N--}>&nbsp;{--NO--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EDIT_BONUS_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_BONUS_ORDER_BONUS--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="text"
+                       name="bonus_order" class="admin_normal" size="8" maxlength="20"
+                       value="{!__ORDER_VALUE!}">&nbsp;<FONT class="admin_note">({!POINTS!})</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_BONUS_REF_BONUS--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="text"
+                       name="bonus_ref" class="admin_normal" size="8" maxlength="20"
+                       value="{!__REF_VALUE!}">&nbsp;<FONT class="admin_note">({!POINTS!})</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_BONUS_STATS_BONUS--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="text"
+                       name="bonus_stats" class="admin_normal" size="8" maxlength="20"
+                       value="{!__STATS_VALUE!}">&nbsp;<FONT class="admin_note">({!POINTS!})</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_BONUS_LOGIN_BONUS--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="text"
+                       name="login_bonus" class="admin_normal" size="8" maxlength="20"
+                       value="{!__LOGIN_VALUE!}">&nbsp;<FONT class="admin_note">({!POINTS!})</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--ADMIN_BONUS_TURBO_BONUS_TITLE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BONUS_TURBO_BONUS--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="text" name="turbo_bonus"
+                       class="admin_normal" size="10" maxlength="20"
+                       value="{!__TURBO_VALUE!}">&nbsp;<FONT class="admin_note">({!POINTS!})</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20" valign="top">
+               {--ADMIN_BONUS_TURBO_RATES--}:<BR>
+               <BR>
+               <DIV align="left">
+               <OL>
+                       <LH>
+                       <STRONG>{--ADMIN_BONUS_TURBO_RATES_NOTE1--}:</STRONG>
+                       </LH>
+                       <LI>{--ADMIN_BONUS_TURBO_RATES_NOTE2--}</LI>
+                       <LI>{--ADMIN_BONUS_TURBO_RATES_NOTE3--}</LI>
+                       <LI>{--ADMIN_BONUS_TURBO_RATES_NOTE4--}</LI>
+               </OL>
+               </DIV>
+               </TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center" valign="top">{--__TRATES_LIST--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--ADMIN_BONUS_TURBO_TIMEOUT_TITLE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_CONFIG_LOGIN_TIMEOUT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center">{--__LOGIN_TIMEOUT_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_CONFIG_BONUS_TIMEOUT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center">{--__BONUS_TIMEOUT_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--ADMIN_BONUS_TURBO_MISC_TITLE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BONUS_TURBO_RANKS--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="text" name="bonus_ranks"
+                       class="admin_normal" size="3" maxlength="5"
+                       value="{--__TRANKS_VALUE--}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BONUS_TURBO_LINES--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><INPUT type="text" name="bonus_lines"
+                       class="admin_normal" size="3" maxlength="5"
+                       value="{--__TLINES_VALUE--}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_BONUS_USERID--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center"><SELECT name="bonus_uid" size="1"
+                       class="admin_select">
+                       {!_MEMBER_SELECTION!}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--ADMIN_BONUS_RALLYE_NOTIFTICATIONS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_EN_NOTIFY--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_en_notify" class="admin_normal" value="Y"{--__BONUS_EN_NOTIFY_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_en_notify" class="admin_normal"
+                       value="N"{--__BONUS_EN_NOTIFY_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_DI_NOTIFY--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_di_notify" class="admin_normal" value="Y"{--__BONUS_DI_NOTIFY_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_di_notify" class="admin_normal"
+                       value="N"{--__BONUS_DI_NOTIFY_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right" height="20">
+               &nbsp;{--ADMIN_BONUS_RALLYE_NEW_MEMBER_NOTIFY--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="radio"
+                       name="bonus_new_mem_notify" class="admin_normal" value="Y"{--__BONUS_NEW_MEMBER_NOTIFY_Y--}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="bonus_new_mem_notify" class="admin_normal"
+                       value="N"{--__BONUS_NEW_MEMBER_NOTIFY_N--}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_BONUS_RALLYE_NOTIFY_POINTS--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center"><INPUT type="text"
+                       name="bonus_notify_points" class="admin_normal" size="8"
+                       maxlength="20" value="{--__NOTIFY_VALUE--}">&nbsp;<FONT
+                       class="admin_note">({!POINTS!})</FONT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_BONUS_RALLYE_NOTIFY_WAIT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" align="center">{--__WAIT_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_cache.tpl b/0.2.1/templates/de/html/admin/admin_config_cache.tpl
new file mode 100644 (file)
index 0000000..6a1cc9d
--- /dev/null
@@ -0,0 +1,106 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_cache"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD colspan="2" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_CONFIG_CACHE_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="switch_sw1" align="right" width="350" height="20">
+               {--ADMIN_CACHE_ADMINS--}</TD>
+               <TD class="switch_sw1" width="150" style="padding-left: 10px"><INPUT
+                       type="radio" name="cache_admins" value="Y" class="admin_normal"{--__ADMINS_Y--}>&nbsp;{--YES--}
+               <INPUT type="radio" name="cache_admins" value="N" class="admin_normal"{--__ADMINS_N--}>&nbsp;{--NO--}&nbsp;
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="switch_sw2" align="right" width="350" height="20">
+               {--ADMIN_CACHE_ACLS--}</TD>
+               <TD class="switch_sw2" width="150" style="padding-left: 10px"><INPUT
+                       type="radio" name="cache_acls" value="Y" class="admin_normal"{--__ACLS_Y--}>&nbsp;{--YES--}
+               <INPUT type="radio" name="cache_acls" value="N" class="admin_normal"{--__ACLS_N--}>&nbsp;{--NO--}&nbsp;
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350" height="20">{--ADMIN_CACHE_EXTS--}
+               </TD>
+               <TD width="150" style="padding-left: 10px"><INPUT type="radio"
+                       name="cache_exts" value="Y" class="admin_normal"{--__EXTS_Y--}>&nbsp;{--YES--}
+               <INPUT type="radio" name="cache_exts" value="N" class="admin_normal"{--__EXTS_N--}>&nbsp;{--NO--}&nbsp;
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350" height="20">
+               {--ADMIN_CACHE_CONFIG--}</TD>
+               <TD width="150" style="padding-left: 10px"><INPUT type="radio"
+                       name="cache_config" value="Y" class="admin_normal"{--__CONFIG_Y--}>&nbsp;{--YES--}
+               <INPUT type="radio" name="cache_config" value="N" class="admin_normal"{--__CONFIG_N--}>&nbsp;{--NO--}&nbsp;
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350" height="20">
+               {--ADMIN_CACHE_MODREG--}</TD>
+               <TD width="150" style="padding-left: 10px"><INPUT type="radio"
+                       name="cache_modreg" value="Y" class="admin_normal"{--__MODREG_Y--}>&nbsp;{--YES--}
+               <INPUT type="radio" name="cache_modreg" value="N" class="admin_normal"{--__MODREG_N--}>&nbsp;{--NO--}&nbsp;
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350" height="20">
+               {--ADMIN_CACHE_REFDEPTH--}</TD>
+               <TD width="150" style="padding-left: 10px"><INPUT type="radio"
+                       name="cache_refdepth" value="Y" class="admin_normal"{--__REFDEPTH_Y--}>&nbsp;{--YES--}
+               <INPUT type="radio" name="cache_refdepth" value="N"
+                       class="admin_normal"{--__REFDEPTH_N--}>&nbsp;{--NO--}&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350" height="20">
+               {--ADMIN_CACHE_REFSYS--}</TD>
+               <TD width="150" style="padding-left: 10px"><INPUT type="radio"
+                       name="cache_refsys" value="Y" class="admin_normal"{--__REFSYS_Y--}>&nbsp;{--YES--}
+               <INPUT type="radio" name="cache_refsys" value="N" class="admin_normal"{--__REFSYS_N--}>&nbsp;{--NO--}&nbsp;
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350" height="20">
+               {--ADMIN_CACHE_PATH--}:</TD>
+               <TD width="150" style="padding-left: 10px"><INPUT type="text"
+                       name="cache_path" class="admin_normal" value="{--__PATH--}" size="10"
+                       maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="bottom2 seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_cats.tpl b/0.2.1/templates/de/html/admin/admin_config_cats.tpl
new file mode 100644 (file)
index 0000000..2bd58d1
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_cats"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD align="center" colspan="4" class="admin_header bottom2"
+                       height="50"><STRONG>{--EDIT_DEL_CATEGORIES--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="admin_title bottom2 right2" width="40" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--CATNAME--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" width="120" align="center"><STRONG>{--IS_VISIBLE--}</STRONG></TD>
+               <TD class="admin_title bottom2" width="120" align="center"><STRONG>{--SORTING_KEY--}</STRONG></TD>
+       </TR>
+       {--__CAT_ROWS--}
+       <TR>
+               <TD class="admin_footer" align="center" colspan="4"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--EDIT_CATS--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--DEL_CATS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_cats_row.tpl b/0.2.1/templates/de/html/admin/admin_config_cats_row.tpl
new file mode 100644 (file)
index 0000000..4459fd9
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]"><INPUT
+               type="checkbox" name="sel[$content[id]]" value="1"
+               class="admin_normal"></TD>
+       <TD class="bottom2 right2 switch_sw$content[sw]"">
+       &nbsp;$content[cat]&nbsp;</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">
+       $content[vis]</TD>
+       <TD align="center" class="bottom2 switch_sw$content[sw]">
+       $content[sort]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_doubler.tpl b/0.2.1/templates/de/html/admin/admin_config_doubler.tpl
new file mode 100644 (file)
index 0000000..3343638
--- /dev/null
@@ -0,0 +1,214 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_doubler"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EDIT_DOUBLER_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_DOUBLER_CHARGE--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" style="padding-left: 5px"><INPUT type="text"
+                       name="doubler_charge" class="admin_normal" size="5" maxlength="10"
+                       value="{!__DOUBLER_CHARGE!}"> (%)</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_DOUBLER_REFERRAL--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" style="padding-left: 5px"><INPUT type="text"
+                       name="doubler_ref" class="admin_normal" size="5" maxlength="10"
+                       value="{!__DOUBLER_REFERRAL!}"> (%)</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_DOUBLER_MINIMUM--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" style="padding-left: 5px"><INPUT type="text"
+                       name="doubler_min" class="admin_normal" size="9" maxlength="20"
+                       value="{!__DOUBLER_MINIMUM!}"> ({!POINTS!})</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_DOUBLER_MAXIMUM--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" style="padding-left: 5px"><INPUT type="text"
+                       name="doubler_max" class="admin_normal" size="9" maxlength="20"
+                       value="{!__DOUBLER_MAXIMUM!}"> ({!POINTS!})</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_DOUBLER_LEFT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" style="padding-left: 5px"><INPUT type="text"
+                       name="doubler_left" class="admin_normal" size="9" maxlength="20"
+                       value="{!__DOUBLER_LEFT!}"> ({!POINTS!})</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_DOUBLER_GROUP_SENT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" style="padding-left: 5px"><INPUT type="text"
+                       name="doubler_group_sent" class="admin_normal" size="2" maxlength="4"
+                       value="{!__DOUBLER_GROUP_SENT!}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_DOUBLER_MAX_SENT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="195" style="padding-left: 5px"><INPUT type="text"
+                       name="doubler_max_sent" class="admin_normal" size="2" maxlength="4"
+                       value="{!__DOUBLER_MAX_SENT!}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_DOUBLER_SENT_ALL--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px"><INPUT type="radio"
+                       name="doubler_sent_all" class="admin_normal" value="Y"{!__DOUBLER_SENT_ALL_Y!}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="doubler_sent_all" class="admin_normal"
+                       value="N"{!__DOUBLER_SENT_ALL_N!}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_DOUBLER_JACKPOT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px"><INPUT type="radio"
+                       name="doubler_jackpot" class="admin_normal" value="Y"{!__DOUBLER_JACKPOT_Y!}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="doubler_jackpot" class="admin_normal"
+                       value="N"{!__DOUBLER_JACKPOT_N!}>&nbsp;{--NO--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_DOUBLER_OWN--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px"><INPUT type="radio"
+                       name="doubler_own" class="admin_normal" value="Y"{!__DOUBLER_OWN_Y!}>&nbsp;{--YES--}<BR>
+               <INPUT type="radio" name="doubler_own" class="admin_normal" value="N"{!__DOUBLER_OWN_N!}>&nbsp;{--NO--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_DOUBLER_TIMEOUT--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px" align="left">{!__DOUBLER_TIMEOUT!}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_DOUBLER_USERID--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px"><SELECT name="doubler_uid" size="1"
+                       class="admin_select">
+                       {!_MEMBER_SELECTION!}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" height="30" colspan="3" class="admin_title bottom2">
+               <STRONG>{--ADMIN_DOUBLER_SEND_MODE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" height="20" valign="top">
+               {--ADMIN_DOUBLER_SEND_DIRECT--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center" valign="top">{--ADMIN_DOUBLER_SEND_RESET--}</TD>
+       </TR>
+       <TR>
+               <TD align="center" height="20"><INPUT type="radio"
+                       name="doubler_send_mode" class="admin_normal" value="DIRECT"{!__DOUBLER_SEND_DIRECT!}><BR>
+               </TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px"><INPUT type="radio"
+                       name="doubler_send_mode" class="admin_normal" value="RESET"{!__DOUBLER_SEND_RESET!}><BR>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" height="30" colspan="3" class="admin_title bottom2">
+               <STRONG>{--ADMIN_DOUBLER_DISPLAY_SETTINGS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_DOUBLER_DISPLAY_NEW--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px"><SELECT name="doubler_display_new"
+                       size="1" class="admin_select">
+                       {!__DOUBLER_DISPLAY_NEW!}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_DOUBLER_DISPLAY_PAY--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px"><SELECT name="doubler_display_pay"
+                       size="1" class="admin_select">
+                       {!__DOUBLER_DISPLAY_PAY!}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_DOUBLER_DISPLAY_OLD--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD style="padding-left: 5px"><SELECT name="doubler_display_old"
+                       size="1" class="admin_select">
+                       {!__DOUBLER_DISPLAY_OLD!}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_email.tpl b/0.2.1/templates/de/html/admin/admin_config_email.tpl
new file mode 100644 (file)
index 0000000..e1c118e
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_email"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD align="center" colspan="3" class="admin_title" height="30"><STRONG>{--EDIT_DEL_MAX_VALUES--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="admin_title bottom2 right2" width="30" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" width="275" align="center"><STRONG>{--MAX_VALUE--}</STRONG></TD>
+               <TD class="admin_title bottom2" width="275" align="center"><STRONG>{--MAX_COMMENT--}</STRONG></TD>
+       </TR>
+       {!__ROWS!}
+       <TR>
+               <TD align="center" colspan="3" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--EDIT_MAX_V--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--DEL_MAX_V--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_email_del.tpl b/0.2.1/templates/de/html/admin/admin_config_email_del.tpl
new file mode 100644 (file)
index 0000000..7ba6949
--- /dev/null
@@ -0,0 +1,19 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_email&amp;do=del"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD align="center" height="30" class="bottom"><STRONG>{--DELETE_MRECEIVE--}:</STRONG></TD>
+       </TR>
+       {!__ROWS!}
+       <TR>
+               <TD align="center"><INPUT type="reset" class="admin_reset"
+                       value="{--CLEAR_FORM--}">&nbsp;* <INPUT type="submit"
+                       name="ok" class="admin_submit" value="{--REMOVE_MREC--}"></TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_email_del_row.tpl b/0.2.1/templates/de/html/admin/admin_config_email_del_row.tpl
new file mode 100644 (file)
index 0000000..0adc260
--- /dev/null
@@ -0,0 +1,22 @@
+<TR>
+       <TD height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="center"><STRONG>{--MRECEIVE_ID--}
+       $content[id]:</STRONG></TD>
+</TR>
+<TR>
+       <TD height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="center">$content[value]
+       ($content[comment]) <INPUT type="hidden" name="id[$content[id]]"
+               value="1" size="35"></TD>
+</TR>
+<TR>
+       <TD height="5" class="switch_sw$content[sw] bottom"
+               style="font-size: 1px">&nbsp;</TD>
+</TR>
+<TR>
+       <TD height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_email_edit.tpl b/0.2.1/templates/de/html/admin/admin_config_email_edit.tpl
new file mode 100644 (file)
index 0000000..5abf9f9
--- /dev/null
@@ -0,0 +1,20 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_email&amp;do=edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD align="center" colspan="2" height="30" class="bottom"><STRONG>{--EDIT_MRECEIVE--}:</STRONG></TD>
+       </TR>
+       {!__ROWS!}
+       <TR>
+               <TD align="center" colspan="2"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--CHANGE_MREC--}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_email_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_config_email_edit_row.tpl
new file mode 100644 (file)
index 0000000..49e4c18
--- /dev/null
@@ -0,0 +1,33 @@
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" colspan="2" align="center"><STRONG>{--MRECEIVE_ID--}
+       $content[id]:</STRONG> <INPUT type="hidden" name="id[$content[id]]" value="1">
+       </TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--MREC_VALUE--}:&nbsp;</TD>
+       <TD class="switch_sw$content[sw]"><INPUT type="text"
+               name="val[$content[id]]" class="admin_normal" value="$content[value]"
+               size="3" maxlength="5"></TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--MREC_COMMENT--}:&nbsp;</TD>
+       <TD class="switch_sw$content[sw]"><INPUT type="text"
+               name="comm[$content[id]]" class="admin_normal"
+               value="$content[comment]" size="25" maxlength="255"></TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5"
+               class="switch_sw$content[sw] seperator bottom">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_email_row.tpl b/0.2.1/templates/de/html/admin/admin_config_email_row.tpl
new file mode 100644 (file)
index 0000000..34db1de
--- /dev/null
@@ -0,0 +1,9 @@
+<TR>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]"><INPUT
+               type="checkbox" name="sel[$content[id]]" value="1"
+               class="admin_normal"></TD>
+       <TD class="bottom2 right2 switch_sw$content[sw]">
+       &nbsp;$content[value]&nbsp;</TD>
+       <TD class="bottom2 switch_sw$content[sw]">
+       &nbsp;$content[comment]&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_extensions.tpl b/0.2.1/templates/de/html/admin/admin_config_extensions.tpl
new file mode 100644 (file)
index 0000000..c64023d
--- /dev/null
@@ -0,0 +1,25 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_extensions"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD colspan="2" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_CONFIG_EXTENSIONS_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="bottom2" align="right" width="350" height="20">
+               {--ADMIN_VERBOSE_SQL--}:</TD>
+               <TD class="bottom2" width="150" align="right"><INPUT type="radio"
+                       name="verbose_sql" value="Y" class="admin_normal"{--__VERBOSE_Y--}>&nbsp;{--YES--}
+               <INPUT type="radio" name="verbose_sql" value="N" class="admin_normal"{--__VERBOSE_N--}>&nbsp;{--NO--}&nbsp;
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_holiday.tpl b/0.2.1/templates/de/html/admin/admin_config_holiday.tpl
new file mode 100644 (file)
index 0000000..57630c8
--- /dev/null
@@ -0,0 +1,50 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_holiday"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--HOLIDAY_ADMIN_CONFIG_HEADER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" style="padding-left: 5px">{--HOLIDAY_ADMIN_MAX_HOLIDAY--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="270"><INPUT type="text" name="holiday_max"
+                       class="admin_normal" value="{!__MAX_VALUE!}" size="4" maxlength="6">&nbsp;<FONT
+                       class="tiny">({--DAYS--})</FONT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" style="padding-left: 5px">{--HOLIDAY_ADMIN_LOCKED--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="270">{!__LOCKED!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" style="padding-left: 5px">{--HOLIDAY_ADMIN_MODE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="270"><INPUT type="radio" name="holiday_mode"
+                       class="admin_normal" value="RESET"{!__RESET_DEFAULT!}">
+               {--HOLIDAY_ADMIN_MODE_RESET--}<BR>
+               <INPUT type="radio" name="holiday_mode" class="admin_normal"
+                       value="DIRECT"{!__DIRECT_DEFAULT!}">
+               {--HOLIDAY_ADMIN_MODE_DIRECT--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_home.tpl b/0.2.1/templates/de/html/admin/admin_config_home.tpl
new file mode 100644 (file)
index 0000000..59e89d4
--- /dev/null
@@ -0,0 +1,17 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title" height="30"><STRONG>{--ADMIN_CONFIG_HOME--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MENU_WHAT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2"><STRONG>{--HOME_ACTION--}</STRONG></TD>
+       </TR>
+       {--__HOME_ROWS--}
+       <TR>
+               <TD colspan="3" class="admin_footer" align="center"><FONT
+                       class="admin_note">{--HOME_BOTTOM_NOTE--}</FONT></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_config_home_main.tpl b/0.2.1/templates/de/html/admin/admin_config_home_main.tpl
new file mode 100644 (file)
index 0000000..0cb3dbd
--- /dev/null
@@ -0,0 +1,15 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table" width="320">
+       <TR>
+               <TD align="center" class="admin_header top2 bottom2 left2 right2"
+                       height="30"><STRONG>{--ADMIN_CONFIG_HOME_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="guest_menu_row"><A class="menu_blur"
+                       href="{!URL!}/modules.php?module=admin&amp;what=config_home&amp;sub=target">&nbsp;<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;{--ADMIN_EDIT_HOME_TARGET--}</A></TD>
+       </TR>
+       <TR>
+               <TD class="guest_menu_bottom"><A class="menu_blur"
+                       href="{!URL!}/modules.php?module=admin&amp;what=config_home&amp;sub=settings">&nbsp;<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;{--ADMIN_EDIT_HOME_SETTINGS--}</A></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_config_home_settings.tpl b/0.2.1/templates/de/html/admin/admin_config_home_settings.tpl
new file mode 100644 (file)
index 0000000..cb04b36
--- /dev/null
@@ -0,0 +1,51 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_home&amp;sub=settings"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="510">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EDIT_HOME_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="320" height="20">
+               {--ADMIN_CONFIG_INDEX_DELAY--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="185" align="center"><SELECT name="index_delay"
+                       size="1" class="admin_select">
+                       <OPTION value="-1"$content[-1]>{--ADMIN_INDEX_NO_DELAY--}</OPTION>
+                       <OPTION value="0"$content[0]>{--ADMIN_INDEX_MANUAL_FORWARD--}</OPTION>
+                       <!-- Fuehren Sie dies einfach so weiter, wenn Sie mehr Werte brauchen //-->
+                       <OPTION value="1"$content[1]>1 {--SECS--}</OPTION>
+                       <OPTION value="2"$content[2]>2 {--SECS--}</OPTION>
+                       <OPTION value="3"$content[3]>3 {--SECS--}</OPTION>
+                       <OPTION value="4"$content[4]>4 {--SECS--}</OPTION>
+                       <OPTION value="5"$content[5]>5 {--SECS--}</OPTION>
+                       <OPTION value="10"$content[10]>10 {--SECS--}</OPTION>
+                       <OPTION value="15"$content[15]>15 {--SECS--}</OPTION>
+                       <OPTION value="30"$content[30]>30 {--SECS--}</OPTION>
+                       <!-- Laenger sollte es aber nun nicht dauern! //-->
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_CONFIG_INDEX_COOKIE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center">{--__INDEX_COOKIE_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_home_settings_pro.tpl b/0.2.1/templates/de/html/admin/admin_config_home_settings_pro.tpl
new file mode 100644 (file)
index 0000000..2072b66
--- /dev/null
@@ -0,0 +1,48 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_home&amp;sub=settings"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="510">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <B>{--ADMIN_EDIT_HOME_SETTINGS--}</B></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="320" height="20">
+               {--ADMIN_CONFIG_INDEX_DELAY--}:</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD width="185" align="center"><SELECT name="index_delay"
+                       size="1" class="admin_select">
+                       <OPTION value="-1"{--$content['-1']--}>{--ADMIN_INDEX_MANUAL_FORWARD--}</OPTION>
+                       <OPTION value="0"{--$content['0']--}>{--ADMIN_INDEX_NO_DELAY--}</OPTION>
+                       <!-- Fuehren Sie dies einfach so weiter, wenn Sie mehr Werte brauchen -->
+                       <OPTION value="1"{--$content['1']--}>1 {--SECS--}</OPTION>
+                       <OPTION value="2"{--$content['2']--}>2 {--SECS--}</OPTION>
+                       <OPTION value="3"{--$content['3']--}>3 {--SECS--}</OPTION>
+                       <OPTION value="4"{--$content['4']--}>4 {--SECS--}</OPTION>
+                       <OPTION value="5"{--$content['5']--}>5 {--SECS--}</OPTION>
+                       <OPTION value="10"{--$content['10']--}>10 {--SECS--}</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_CONFIG_INDEX_COOKIE--}</TD>
+               <TD class="seperator" width="5">&nbsp;</TD>
+               <TD align="center">{--__INDEX_COOKIE_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_mediadata.tpl b/0.2.1/templates/de/html/admin/admin_config_mediadata.tpl
new file mode 100644 (file)
index 0000000..75bb4bd
--- /dev/null
@@ -0,0 +1,50 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_mediadata"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="580">
+       <TR>
+               <TD class="admin_title bottom2 seperator" height="30" width="10">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--ADMIN_MEDIADATA_SETTINGS--}:</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="275">{--ADMIN_MEDIADATA_MT_START--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275">{!__MT_START!}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="275">{--ADMIN_MEDIADATA_MT_STAGE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275"><INPUT type="text" name="mt_stage"
+                       class="admin_normal" value="{!__MT_STAGE!}" size="6" maxlength="20">
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note"><STRONG><BIG>&middot;</BIG></STRONG>&nbsp;{--ADMIN_MEDIADATA_MT_START_NOTE--}<BR>
+<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;{--ADMIN_MEDIADATA_MT_STAGE_NOTE--}<BR>
+</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_config_newsletter.tpl b/0.2.1/templates/de/html/admin/admin_config_newsletter.tpl
new file mode 100644 (file)
index 0000000..1c710c5
--- /dev/null
@@ -0,0 +1,35 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_newsletter"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="520" class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2 seperator" width="10" height="30">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--ADMIN_NEWSLETTER_SETTINGS--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="280">{--ADMIN_NL_CHARGE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="nl_charge" class="admin_normal"
+                       size="3" maxlength="3" value="{!__CHARGE_VALUE!}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_nickname.tpl b/0.2.1/templates/de/html/admin/admin_config_nickname.tpl
new file mode 100644 (file)
index 0000000..007d5b2
--- /dev/null
@@ -0,0 +1,49 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_nickname"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--NICKNAME_ADMIN_CONFIG_HEADER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="400" align="right">{--ADMIN_NICKNAME_MIN_LENGTH--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="170"><INPUT type="text" name="nickname_len"
+                       class="admin_normal" value="{--__NICKNAME_LENGTH--}" size="3"
+                       maxlength="4"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="400" align="right">{--ADMIN_NICKNAME_PATTERN--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="170"><INPUT type="text" name="nickname_pattern"
+                       class="admin_normal" value="{--__NICKNAME_PATTERN--}" size="10"
+                       maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="400" align="right">{--ADMIN_NICKNAME_LANG_CHARS--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="170"><INPUT type="text" name="nickname_chars"
+                       class="admin_normal" value="{--__NICKNAME_LANG_CHARS--}" size="15"
+                       maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_order.tpl b/0.2.1/templates/de/html/admin/admin_config_order.tpl
new file mode 100644 (file)
index 0000000..645dbe2
--- /dev/null
@@ -0,0 +1,104 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_order"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="580">
+       <TR>
+               <TD class="admin_title bottom2 seperator" height="30" width="10">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--ORDER_ADMIN_SETTINGS--}:</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275" colspan="3">
+               {--ORDER_MAX_ORDER_SELECT--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275">{--ORDER_ADMIN_MAX--}:&nbsp;<INPUT
+                       type="radio" name="order_max_full" class="admin_normal" value="MAX"{--__MAX_DEFAULT--}>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275">{--ORDER_ADMIN_ORDER--}:&nbsp;<INPUT
+                       type="radio" name="order_max_full" class="admin_normal" value="ORDER"{--__ORDER_DEFAULT--}>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="30" class="admin_title bottom2" align="center">
+               <STRONG>{--ADMIN_ORDER_SELECTION_SETTINGS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="275">
+               {--ADMIN_ORDER_SELECTION_COLUMN--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275"><SELECT name="order_select"
+                       class="admin_select" size="1">
+                       {--__ORDER_SELECT--}
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="275">{--ADMIN_ORDER_SELECTION_MODE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275"><SELECT name="order_mode"
+                       class="admin_select" size="1">
+                       <OPTION value="ASC"{--__ASC_DEFAULT--}">{--SORT_ASCENDING--}</OPTION>
+                       <OPTION value="DESC"{--__DESC_DEFAULT--}">{--SORT_DESCENDING--}</OPTION>
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="30" class="admin_title bottom2" align="center">
+               <STRONG>{--ORDER_ADMIN_MISC_SETTINGS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="275">
+               {--ORDER_MIN_RECEIVER_PER_ORDER--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275"><INPUT type="input"
+                       name="order_min" class="admin_normal" value="{!__MIN_VALUE!}"
+                       size="5" maxlength="20"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_order_form.tpl b/0.2.1/templates/de/html/admin/admin_config_order_form.tpl
new file mode 100644 (file)
index 0000000..4881c1e
--- /dev/null
@@ -0,0 +1,69 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_order"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="580">
+       <TR>
+               <TD class="admin_title bottom2 seperator" height="30" width="10">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--ORDER_ADMIN_SETTINGS--}:</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275" colspan="3">
+               {--ORDER_MAX_ORDER_SELECT--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275">{--ORDER_ADMIN_MAX--}:&nbsp;<INPUT
+                       type="radio" name="order_max_full" class="admin_normal" value="MAX"{--__MAX_DEFAULT--}>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275">{--ORDER_ADMIN_ORDER--}:&nbsp;<INPUT
+                       type="radio" name="order_max_full" class="admin_normal" value="ORDER"{--__ORDER_DEFAULT--}>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="30" class="admin_title bottom2" align="center">
+               <STRONG>{--ORDER_ADMIN_MISC_SETTINGS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="275">
+               {--ORDER_MIN_RECEIVER_PER_ORDER--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="275"><INPUT type="input"
+                       name="order_min" class="admin_normal" value="{--__MIN_VALUE--}"
+                       size="5" maxlength="20"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_other.tpl b/0.2.1/templates/de/html/admin/admin_config_other.tpl
new file mode 100644 (file)
index 0000000..7dcdde0
--- /dev/null
@@ -0,0 +1,485 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_other"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="520" class="admin_table dashed">
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator admin_title">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+               <TD colspan="3" align="center" class="admin_title"><STRONG>{--ADMIN_OTHER_SETTINGS--}</STRONG>
+               </TD>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator admin_title bottom2">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="340">
+               {--ADMIN_OPTION_MAX_UNCONFIRMED_MAILS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="160"><INPUT type="text" name="unconfirmed"
+                       class="admin_normal" size="10" maxlength="10"
+                       value="{--_CFG_UNCONFIRMED--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_MAX_TEXT_LENGTH--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="max_tlength" class="admin_normal"
+                       size="10" maxlength="100" value="{--_CFG_MAX_TLENGTH--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_CODE_LENGTH--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="code_length" class="admin_normal"
+                       size="3" maxlength="5" value="{--_CFG_CODE_LENGTH--}"><FONT
+                       class="tiny">{--ADMIN_CODE_LENGTH_NOTE--}</FONT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_CHECK_EMAIL_TEXT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> {--YES--}:&nbsp;<INPUT
+                       type="radio" name="test_text" value="N"{--_CFG_TEST_TEXT_N--}>&nbsp;
+               {--NO--}:&nbsp;<INPUT type="radio" name="test_text" value="Y"{--_CFG_TEST_TEXT_Y--}>
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_CHECK_EMAIL_SUBJ--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> {--YES--}:&nbsp;<INPUT
+                       type="radio" name="test_subj" value="N"{--_CFG_TEST_SUBJ_N--}>&nbsp;
+               {--NO--}:&nbsp;<INPUT type="radio" name="test_subj" value="Y"{--_CFG_TEST_SUBJ_Y--}>
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_URL_BLACKLIST--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> {--YES--}:&nbsp;<INPUT
+                       type="radio" name="url_blacklist" value="Y"{--_CFG_URL_BLIST_Y--}>&nbsp;
+               {--NO--}:&nbsp;<INPUT type="radio" name="url_blacklist" value="N"{--_CFG_URL_BLIST_N--}>
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="340">
+               {--ADMIN_OPTION_ACTIVATE_EXCHANGE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="activate_xchange"
+                       class="admin_normal" size="10" maxlength="10"
+                       value="{--_CFG_ACT_SYSTEM--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="340">{--ADMIN_OPTION_POINTS_WORD--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="points_word" class="admin_normal"
+                       size="7" maxlength="255" value="{!POINTS!}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="340">{--ADMIN_OPTION_MT_WORD--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="mt_word" class="admin_normal"
+                       size="15" maxlength="255" value="{!MT_WORD!}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="340">{--ADMIN_OPTION_MT_WORD2--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="mt_word2" class="admin_normal"
+                       size="15" maxlength="255" value="{!MT_WORD2!}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="340">{--ADMIN_OPTION_MT_WORD3--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="mt_word3" class="admin_normal"
+                       size="15" maxlength="255" value="{!MT_WORD3!}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="340">{--ADMIN_OPTION_MAX_COMMA--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SELECT name="max_comma" size="1" class="admin_select">
+                       <OPTION value="0"{--_COMMA_DEF_0--}>0</OPTION>
+                       <OPTION value="1"{--_COMMA_DEF_1--}>1</OPTION>
+                       <OPTION value="2"{--_COMMA_DEF_2--}>2</OPTION>
+                       <OPTION value="3"{--_COMMA_DEF_3--}>3</OPTION>
+                       <OPTION value="4"{--_COMMA_DEF_4--}>4</OPTION>
+                       <OPTION value="5"{--_COMMA_DEF_5--}>5</OPTION>
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="340">{--ADMIN_OPTION_REJECT_URL--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="reject_url" class="admin_normal"
+                       size="15" maxlength="255" value="{--_CFG_REJECT_URL--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_CSS_PHP--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> <INPUT type="radio" name="css_php"
+                       value="DIRECT"{--_CFG_CSS_PHP_DIRECT--}>&nbsp;{--ADMIN_CSS_PHP_DIRECT--}<BR>
+               <INPUT type="radio" name="css_php" value="FILE"{--_CFG_CSS_PHP_FILE--}>&nbsp;{--ADMIN_CSS_PHP_FILE--}
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_GUEST_MENU--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> <INPUT type="radio"
+                       name="guest_menu" value="Y"{--_CFG_GUEST_MENU_ACTIVE--}>&nbsp;{--ADMIN_GUEST_MENU_ACTIVE--}<BR>
+               <INPUT type="radio" name="guest_menu" value="N"{--_CFG_GUEST_MENU_INACTIVE--}>&nbsp;{--ADMIN_GUEST_MENU_INACTIVE--}
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_MEMBER_MENU--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> <INPUT type="radio"
+                       name="member_menu" value="Y"{--_CFG_MEMBER_MENU_ACTIVE--}>&nbsp;{--ADMIN_MEMBER_MENU_ACTIVE--}<BR>
+               <INPUT type="radio" name="member_menu" value="N"{--_CFG_MEMBER_MENU_INACTIVE--}>&nbsp;{--ADMIN_MEMBER_MENU_INACTIVE--}
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_YOURE_HERE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> <INPUT type="radio"
+                       name="youre_here" value="Y"{--_CFG_YOURE_HERE_ACTIVE--}>&nbsp;{--ADMIN_YOURE_HERE_ACTIVE--}<BR>
+               <INPUT type="radio" name="youre_here" value="N"{--_CFG_YOURE_HERE_INACTIVE--}>&nbsp;{--ADMIN_YOURE_HERE_INACTIVE--}
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="5" class="seperator admin_title top2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+               <TD colspan="3" align="center" class="admin_title"><STRONG>{--ADMIN_SENDING_SETTINGS--}</STRONG>
+               </TD>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator admin_title bottom2">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_POOL_MAX_SEND--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="max_send" class="admin_normal"
+                       size="10" maxlength="100" value="{--_CFG_MAX_SEND--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_ZIPCODE_ACTIVE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> {--YES--}:&nbsp;<INPUT
+                       type="radio" name="order_multi_page" value="Y"{--_CFG_ORDER_MULTI_Y--}>&nbsp;
+               {--NO--}:&nbsp;<INPUT type="radio" name="order_multi_page" value="N"{--_CFG_ORDER_MULTI_N--}>
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_AUTOSEND_ACTIVE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> {--YES--}:&nbsp;<INPUT
+                       type="radio" name="autosend_active" value="Y"{--_CFG_AUTOSEND_ACTIVE_Y--}>&nbsp;
+               {--NO--}:&nbsp;<INPUT type="radio" name="autosend_active" value="N"{--_CFG_AUTOSEND_ACTIVE_N--}>
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="5" class="seperator admin_title top2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+               <TD colspan="3" align="center" class="admin_title"><STRONG>{--ADMIN_NOTIFY_SETTINGS--}</STRONG>
+               </TD>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator admin_title bottom2">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_SEND_UPDATE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> {--YES--}:&nbsp;<INPUT
+                       type="radio" name="send_prof_update" value="Y"{--_CFG_SEND_UPDATE_Y--}>&nbsp;
+               {--NO--}:&nbsp;<INPUT type="radio" name="send_prof_update" value="N"{--_CFG_SEND_UPDATE_N--}>
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_NOTIFY_ADMIN--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="nobr"> {--YES--}:&nbsp;<INPUT
+                       type="radio" name="admin_notify" value="Y"{--_CFG_ADMIN_NOTIFY_Y--}>&nbsp;
+               {--NO--}:&nbsp;<INPUT type="radio" name="admin_notify" value="N"{--_CFG_ADMIN_NOTIFY_N--}>
+               </SPAN></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="5" class="seperator admin_title top2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+               <TD colspan="3" align="center" class="admin_title"><STRONG>{--ADMIN_TIMEOUT_SETTINGS--}</STRONG>
+               </TD>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator admin_title bottom2">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_MAX_ONLINETIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--_CFG_ONLINE_TIMEOUT--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_URL_TIME_LOCK--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--_CFG_URL_TLOCK--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="5" class="seperator admin_title top2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+               <TD colspan="3" align="center" class="admin_title"><STRONG>{--ADMIN_PROFILE_TIME_SETTINGS--}</STRONG>
+               </TD>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator admin_title bottom2">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_LOCK_PROFILE_TIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--_CFG_PROFILE_LOCK--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_PROFILE_UPDATE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--_CFG_PROFILE_UPDATE--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_OPTION_PROFILE_REUPDATE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--_CFG_PROF_REUPDATE--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator admin_title top2">&nbsp;</TD>
+       </TR>
+
+       <TR>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+               <TD colspan="3" align="center" class="admin_title"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD width="10" class="seperator admin_title">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator admin_title">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_payouts.tpl b/0.2.1/templates/de/html/admin/admin_config_payouts.tpl
new file mode 100644 (file)
index 0000000..ada0a7e
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_payouts"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_PAYOUT_EDIT_DEL_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="30" class="admin_title bottom2 right2" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="100" class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_PAYOUT_FROM--}</STRONG></TD>
+               <TD width="150" class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_PAYOUT_TITLE--}</STRONG></TD>
+               <TD width="150" class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_PAYOUT_RATE2--}</STRONG></TD>
+               <TD width="150" class="admin_title bottom2" align="center"><STRONG>{--ADMIN_PAYOUT_MIN_POINTS2--}</STRONG></TD>
+       </TR>
+       {--__PAYOUT_ROWS--}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--ADMIN_PAYOUT_EDIT--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--ADMIN_PAYOUT_DELETE--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_payouts_del.tpl b/0.2.1/templates/de/html/admin/admin_config_payouts_del.tpl
new file mode 100644 (file)
index 0000000..18e6771
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_payouts&amp;ok=ok"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="650"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_PAYOUT_DELETE_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="30" class="admin_title bottom2 right2" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="250" class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_PAYOUT_TITLE--}</STRONG></TD>
+               <TD width="150" class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_PAYOUT_RATE2--}</STRONG></TD>
+               <TD width="100" class="admin_title bottom2" align="center"><STRONG>{--ADMIN_PAYOUT_MIN_POINTS2--}</STRONG></TD>
+       </TR>
+       {--__PAYOUT_ROWS--}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer"><INPUT
+                       type="submit" name="del" class="admin_delete"
+                       value="{--ADMIN_PAYOUT_DELETE--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_payouts_del_row.tpl b/0.2.1/templates/de/html/admin/admin_config_payouts_del_row.tpl
new file mode 100644 (file)
index 0000000..9168711
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"
+               height="25">$content[id]<INPUT type="hidden"
+               name="sel[$content[id]]" value="1"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[title]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[rate]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[mpoi]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_payouts_edit.tpl b/0.2.1/templates/de/html/admin/admin_config_payouts_edit.tpl
new file mode 100644 (file)
index 0000000..9d55281
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_payouts&amp;ok=ok"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="650"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_PAYOUT_EDIT_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="20" class="admin_title bottom2 right2" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="200" class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_PAYOUT_TITLE--}</STRONG></TD>
+               <TD width="150" class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_PAYOUT_RATE2--}</STRONG></TD>
+               <TD width="100" class="admin_title bottom2 right2" align="center"><STRONG>{--ADMIN_PAYOUT_MIN_POINTS2--}</STRONG></TD>
+               <TD width="180" class="admin_title bottom2" align="center"><STRONG>{--ADMIN_PAYOUT_ALLOW_URLS--}</STRONG></TD>
+       </TR>
+       {--__PAYOUT_ROWS--}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--ADMIN_PAYOUT_EDIT--}"></TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_payouts_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_config_payouts_edit_row.tpl
new file mode 100644 (file)
index 0000000..6bb7542
--- /dev/null
@@ -0,0 +1,16 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"
+               height="25">$content[id]<INPUT type="hidden"
+               name="sel[$content[id]]" value="1"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="text" name="title[$content[id]]" class="admin_normal"
+               value="$content[title]" size="20" maxlength="255"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="text" name="rate[$content[id]]" class="admin_normal"
+               value="$content[rate]" size="5" maxlength="10"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="text" name="mpoi[$content[id]]" class="admin_normal"
+               value="$content[mpoi]" size="5" maxlength="10"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[allow]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_payouts_row.tpl b/0.2.1/templates/de/html/admin/admin_config_payouts_row.tpl
new file mode 100644 (file)
index 0000000..7981c58
--- /dev/null
@@ -0,0 +1,9 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" name="sel[$content[id]]" class="admin_normal"
+               value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[from]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[type]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[rate]</TD>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;$content[mpoi]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_point_settings.tpl b/0.2.1/templates/de/html/admin/admin_config_point_settings.tpl
new file mode 100644 (file)
index 0000000..7c63eaa
--- /dev/null
@@ -0,0 +1,62 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_points&amp;sub=settings"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD colspan="2" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EDIT_POINT_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="300" height="20">
+               {--ADMIN_CONFIG_DIRECT_PAY--}:</TD>
+               <TD width="190" align="right">
+               {--ADMIN_CONFIG_POINTS_DIRECT--}:&nbsp;<INPUT type="radio"
+                       name="allow_direct_pay" value="Y" class="admin_normal"{--__DIRECT_Y--}><BR>
+               {--ADMIN_CONFIG_POINTS_MAILS--}:&nbsp;<INPUT type="radio"
+                       name="allow_direct_pay" value="N" class="admin_normal"{--__DIRECT_N--}>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" height="20">{--ADMIN_CONFIG_REFMODE--}:</TD>
+               <TD align="right" style="padding-right: 10px">
+               {--ADMIN_CONFIG_REFMODE_REF--}:&nbsp;<INPUT type="radio"
+                       name="refmode" value="ref" class="admin_normal"{--__MODE_REF--}>
+               <HR noshade width="150">
+               {--ADMIN_CONFIG_REFMODE_DIRECT--}:&nbsp;<INPUT type="radio"
+                       name="refmode" value="direct" class="admin_normal"{--__MODE_DIRECT--}>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--REF_PAYOUT--}:<BR>
+               (<FONT class="admin_note">{--REF_PAYOUT_NOTE--}</FONT>)</TD>
+               <TD align="center"><INPUT type="text" name="ref_payout"
+                       class="admin_normal" size="3" maxlength="3"
+                       value="{--__REF_PAYOUT--}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_points.tpl b/0.2.1/templates/de/html/admin/admin_config_points.tpl
new file mode 100644 (file)
index 0000000..3f72a6a
--- /dev/null
@@ -0,0 +1,26 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed">
+       <TR>
+               <TD class="seperator" colspan="3" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10" rowspan="3">&nbsp;</TD>
+               <TD><STRONG><BIG>&middot;</BIG></STRONG>&nbsp;&nbsp;<A
+                       href="{!URL!}/modules.php?module=admin&amp;what=config_points&amp;sub=points">{--ADMIN_EDIT_POINTS--}</A>
+               </TD>
+               <TD class="seperator" width="10" rowspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD><STRONG><BIG>&middot;</BIG></STRONG>&nbsp;&nbsp;<A
+                       href="{!URL!}/modules.php?module=admin&amp;what=config_points&amp;sub=ref">{--ADMIN_EDIT_REFDEPTHS--}</A>
+               </TD>
+       </TR>
+       <TR>
+               <TD><STRONG><BIG>&middot;</BIG></STRONG>&nbsp;&nbsp;<A
+                       href="{!URL!}/modules.php?module=admin&amp;what=config_points&amp;sub=settings">{--ADMIN_EDIT_POINT_SETTINGS--}</A>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="3" height="7">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_rallye_del.tpl b/0.2.1/templates/de/html/admin/admin_config_rallye_del.tpl
new file mode 100644 (file)
index 0000000..bcbdbdd
--- /dev/null
@@ -0,0 +1,27 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye={--__RALLYE_ID--}"
+       method="POST" style="margin-bottom: 10px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title" height="30"><STRONG>{--RALLYE_REMOVE_PRICES--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" width="10" class="admin_title bottom2 right2">
+               <STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" width="50" class="admin_title bottom2 right2">
+               <STRONG>{--RALLYE_LEVEL--}:</STRONG></TD>
+               <TD align="center" width="200" class="admin_title bottom2 right2">
+               <STRONG>{--RALLYE_PRICE_POINTS--}:</STRONG></TD>
+               <TD align="center" width="320" class="admin_title bottom2"><STRONG>{--RALLYE_PRICE_INFO--}:</STRONG>
+               </TD>
+       </TR>
+       {--__PRICE_ROWS--}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer"><INPUT
+                       type="submit" name="remove" class="admin_delete"
+                       value="{--RALLYE_REMOVE_PRICES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_rallye_del_row.tpl b/0.2.1/templates/de/html/admin/admin_config_rallye_del_row.tpl
new file mode 100644 (file)
index 0000000..15df5d2
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[id] <INPUT type="hidden" claass="admin_normal"
+               name="sel[$content[id]]" value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[level]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[points]</TD>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;$content[infos]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_rallye_edit.tpl b/0.2.1/templates/de/html/admin/admin_config_rallye_edit.tpl
new file mode 100644 (file)
index 0000000..234ee6f
--- /dev/null
@@ -0,0 +1,31 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye={--__RALLYE_ID--}"
+       method="POST" style="margin-bottom: 10px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title" height="30"><STRONG>{--RALLYE_EDIT_SELECTED_PRICES--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="120" align="center" width="50"
+                       class="admin_title bottom2 right2"><STRONG>{--RALLYE_ID--}:</STRONG>
+               </TD>
+               <TD width="65" align="center" width="50"
+                       class="admin_title bottom2 right2"><STRONG>{--RALLYE_LEVEL--}:</STRONG>
+               </TD>
+               <TD width="185" align="center" width="200"
+                       class="admin_title bottom2 right2"><STRONG>{--RALLYE_PRICE_POINTS--}:</STRONG>
+               </TD>
+               <TD width="130" align="center" width="320" class="admin_title bottom2">
+               <STRONG>{--RALLYE_PRICE_INFO--}:</STRONG></TD>
+       </TR>
+       {--__PRICE_ROWS--}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--RALLYE_CHANGE_PRICES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_rallye_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_config_rallye_edit_row.tpl
new file mode 100644 (file)
index 0000000..a7508cc
--- /dev/null
@@ -0,0 +1,16 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><SELECT
+               name="rallye_id[$content[id]]" size="1" class="admin_select">
+               $content[rallyes]
+       </SELECT></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       &nbsp;<INPUT type="text" name="level[$content[id]]"
+               class="admin_normal" size="5" maxlength="20" value="$content[level]">
+       </TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;<INPUT
+               type="text" name="points[$content[id]]" class="admin_normal" size="8"
+               maxlength="20" value="$content[points]"></TD>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;<INPUT type="text"
+               name="infos[$content[id]]" class="admin_normal" size="15"
+               maxlength="255" value="$content[infos]"></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_rallye_prices.tpl b/0.2.1/templates/de/html/admin/admin_config_rallye_prices.tpl
new file mode 100644 (file)
index 0000000..b174dc1
--- /dev/null
@@ -0,0 +1,30 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye={--__RALLYE_ID--}"
+       method="POST" style="margin-bottom: 10px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title" height="30"><STRONG>{--RALLYE_EDIT_DEL_PRICES--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" width="10" class="admin_title bottom2 right2">
+               <STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" width="50" class="admin_title bottom2 right2">
+               <STRONG>{--RALLYE_LEVEL--}:</STRONG></TD>
+               <TD align="center" width="200" class="admin_title bottom2 right2">
+               <STRONG>{--RALLYE_PRICE_POINTS--}:</STRONG></TD>
+               <TD align="center" width="320" class="admin_title bottom2"><STRONG>{--RALLYE_PRICE_INFO--}:</STRONG>
+               </TD>
+       </TR>
+       {--__PRICE_ROWS--}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--RALLYE_EDIT_PRICES--}"> <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--RALLYE_DELETE_PRICES--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_rallye_prices_row.tpl b/0.2.1/templates/de/html/admin/admin_config_rallye_prices_row.tpl
new file mode 100644 (file)
index 0000000..2bd757f
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" claass="admin_normal" name="sel[$content[id]]"
+               value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[level]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[points]</TD>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;$content[infos]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_refid.tpl b/0.2.1/templates/de/html/admin/admin_config_refid.tpl
new file mode 100644 (file)
index 0000000..2f01f00
--- /dev/null
@@ -0,0 +1,50 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_refid"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2 seperator" height="30" width="10">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="4" align="center"><STRONG>{--EDIT_REGFORM_SETTINGS--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="6" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="200">{--ADMIN_SELECT_DEF_REFID--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="2"><SELECT name="def_refid" size="1"
+                       class="admin_select">
+                       {!_MEMBER_SELECTION!}
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="6" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="200">{--ADMIN_SELECT_REFID_TARGRT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="2"><SELECT name="refid_target" size="1"
+                       class="admin_select">
+                       <OPTION value="register"{--__DEF_RT_REGISTER--}">{--ADMIN_REF_TARGET_REGISTER--}</OPTION>
+                       <OPTION value="index"{--__DEF_RT_INDEX--}">{--ADMIN_REF_TARGET_INDEX--}</OPTION>
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="6" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+               <TD class="admin_footer" colspan="4" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_reg.tpl b/0.2.1/templates/de/html/admin/admin_config_reg.tpl
new file mode 100644 (file)
index 0000000..9581bb2
--- /dev/null
@@ -0,0 +1 @@
+<!-- OBSULETE! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_config_reg_pro.tpl b/0.2.1/templates/de/html/admin/admin_config_reg_pro.tpl
new file mode 100644 (file)
index 0000000..790cf85
--- /dev/null
@@ -0,0 +1,55 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_reg"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="430">
+       <TR>
+               <TD class="admin_title bottom2 seperator" height="30" width="10">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--EDIT_REGFORM_SETTINGS--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="6" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="250">{--LEAST_CATS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="150"><INPUT type="text"
+                       name="least_cats" class="admin_normal" size="6" maxlength="6"
+                       value="{--LEAST_CATS_VALUE--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="6" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--DISPLAY_REFID--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--__CFG_SHOW_REFID--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="6" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--IP_TIMEOUT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--__TIMEOUT_SELECTION--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="6" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_register.tpl b/0.2.1/templates/de/html/admin/admin_config_register.tpl
new file mode 100644 (file)
index 0000000..65d92b2
--- /dev/null
@@ -0,0 +1,21 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_register"
+       method="POST">
+<TABLE border="0" cellpadding="0" cellspacing="0" width="450"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title" height="30"><STRONG>{--REGISTER_MUST_HEADER--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="20" class="admin_title bottom2 right2" align="center">{--ID_SELECT--}</TD>
+               <TD width="325" class="admin_title bottom2 right2" align="center">{--REGISTER_FIELD_NAME--}:</TD>
+               <TD width="105" class="admin_title bottom2" align="center">{--REGISTER_FIELD_REQUIRED--}</TD>
+       </TR>
+       {--__REGISTER_ROWS--}
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" value="{--REGISTER_CHANGE_MUST--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_register2.tpl b/0.2.1/templates/de/html/admin/admin_config_register2.tpl
new file mode 100644 (file)
index 0000000..8796833
--- /dev/null
@@ -0,0 +1,86 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_register2"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="430">
+       <TR>
+               <TD class="admin_title bottom2 seperator" height="30" width="10">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--EDIT_REGFORM_SETTINGS--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="250">{--LEAST_CATS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="150"><INPUT type="text"
+                       name="least_cats" class="admin_normal" size="6" maxlength="6"
+                       value="{!LEAST_CATS_VALUE!}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="250">{--ADMIN_CFG_REGISTER_DEFAULT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="150">{--__CFG_CAT_DEFAULT--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ADMIN_CFG_REGISTER_DISPLAY_REFID--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--__CFG_SHOW_REFID--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--IP_TIMEOUT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--__TIMEOUT_SELECTION--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="280">{--REJECT_DOUBLE_EMAIL--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--__CFG_DBL_EMAIL--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="280">{--REJECT_DOUBLE_PASS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--__CFG_DBL_PASS--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_rewrite.tpl b/0.2.1/templates/de/html/admin/admin_config_rewrite.tpl
new file mode 100644 (file)
index 0000000..4d5aea7
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_rewrite"
+       method="POST" style="bottom-margin: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD class="admin_header bottom2 right2" align="center" height="30">
+               <STRONG>{--MODULE_NAME--}</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--MODULE_TITLE--}</STRONG>
+               </TD>
+               <TD class="admin_header bottom2" align="center"><STRONG>{--MODULE_SKIPPED--}</STRONG>
+               </TD>
+       </TR>
+       {--__MODULE_ROWS--}
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note"><STRONG>{--ADMIN_CONFIG_REWRITE_NOTE--}</STRONG>
+</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_config_rewrite_rows.tpl b/0.2.1/templates/de/html/admin/admin_config_rewrite_rows.tpl
new file mode 100644 (file)
index 0000000..0f5cdd8
--- /dev/null
@@ -0,0 +1,9 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[module]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[title]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">
+       {--YES--}:&nbsp;<INPUT type="radio" name="mod[$content[module]]"
+               class="admin_normal" value="Y"$content[y_default]>
+       {--NO--}:&nbsp;<INPUT type="radio" name="mod[$content[module]]"
+               class="admin_normal" value="N"$content[n_default]></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_config_secure.tpl b/0.2.1/templates/de/html/admin/admin_config_secure.tpl
new file mode 100644 (file)
index 0000000..b425ada
--- /dev/null
@@ -0,0 +1,48 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_secure"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="520" class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2 seperator" width="10" height="30">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--EDIT_SECURITY_SETTINGS--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="280">{--MIN_PASS_LENGTH--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="pass_len" class="admin_normal"
+                       size="3" maxlength="3" value="{--__PASS_LEN--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right" width="280">{--ADMIN_SALT_LENGTH--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="salt_length" class="admin_normal"
+                       size="3" maxlength="3" value="{--__SALT_LENGTH--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note"><FONT class="admin_note">{--ADMIN_SALT_LENGTH_NOTE--}</FONT>
+</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_config_stats.tpl b/0.2.1/templates/de/html/admin/admin_config_stats.tpl
new file mode 100644 (file)
index 0000000..e38bf27
--- /dev/null
@@ -0,0 +1,71 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_stats"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="400"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_SETUP_STATS_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="340" height="40" align="right"><STRONG>{--ADMIN_GSTATS_MEMBERS--}:</STRONG><BR>
+               <FONT class="tiny">({--ADMIN_GSTATS_MEMBERS_NOTE--})</FONT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="50"><INPUT type="radio" name="guest_stats"
+                       class="admin_normal" value="members"{--__MEMBERS_RADIO--}></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="40" align="right"><STRONG>{--ADMIN_GSTATS_MODULES--}:</STRONG><BR>
+               <FONT class="tiny">({--ADMIN_GSTATS_MODULES_NOTE--})</FONT></TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><INPUT type="radio" name="guest_stats" class="admin_normal"
+                       value="modules"{--__MODULES_RADIO--}></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="40" align="right"><STRONG>{--ADMIN_GSTATS_INACTIVE--}:</STRONG><BR>
+               <FONT class="tiny">({--ADMIN_GSTATS_INACTIVE_NOTE--})</FONT></TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><INPUT type="radio" name="guest_stats" class="admin_normal"
+                       value="inactive"{--__INACTIVE_RADIO--}></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_MEMBER_STATS_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="40" align="right">{--ADMIN_MEMBER_STATS_LIMIT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="stats_limit" class="admin_normal"
+                       value="{--__STATS_LIMIT--}" size="4" maxlength="20"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer top2"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_sub_points.tpl b/0.2.1/templates/de/html/admin/admin_config_sub_points.tpl
new file mode 100644 (file)
index 0000000..0c36976
--- /dev/null
@@ -0,0 +1,47 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_points&sub=points"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2 seperator" width="10" height="30">&nbsp;</TD>
+               <TD class="admin_title bottom2" colspan="3" align="center"><STRONG>{--EDIT_POINTS_SETTINGS--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2 seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200">{--POINTS_REGISTER--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="points_register"
+                       class="admin_normal" size="6" maxlength="6" value="{--P_REG_VALUE--}">
+               </TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD align="right" width="200">{--POINTS_REF--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="points_ref" class="admin_normal"
+                       size="6" maxlength="6" value="{--P_REF_VALUE--}"></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" colspan="5" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_config_title.tpl b/0.2.1/templates/de/html/admin/admin_config_title.tpl
new file mode 100644 (file)
index 0000000..d096205
--- /dev/null
@@ -0,0 +1,77 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_title"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_CONFIG_TITLE_SETTINGS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="400" align="right">{--ADMIN_TITLE_ENABLE_DECORATIONS--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="170">{--__CFG_TITLE_DECOS--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TITLE_ENABLE_MODULE_TITLE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD>{--__CFG_TITLE_MOD_SHOW--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TITLE_ENABLE_WHAT_TITLE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD>{--__CFG_TITLE_WHAT_SHOW--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_CONFIG_TITLE_DECORATIONS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TITLE_LEFT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="title_left" class="admin_normal"
+                       value="{--__CFG_TITLE_LEFT--}" size="4" maxlength="10"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TITLE_MIDDLE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="title_middle" class="admin_normal"
+                       value="{--__CFG_TITLE_MIDDLE--}" size="4" maxlength="10"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TITLE_RIGHT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="title_right" class="admin_normal"
+                       value="{--__CFG_TITLE_RIGHT--}" size="4" maxlength="10"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_top10.tpl b/0.2.1/templates/de/html/admin/admin_config_top10.tpl
new file mode 100644 (file)
index 0000000..cc6a294
--- /dev/null
@@ -0,0 +1,28 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_top10"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--TOP10_ADMIN_CONFIG_HEADER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="400" align="right">{--TOP10_ADMIN_MAX_TOP10--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="170"><INPUT type="text" name="top10_max"
+                       class="admin_normal" value="{!__MAX_VALUE!}" size="4" maxlength="6"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_transfer.tpl b/0.2.1/templates/de/html/admin/admin_config_transfer.tpl
new file mode 100644 (file)
index 0000000..2e750af
--- /dev/null
@@ -0,0 +1,76 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_transfer"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_CONFIG_TRANSFER_HEADER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="360" align="right">{--ADMIN_TRANSFER_MAX--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="210"><INPUT type="text" name="transfer_max"
+                       class="admin_normal" value="{--__TRANS_MAX_VALUE--}" size="4"
+                       maxlength="6"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TRANSFER_AGE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD>{--__TRANS_AGE_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TRANSFER_TIMEOUT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD>{--__TRANS_TIMEOUT_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TRANSFER_BALANCE--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="transfer_balance"
+                       class="admin_normal" value="{--__TRANS_BALANCE_VALUE--}" size="4"
+                       maxlength="6">&nbsp;<FONT class="tiny">({!POINTS!})</FONT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_TRANSFER_CODE--}:<BR>
+               <FONT class="admin_note">({--ADMIN_TRANSFER_CODE_NOTE--})</FONT></TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="transfer_code" class="admin_normal"
+                       value="{--__TRANS_CODE_VALUE--}" size="4" maxlength="6"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="250">{--ADMIN_AUTOPURGE_TRANSFER--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SELECT name="ap_transfer" size="1" class="admin_select">
+                       <OPTION value="Y"{--__YES_IN--}>{--YES--}</OPTION>
+                       <OPTION value="N"{--__NO_IN--}>{--NO--}</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_user.tpl b/0.2.1/templates/de/html/admin/admin_config_user.tpl
new file mode 100644 (file)
index 0000000..b4c3b2f
--- /dev/null
@@ -0,0 +1,39 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_user"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--USER_ADMIN_CONFIG_HEADER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="400" align="right">{--USER_ADMIN_LIMIT_USER--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="170"><INPUT type="text" name="user_limit"
+                       class="admin_normal" value="{--__LIMIT_VALUE--}" size="4"
+                       maxlength="6"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="400" align="right">{--USER_ADMIN_ALPHA_USER--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="170"><INPUT type="text" name="user_alpha"
+                       class="admin_normal" value="{--__ALPHA_VALUE--}" size="4"
+                       maxlength="6"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_config_wernis.tpl b/0.2.1/templates/de/html/admin/admin_config_wernis.tpl
new file mode 100644 (file)
index 0000000..d362c17
--- /dev/null
@@ -0,0 +1,53 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_wernis"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--WERNIS_ADMIN_CONFIG_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right">{--WERNIS_ADMIN_API_ID--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="270"><INPUT type="text" name="wernis_api_id"
+                       class="admin_normal" value="$content[api_id]" size="2" maxlength="20"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right">{--WERNIS_ADMIN_API_MD5--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="270"><INPUT type="text" name="wernis_api_md5"
+                       class="admin_normal" value="$content[api_md5]" size="33"
+                       maxlength="32"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="300" align="right">{--WERNIS_ADMIN_MIN_AMOUNT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="270"><INPUT type="text" name="wernis_min_amount"
+                       class="admin_normal" value="$content[min_amount]" size="5"
+                       maxlength="20"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="bottom2 seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--WERNIS_ADMIN_CONFIG_NOTE--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_contct_user_form.tpl b/0.2.1/templates/de/html/admin/admin_contct_user_form.tpl
new file mode 100644 (file)
index 0000000..687865f
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=user_contct&amp;u_id=$content[u_id]"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="400"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD align="center" class="admin_title bottom2" height="30"><STRONG>{--ADMIN_CONTACT_USER--}:<BR>
+               $content[surname] $content[family] &lt;<A
+                       href="mailto:$content[email]">$content[email]</A>&gt;</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="bottom2" style="padding: 10px"><TEXTAREA
+                       name="text" rows="10" cols="20"></TEXTAREA>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_footer"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--CONTACT_USER--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_data_saved.tpl b/0.2.1/templates/de/html/admin/admin_data_saved.tpl
new file mode 100644 (file)
index 0000000..3cdc3d4
--- /dev/null
@@ -0,0 +1,15 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="450"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_done" height="14" colspan="3"></TD>
+       </TR>
+       <TR>
+               <TD class="admin_done" rowspan="3" width="7">&nbsp;</TD>
+               <TD class="admin_done" align="center"><SPAN class="admin_done2">{--SAVING_DATA--}...</SPAN>&nbsp;<STRONG><SPAN
+                       class="admin_done">{--SAVING_DONE--}</SPAN></STRONG></TD>
+               <TD class="admin_done" rowspan="3" width="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_done" height="14" colspan="3"></TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_del_admins.tpl b/0.2.1/templates/de/html/admin/admin_del_admins.tpl
new file mode 100644 (file)
index 0000000..01c6ca1
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=admins_edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ADMINS_DELETE_ACCOUNTS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="20"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="160"><STRONG>{--ADMIN_ADMINS_CONTACT--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="160"><STRONG>{--ADMIN_ADMINS_EMAIL--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="160"><STRONG>{--ADMIN_ADMINS_ACCESS_MODE--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="160"><STRONG>{--ADMIN_LA_MODE--}:</STRONG></TD>
+       </TR>
+       {!__ADMINS_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="remove" class="admin_delete"
+                       value="{--ADMIN_ADMINS_DELETE--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_del_admins_row.tpl b/0.2.1/templates/de/html/admin/admin_del_admins_row.tpl
new file mode 100644 (file)
index 0000000..458df35
--- /dev/null
@@ -0,0 +1,13 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[id] <INPUT type="hidden" name="sel[$content[id]]" value="1">
+       </TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[login]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[email]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[mode]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[la_mode]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_del_bank_packages.tpl b/0.2.1/templates/de/html/admin/admin_del_bank_packages.tpl
new file mode 100644 (file)
index 0000000..824ac5c
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=list_bank_package"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="620"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title" height="30"><STRONG>{--ADMIN_DELETE_BANK_PACKAGES--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="20" colspan="2" align="center"
+                       class="admin_title bottom2 right2"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="120" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_TITLE--}:</STRONG></TD>
+               <TD width="360" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_DESCR--}:</STRONG></TD>
+               <TD width="120" align="center" class="admin_title bottom2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_ACCOUNT_FEE--}</STRONG></TD>
+       </TR>
+       $content
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="submit" name="remove" class="admin_delete"
+                       value="{--DEL_ENTRIES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--ADMIN_DELETE_BANK_PACKAGES_NOTES--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_del_bank_packages_row.tpl b/0.2.1/templates/de/html/admin/admin_del_bank_packages_row.tpl
new file mode 100644 (file)
index 0000000..0563b3a
--- /dev/null
@@ -0,0 +1,13 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2"><INPUT
+               type="checkbox" name="id[$content[id]]" value="1" checked="checked" />
+       </TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>$content[id]</STRONG>
+       </TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[title]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[description]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[account_fee] {!POINTS!}</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_del_cats.tpl b/0.2.1/templates/de/html/admin/admin_del_cats.tpl
new file mode 100644 (file)
index 0000000..c46048e
--- /dev/null
@@ -0,0 +1,17 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_cats&do=del"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD align="center" height="30" class="admin_header bottom2"><STRONG>{--DELETE_CATEGORIES--}:</STRONG></TD>
+       </TR>
+       {--__CAT_ROWS--}
+       <TR>
+               <TD align="center" class="admin_footer"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="admin_delete"
+                       value="{--REMOVE_CATS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_del_cats_row.tpl b/0.2.1/templates/de/html/admin/admin_del_cats_row.tpl
new file mode 100644 (file)
index 0000000..d366052
--- /dev/null
@@ -0,0 +1,17 @@
+<TR>
+       <TD height="5" class="seperator switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw]"><STRONG>{--CATEGORY_ID--}
+       $content[id]:</STRONG></TD>
+</TR>
+<TR>
+       <TD height="5" class="seperator switch_sw$content[sw]"></TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw]">$content[cat] <INPUT
+               type="hidden" name="id[$content[id]]" value="1" size="35"></TD>
+</TR>
+<TR>
+       <TD height="5" class="bottom2 seperator switch_sw$content[sw]">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_del_email_bonus.tpl b/0.2.1/templates/de/html/admin/admin_del_email_bonus.tpl
new file mode 100644 (file)
index 0000000..fb25840
--- /dev/null
@@ -0,0 +1,20 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="99%">
+       <TR>
+               <TD class="admin_header" colspan="8" align="center" height="35">
+               <STRONG class="admin_misc">{--ADMIN_EMAIL_DELETED--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="top2 right2" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD class="top2 right2" align="center"><STRONG>{--EMAIL_SUBJECT--}</STRONG></TD>
+               <TD class="top2 right2" align="center"><STRONG>{--EMAIL_URL--}</STRONG></TD>
+               <TD class="top2 right2" align="center"><STRONG>{--EMAIL_TIMESTAMP--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="top2 right2 admin_misc" align="center">{!__ID!}</TD>
+               <TD class="top2 right2 admin_misc" align="center">{!__SUBJECT!}</TD>
+               <TD class="top2 right2 admin_misc" align="center"><A
+                       href="{!__URL!}" target="_blank">{--EMAIL_URL_TEST--}</A></TD>
+               <TD class="top2 right2 admin_misc" align="center">{!__ORDERED!}</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_del_email_normal.tpl b/0.2.1/templates/de/html/admin/admin_del_email_normal.tpl
new file mode 100644 (file)
index 0000000..8c2b29a
--- /dev/null
@@ -0,0 +1,22 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="99%">
+       <TR>
+               <TD class="admin_header" colspan="8" align="center" height="35">
+               <STRONG class="admin_misc">{--ADMIN_EMAIL_DELETED--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="top2 right2" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD class="top2 right2" align="center"><STRONG>{--EMAIL_SENDER--}</STRONG></TD>
+               <TD class="top2 right2" align="center"><STRONG>{--EMAIL_SUBJECT--}</STRONG></TD>
+               <TD class="top2 right2" align="center"><STRONG>{--EMAIL_URL--}</STRONG></TD>
+               <TD class="top2 right2" align="center"><STRONG>{--EMAIL_TIMESTAMP--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="top2 right2 admin_misc" align="center">{!__ID!}</TD>
+               <TD class="top2 right2 admin_misc" align="center">{!__SENDER!}</TD>
+               <TD class="top2 right2 admin_misc" align="center">{!__SUBJECT!}</TD>
+               <TD class="top2 right2 admin_misc" align="center"><A
+                       href="{!__URL!}" target="_blank">{--EMAIL_URL_TEST--}</A></TD>
+               <TD class="top2 right2 admin_misc" align="center">{!__ORDERED!}</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_del_payments.tpl b/0.2.1/templates/de/html/admin/admin_del_payments.tpl
new file mode 100644 (file)
index 0000000..4412bde
--- /dev/null
@@ -0,0 +1,16 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=payments&do=del"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD align="center" height="30" class="admin_title bottom"><STRONG>{--DELETE_PAYMENT--}:</STRONG></TD>
+       </TR>
+       {--__PAYMENT_ROWS--}
+       <TR>
+               <TD align="center" class="admin_footer"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="admin_submit" value="{--REMOVE_PAY--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_del_payments_row.tpl b/0.2.1/templates/de/html/admin/admin_del_payments_row.tpl
new file mode 100644 (file)
index 0000000..f4f249c
--- /dev/null
@@ -0,0 +1,16 @@
+<TR>
+       <TD class="admin_title bottom" height="20" align="center"><STRONG>{--PAYMENT_ID--}
+       $content[id]:</STRONG></TD>
+</TR>
+<TR>
+       <TD height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw]">$content[time]
+       {--SECS--} ($content[title]) <INPUT type="hidden"
+               name="id[$content[id]]" value="1" size="35"></TD>
+</TR>
+<TR>
+       <TD height="5" class="switch_sw$content[sw] bottom"
+               style="font-size: 1px">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_del_transfer_row.tpl b/0.2.1/templates/de/html/admin/admin_del_transfer_row.tpl
new file mode 100644 (file)
index 0000000..7c818aa
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="checkbox" name="sel[$content[idx]]" value="1"
+               class="admin_normal"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">$content[stamp]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">$content[uid_from]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">$content[uid_to]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">$content[reason]</TD>
+       <TD class="switch_sw$content[sw] bottom2">$content[points]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_del_user.tpl b/0.2.1/templates/de/html/admin/admin_del_user.tpl
new file mode 100644 (file)
index 0000000..bfbcd1c
--- /dev/null
@@ -0,0 +1,43 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=del_user&amp;u_id={!__UID!}"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2" height="28"><STRONG
+                       class="admin_done">{--ADMIN_HEADER_DEL_ACCOUNT_1--}{!__UID!}{--ADMIN_HEADER_DEL_ACCOUNT_2--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">
+               {--ADMIN_TEXT_DEL_ACCOUNT_1--}{!__UID!}{--ADMIN_TEXT_DEL_ACCOUNT_2--}
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">[&nbsp;<A href="{!__EMAIL!}">{!__SNAME!}
+               {!__FNAME!}</A>&nbsp;]</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center"><TEXTAREA name="reason" class="admin_normal"
+                       rows="5" cols="50"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_footer"><INPUT type="submit"
+                       name="no" class="admin_no" value="{--NO--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="admin_yes" value="{--YES--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_admins.tpl b/0.2.1/templates/de/html/admin/admin_edit_admins.tpl
new file mode 100644 (file)
index 0000000..95b9799
--- /dev/null
@@ -0,0 +1,29 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=admins_edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="680"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="6" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ADMINS_EDIT_ACCOUNTS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="20"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="160"><STRONG>{--ADMIN_ADMINS_CONTACT--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="160"><STRONG>{--ADMIN_ADMINS_EMAIL--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="240"><STRONG>{--ADMIN_ADMINS_PASSWORD--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="100"><STRONG>{--ADMIN_ADMINS_ACCESS_MODE--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="100"><STRONG>{--ADMIN_LA_MODE--}:</STRONG></TD>
+       </TR>
+       {!__ADMINS_ROWS!}
+       <TR>
+               <TD colspan="6" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--ADMIN_ADMINS_EDIT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--ADMIN_ADMINS_ACL_NOTE--}<BR>
+<BR>
+{--ADMIN_ADMINS_EDIT_NOTE--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_admins_row.tpl b/0.2.1/templates/de/html/admin/admin_edit_admins_row.tpl
new file mode 100644 (file)
index 0000000..31585f1
--- /dev/null
@@ -0,0 +1,22 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[id]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="text" name="login[$content[id]]" class="admin_normal"
+               value="$content[login]" size="20" maxlength="255"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="text" name="email[$content[id]]" class="admin_normal"
+               value="$content[email]" size="25" maxlength="255"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="password" name="pass1[$content[id]]" class="admin_normal"
+               size="10" maxlength="255">&nbsp;<INPUT type="password"
+               name="pass2[$content[id]]" class="admin_normal" size="10"
+               maxlength="255"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2"><SELECT
+               name="mode[$content[id]]" size="1" class="admin_select">
+               $content[mode]
+       </SELECT></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2"><SELECT
+               name="la_mode[$content[id]]" size="1" class="admin_select">
+               $content[la_mode]
+       </SELECT></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_cats.tpl b/0.2.1/templates/de/html/admin/admin_edit_cats.tpl
new file mode 100644 (file)
index 0000000..465d717
--- /dev/null
@@ -0,0 +1,18 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_cats&do=edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="600">
+       <TR>
+               <TD align="center" colspan="3" height="30"
+                       class="admin_header bottom2"><STRONG>{--EDIT_CATEGORIES--}:</STRO
+       </TR>
+       {!__CAT_ROWS!}
+       <TR>
+               <TD align="center" colspan="3" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--CHANGE_CATS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_cats_row.tpl b/0.2.1/templates/de/html/admin/admin_edit_cats_row.tpl
new file mode 100644 (file)
index 0000000..cbe5d56
--- /dev/null
@@ -0,0 +1,36 @@
+<TR>
+       <TD colspan="3" align="left" class="admin_header bottom2" height="25">
+       &nbsp;<STRONG>{--CATEGORY_ID--} $content[id]:</STRONG></TD>
+</TR>
+<TR>
+       <TD colspan="3" height="5" class="seperator switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD width="49%" align="right" class="switch_sw$content[sw]">{--CAT_DESCRIPTION--}:&nbsp;</TD>
+       <TD width="2%" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+       <TD width="49%" class="switch_sw$content[sw]"><INPUT type="text"
+               name="id[$content[id]]" class="admin_normal" value="$content[cat]"
+               size="32" maxlength="255"></TD>
+</TR>
+<TR>
+       <TD colspan="3" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--CAT_IS_VISIBLE--}&nbsp;</TD>
+       <TD width="1%" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]">$content[vis]</TD>
+</TR>
+<TR>
+       <TD colspan="3" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD align="right" class="switch_sw$content[sw]">{--SORT_KEY--}:&nbsp;</TD>
+       <TD width="1%" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]"><INPUT type="text"
+               name="sort[$content[id]]" class="admin_normal" value="$content[sort]"
+               size="3" maxlength="10"></TD>
+</TR>
+<TR>
+       <TD colspan="3" height="5"
+               class="bottom2 seperato switch_sw$content[sw]">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_email.tpl b/0.2.1/templates/de/html/admin/admin_edit_email.tpl
new file mode 100644 (file)
index 0000000..7f72fef
--- /dev/null
@@ -0,0 +1,50 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=edit_emails"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed">
+       <TR>
+               <TD width="10" height="30" class="admin_title seperator">&nbsp;</TD>
+               <TD align="center" colspan="3" class="admin_title"><STRONG>{--ADMIN_EDIT_EMAIL--}:</STRONG>
+               ({!__ID_VALUE!})</TD>
+               <TD width="10" class="admin_title seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="top2 seperator" height="35">&nbsp;</TD>
+               <TD align="right" class="top2"><STRONG>{--EMAIL_EDIT_URL--}:</STRONG>
+               </TD>
+               <TD width="5" class="top2 seperator">&nbsp;</TD>
+               <TD class="top2"><INPUT type="text" name="url"
+                       class="admin_normal" size="30" maxlength="255"
+                       value="{!__URL_VALUE!}"></TD>
+               <TD width="10" class="top2 seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="top2 seperator" height="35">&nbsp;</TD>
+               <TD align="right" class="top2"><STRONG>{--EMAIL_EDIT_SUBJ--}:</STRONG>
+               </TD>
+               <TD width="5" class="top2" seperator>&nbsp;</TD>
+               <TD class="top2"><INPUT type="text" name="subj"
+                       class="admin_normal" size="30" maxlength="255"
+                       value="{!__SUBJ_VALUE!}"></TD>
+               <TD width="10" class="top2" seperator>&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" height="125" class="top2" seperator>&nbsp;</TD>
+               <TD align="right" class="top2"><STRONG>{--EMAIL_EDIT_TEXT--}:</STRONG>
+               </TD>
+               <TD width="5" class="top2 seperator">&nbsp;</TD>
+               <TD class="top2"><TEXTAREA name="text" class="admin_normal"
+                       rows="8" cols="28">{!__TEXT_VALUE!}</TEXTAREA></TD>
+               <TD width="10" class="top2 seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator top2" height="35">&nbsp;</TD>
+               <TD align="center" height="30" colspan="3" class="admin_footer top2">
+               <INPUT type="hidden" name="id" value="{!__ID_VALUE!}"> <INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="save" class="admin_submit"
+                       value="{--ADMIN_CHANGE_EMAIL--}"></TD>
+               <TD width="10" class="admin_footer seperator top2">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_email_row.tpl b/0.2.1/templates/de/html/admin/admin_edit_email_row.tpl
new file mode 100644 (file)
index 0000000..497f618
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="switch_sw$content[sw] top2" width="10" height="20">&nbsp;</TD>
+       <TD class="switch_sw$content[sw] top2" align="center" width="10">
+       <INPUT type="radio" name="id" class="admin_normal" value="$content[id]">
+       </TD>
+       <TD class="switch_sw$content[sw] top2" width="5">&nbsp;</TD>
+       <TD class="switch_sw$content[sw] top2">$content[subj]
+       ({--EMAIL_SENDER--}: $content[uid]; $content[pay]; $content[cat])</TD>
+       <TD class="switch_sw$content[sw] top2" width="10">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_email_select.tpl b/0.2.1/templates/de/html/admin/admin_edit_email_select.tpl
new file mode 100644 (file)
index 0000000..91b6e70
--- /dev/null
@@ -0,0 +1,22 @@
+
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=edit_emails"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed">
+       <TR>
+               <TD width="10" height="30" class="admin_title seperator">&nbsp;</TD>
+               <TD align="center" colspan="3" class="admin_title"><STRONG>{--ADMIN_SELECT_EMAIL_EDIT--}:</STRONG>
+               </TD>
+               <TD width="10" class="admin_title seperator">&nbsp;</TD>
+       </TR>
+       {!__EMAIL_SELECT_ROWS!}
+       <TR>
+               <TD width="10" class="admin_footer seperator top2">&nbsp;</TD>
+               <TD align="center" height="30" colspan="3" class="admin_footer top2">
+               <INPUT type="reset" class="admin_reset" value="{--RESET_SELECT--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--ADMIN_EDIT_EMAIL--}"></TD>
+               <TD width="10" class="admin_footer seperator top2">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_payments.tpl b/0.2.1/templates/de/html/admin/admin_edit_payments.tpl
new file mode 100644 (file)
index 0000000..4e0464d
--- /dev/null
@@ -0,0 +1,17 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=payments&do=edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD align="center" colspan="2" class="admin_title bottom2" height="30"><STRONG>{--EDIT_PAYMENT--}:</STRONG></TD>
+       </TR>
+       {--__PAYMENT_ROWS--}
+       <TR>
+               <TD class="admin_footer" align="center" colspan="2"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--CHANGE_PAY--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_payments_row.tpl b/0.2.1/templates/de/html/admin/admin_edit_payments_row.tpl
new file mode 100644 (file)
index 0000000..f779e0a
--- /dev/null
@@ -0,0 +1,44 @@
+<TR>
+       <TD class="admin_title bottom" colspan="2" align="center" height="20">
+       <STRONG>{--PAYMENT_ID--} $content[id]:</STRONG></TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--PAY_TIME--}:&nbsp;</TD>
+       <TD class="switch_sw$content[sw]"><INPUT type="text"
+               name="time[$content[id]]" class="admin_normal" value="$content[time]"
+               size="3" maxlength="5">{--SECS--}</TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--PAY_PAYMENT--}:&nbsp;</TD>
+
+       <TD class="switch_sw$content[sw]"><INPUT type="text"
+               name="pay[$content[id]]" class="admin_normal" value="$content[pay]"
+               size="5" maxlength="8">{!POINTS!}</TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--PAY_PRICE--}:&nbsp;</TD>
+       <TD class="switch_sw$content[sw]"><INPUT type="text"
+               name="price[$content[id]]" class="admin_normal"
+               value="$content[price]" size="5" maxlength="8">{!POINTS!}</TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--PAY_TITLE--}:&nbsp;</TD>
+       <TD class="switch_sw$content[sw]"><INPUT type="text"
+               name="title[$content[id]]" class="admin_normal"
+               value="$content[title]" size="25" maxlength="255" class="seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw] bottom">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_rallyes.tpl b/0.2.1/templates/de/html/admin/admin_edit_rallyes.tpl
new file mode 100644 (file)
index 0000000..be7676b
--- /dev/null
@@ -0,0 +1,17 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_rallyes"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--RALLYE_EDIT_RALLYES--}:</STRONG></TD>
+       </TR>
+       {--__RALLYE_ROWS--}
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--RALLYE_CHANGE_ADMIN--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_rallyes_row.tpl b/0.2.1/templates/de/html/admin/admin_edit_rallyes_row.tpl
new file mode 100644 (file)
index 0000000..652a52d
--- /dev/null
@@ -0,0 +1,82 @@
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] seperator" height="5">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" width="305" align="right">{--RALLYE_TITLE--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" width="265" align="center"><INPUT
+               type="text" name="title[$content[id]]" class="admin_normal" size="30"
+               maxlength="255" value="$content[title]"></TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] seperator" height="3"></TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right" valign="top">{--RALLYE_DESCR--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" align="center"><TEXTAREA
+               name="descr[$content[id]]" cols="30" rows="6" class="admin_normal">$content[descr]</TEXTAREA>
+       </TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] seperator" height="3"></TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--RALLYE_TEMPLATE--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" align="center">$content[templ]</TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] seperator" height="3">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" width="200" align="right"
+               valign="top">{--RALLYE_START_DAY--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" width="290" align="center">
+       $content[s_day]. $content[s_month]. $content[s_year]<BR>
+       $content[s_hour]: $content[s_min]: $content[s_sec]</TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] seperator" height="3">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" width="200" align="right"
+               valign="top">{--RALLYE_END_DAY--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" width="290" align="center">
+       $content[e_day]. $content[e_month]. $content[e_year]<BR>
+       $content[e_hour]: $content[e_min]: $content[e_sec]</TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] bottom2 seperator"
+               height="5">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] seperator" height="5">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" width="305" align="right">{--RALLYE_MIN_USERS_MINI--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" width="265" align="center"><INPUT
+               type="text" name="min_users[$content[id]]" class="admin_normal"
+               size="5" maxlength="20" value="$content[min_users]"></TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] bottom2 seperator"
+               height="5">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] seperator" height="5">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" width="305" align="right">{--RALLYE_MIN_PRICES_MINI--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" width="265" align="center"><INPUT
+               type="text" name="min_prices[$content[id]]" class="admin_normal"
+               size="5" maxlength="20" value="$content[min_prices]"></TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] bottom2 seperator"
+               height="5">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_edit_user.tpl b/0.2.1/templates/de/html/admin/admin_edit_user.tpl
new file mode 100644 (file)
index 0000000..c12a021
--- /dev/null
@@ -0,0 +1,86 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=edit_user&amp;u_id=$content"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="400"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EDIT_USER_PROFILE--}: ($content)</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="195" align="right" height="21">{--SEX--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD width="195"><SELECT name="salut" class="admin_select"
+                       size="1">
+                       <OPTION value="M"{!_SEX_M!}">{--SEX_M--}</OPTION>
+                       <OPTION value="F"{!_SEX_F!}">{--SEX_F--}</OPTION>
+                       <OPTION value="C"{!_SEX_C!}">{--SEX_C--}</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD align="right">{--SURNAME--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="surname" class="admin_normal"
+                       size="15" maxlength="255" value="{!_SURNAME!}"></TD>
+       </TR>
+       <TR>
+               <TD align="right">{--FAMILY_NAME--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="family_name" class="admin_normal"
+                       size="15" maxlength="255" value="{!_FAMILY!}"></TD>
+       </TR>
+       <TR>
+               <TD align="right">{--STREET_NR--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="street_nr" class="admin_normal"
+                       size="20" maxlength="255" value="{!_STREET!}"></TD>
+       </TR>
+       <TR>
+               <TD align="right">{--COUNTRY--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="country" class="admin_normal"
+                       size="2" maxlength="3" value="{!_COUNTRY!}"></TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ZIP--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="zip" class="admin_normal" size="5"
+                       maxlength="6" value="{!_ZIP!}"></TD>
+       </TR>
+       <TR>
+               <TD align="right">{--CITY--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="city" class="admin_normal" size="15"
+                       maxlength="255" value="{!_CITY!}"></TD>
+       </TR>
+       <TR>
+               <TD class="bottom2" align="right">{--ADDY--}:</TD>
+               <TD class="bottom2 seperator" width="10">&nbsp;</TD>
+               <TD class="bottom2"><INPUT type="text" name="email"
+                       class="admin_normal" size="20" maxlength="255" value="{!_EMAIL!}">
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer bottom2"><FONT
+                       class="tiny">{--ADMIN_EDIT_USER_PASSWORD_NOTE--}</FONT></TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PASS1--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="password" name="pass1" class="admin_normal"
+                       size="5" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD class="bottom2" align="right">{--ADMIN_PASS2--}:</TD>
+               <TD class="bottom2 seperator" width="10">&nbsp;</TD>
+               <TD class="bottom2"><INPUT type="password" name="pass2"
+                       class="admin_normal" size="5" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="edit" class="admin_submit"
+                       value="{--CHANGE_PROFILE--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_email_archiv.tpl b/0.2.1/templates/de/html/admin/admin_email_archiv.tpl
new file mode 100644 (file)
index 0000000..15d574c
--- /dev/null
@@ -0,0 +1,8 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="99%">
+       <TR>
+               <TD colspan="3" align="center" height="25" class="admin_title"><STRONG
+                       class="admin_done">{--ADMIN_POOL_CONTENT--}</STRONG></TD>
+       </TR>
+       {!__TOP_EMAIL_NAV!} {!__EMAIL_ROWS!} {!__BOTTOM_EMAIL_NAV!}
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_email_archiv_row.tpl b/0.2.1/templates/de/html/admin/admin_email_archiv_row.tpl
new file mode 100644 (file)
index 0000000..5819f9a
--- /dev/null
@@ -0,0 +1,59 @@
+<TR>
+       <TD class="switch_sw$content[sw] top2 bottom right" width="23%"
+               align="center">{--EMAIL_SENDER--}:<BR>
+       <STRONG class="admin_misc">$content[u_link]</STRONG></TD>
+       <TD class="switch_sw$content[sw] top2 bottom right" width="23%"
+               align="center">{--EMAIL_SUBJECT--}:<BR>
+       <STRONG class="admin_misc">$content[subj]</STRONG></TD>
+       <TD class="switch_sw$content[sw] top2 bottom" width="54%"
+               align="center">{--EMAIL_TEXT--}:<BR>
+       <STRONG class="admin_misc">$content[text]</STRONG></TD>
+</TR>
+<TR>
+       <TD height="5" colspan="3" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="2" align="center"
+               class="switch_sw$content[sw] top bottom right">
+       {--EMAIL_PAYMENT--}:<BR>
+       <STRONG class="admin_misc">$content[pay] </TD>
+       <TD align="center" class="switch_sw$content[sw] top bottom">
+       {--EMAIL_CATEGORY--}:<BR>
+       <STRONG class="admin_misc">$content[cat] </TD>
+</TR>
+<TR>
+       <TD height="5" colspan="3" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw] top bottom right">
+       {--EMAIL_RECEIVERS--}:<BR>
+       <STRONG class="admin_misc">$content[sent]</STRONG> ({--EMAIL_RUIDS--}:
+       <STRONG class="admin_misc">$content[ruids]</STRONG>)</TD>
+       <TD align="center" class="switch_sw$content[sw] top bottom right">
+       {--USERS_LINKS--}:<BR>
+       <STRONG class="admin_misc">$content[unconfirmed]</STRONG></TD>
+       <TD align="center" class="switch_sw$content[sw] top bottom">
+       {--EMAIL_POOL_TYPE--}:<BR>
+       <STRONG class="admin_misc">$content[type]</STRONG></TD>
+</TR>
+<TR>
+       <TD height="5" colspan="3" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw] top right">
+       {--EMAIL_TSEND--}:<BR>
+       <STRONG class="admin_misc">$content[tsend]</STRONG></TD>
+       <TD align="center" class="switch_sw$content[sw] top right">
+       {--EMAIL_URL--}:<BR>
+       <STRONG class="admin_misc"><A href="$content[url]"
+               target="_blank">{--EMAIL_URL_TEST--}</A></STRONG></TD>
+       <TD align="center" class="switch_sw$content[sw] top">
+       {--EMAIL_TIMESTAMP--}:<BR>
+       <STRONG class="admin_misc">$content[stamp]</STRONG></TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw] top2 admin_del_link"
+               colspan="3"><A
+               href="{!URL!}/modules.php?module=admin&amp;what=del_email&amp;mid=$content[mid]">{--ADMIN_DELETE_NORMAL_MAIL--}</A>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_email_nav_row.tpl b/0.2.1/templates/de/html/admin/admin_email_nav_row.tpl
new file mode 100644 (file)
index 0000000..9e8fef1
--- /dev/null
@@ -0,0 +1,15 @@
+<TR>
+       <TD class="admin_title{!__NAV_TOP!}" colspan="{!__NAV_COLSPAN!}"
+               align="center">
+       <TABLE border="0" cellspacing="0" cellpadding="0" width="520">
+               {!__NAV_SEP!}
+               <TR>
+                       <TD class="admin_pagenav" align="left">
+                       [&nbsp;{--EMAILS_PAGENAV--}:&nbsp;{--__NAV_OUTPUT--}&nbsp;]</TD>
+               </TR>
+               <TR>
+                       <TD colspan="{!__NAV_COLSPAN!}" class="seperator">&nbsp;</TD>
+               </TR>
+       </TABLE>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_ext_reg_form.tpl b/0.2.1/templates/de/html/admin/admin_ext_reg_form.tpl
new file mode 100644 (file)
index 0000000..4823999
--- /dev/null
@@ -0,0 +1,6 @@
+<A name="ext_$content[ext_name]"></A>
+<FORM
+       action="{--URL--}/modules.php?module=admin&amp;what=extensions&amp;reg_ext=$content[id]"
+       method="POST" style="margin-bottom: 0px"><INPUT type="submit"
+       name="ok" class="admin_submit" value="{--ADMIN_REGISTER_EXTENSION--}" />
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_extensions.tpl b/0.2.1/templates/de/html/admin/admin_extensions.tpl
new file mode 100644 (file)
index 0000000..b038e84
--- /dev/null
@@ -0,0 +1,28 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=extensions"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="590"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD colspan="6" align="center" class="admin_title" height="30"><STRONG>{--ADMIN_REGISTERED_EXTENSIONS--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="30"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="240"><STRONG>{--ADMIN_EXT_NAME--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="240"><STRONG>{--ADMIN_EXT_LANG--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="80"><STRONG>{--ADMIN_EXT_CSSFILE--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="80"><STRONG>{--ADMIN_EXT_ACTIVE--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="80"><STRONG>{--ADMIN_EXT_VERSION--}</STRONG></TD>
+       </TR>
+       {!__EXT_ROWS!}
+       <TR>
+               <TD colspan="6" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--ADMIN_DE_ACTIVATE--}">&nbsp;* <INPUT type="submit"
+                       name="edit" class="admin_submit" value="{--ADMIN_EDIT--}">&nbsp;*
+               <INPUT type="submit" name="delete" class="admin_delete"
+                       value="{--ADMIN_DELETE_ENTRIES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_404.tpl b/0.2.1/templates/de/html/admin/admin_extensions_404.tpl
new file mode 100644 (file)
index 0000000..b6b6706
--- /dev/null
@@ -0,0 +1,7 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="400" class="admin_done dashed">
+       <TR>
+               <TD align="center" height="40"><STRONG class="admin_failed">{--ADMIN_EXT_NOTHING_FOUND--}</STRONG>
+               </TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_delete.tpl b/0.2.1/templates/de/html/admin/admin_extensions_delete.tpl
new file mode 100644 (file)
index 0000000..0faf7a6
--- /dev/null
@@ -0,0 +1,22 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=extensions"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title" height="30"><STRONG>{--ADMIN_REMOVING_THESE_EXTENSIONS--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="40"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="180"><STRONG>{--ADMIN_EXT_NAME--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="80"><STRONG>{--ADMIN_EXT_VERSION--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="220">&nbsp;</TD>
+       </TR>
+       {!__EXTENSIONS_ROWS!}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer"><INPUT
+                       type="submit" name="remove" class="admin_delete"
+                       value="{--ADMIN_REMOVE_EXTENSIONS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_delete_row.tpl b/0.2.1/templates/de/html/admin/admin_extensions_delete_row.tpl
new file mode 100644 (file)
index 0000000..98e9952
--- /dev/null
@@ -0,0 +1,13 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><STRONG>$content[id]</STRONG>
+       <INPUT type="hidden" name="sel[$content[id]]" value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">
+       &nbsp;$content[ext_name]</TD>
+       <TD class="switch_sw$content[sw] bottom2">
+       &nbsp;v$content[ext_ver]</TD>
+       <TD class="switch_sw$content[sw] bottom2 seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2 seperator">&nbsp;</TD>
+       <TD colspan="3">$content[verbose]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_edit.tpl b/0.2.1/templates/de/html/admin/admin_extensions_edit.tpl
new file mode 100644 (file)
index 0000000..db8d722
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=extensions"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="370"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title" height="30"><STRONG>{--ADMIN_EDIT_EXTENSIONS--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="30"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="180"><STRONG>{--ADMIN_EXT_NAME--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="80"><STRONG>{--ADMIN_EXT_CSSFILE--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="80"><STRONG>{--ADMIN_EXT_ACTIVE--}</STRONG></TD>
+       </TR>
+       {!__EXTENSIONS_ROWS!}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="modify" class="admin_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_extensions_edit_row.tpl
new file mode 100644 (file)
index 0000000..b325660
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><STRONG>$content[id]</STRONG>
+       <INPUT type="hidden" name="sel[$content[id]]" value="1" /></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">
+       &nbsp;&nbsp;$content[name]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[css]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">
+       $content[active]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_installed.tpl b/0.2.1/templates/de/html/admin/admin_extensions_installed.tpl
new file mode 100644 (file)
index 0000000..8a1704a
--- /dev/null
@@ -0,0 +1,7 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="400" class="admin_done dashed">
+       <TR>
+               <TD align="center" height="40"><STRONG>{--ADMIN_EXT_ALREADY_INSTALLED_1--}$content{--ADMIN_EXT_ALREADY_INSTALLED_2--}</STRONG>
+               </TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_list.tpl b/0.2.1/templates/de/html/admin/admin_extensions_list.tpl
new file mode 100644 (file)
index 0000000..be9968f
--- /dev/null
@@ -0,0 +1,21 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EXT_NEW_FOUND_TITLE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" width="5%" class="admin_title bottom2 right2">{--ID_SELECT--}</TD>
+               <TD align="center" width="35%" class="admin_title bottom2 right2">{--ADMIN_EXT_DOWNLOAD_LINK--}</TD>
+               <TD align="center" width="30%" class="admin_title bottom2 right2">{--ADMIN_EXT_FILE_CTIME--}</TD>
+               <TD align="center" width="15%" class="admin_title bottom2 right2">{--ADMIN_EXT_FILE_SIZE--}</TD>
+               <TD align="center" width="15%" class="admin_title bottom2">{--ADMIN_EXT_FILE_VERSION--}</TD>
+       </TR>
+       {--__EXTENSIONS_ROWS--}
+       <TR>
+               <TD colspan="2" align="center" class="admin_title right2">{--ADMIN_EXT_TOTAL_FOUND--}:
+               <STRONG>{--__TEXT_VALUE--}</STRONG></TD>
+               <TD colspan="3" align="right" class="admin_title right2">{--ADMIN_EXT_TOTAL_FSIZE--}:&nbsp;&nbsp;<STRONG>{--__TKBYTES_VALUE--}
+               {--KBYTES--}</STRONG>&nbsp;&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_row.tpl b/0.2.1/templates/de/html/admin/admin_extensions_row.tpl
new file mode 100644 (file)
index 0000000..01f5a98
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" name="sel[$content[id]]" value="$content[act_val]">
+       </TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;&nbsp;$content[name]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;&nbsp;$content[lang]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[css]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[active]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">&nbsp;&nbsp;v$content[ver]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_extensions_text.tpl b/0.2.1/templates/de/html/admin/admin_extensions_text.tpl
new file mode 100644 (file)
index 0000000..db42929
--- /dev/null
@@ -0,0 +1,13 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="99%" class="admin_table">
+       <TR>
+               <TD height="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD style="padding-left: 5px"><FONT class="tiny">$content</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_footer.tpl b/0.2.1/templates/de/html/admin/admin_footer.tpl
new file mode 100644 (file)
index 0000000..c13b658
--- /dev/null
@@ -0,0 +1 @@
+<A href="{!URL!}/modules.php?module=index">{--ADMIN_BACK_TO_GUEST_MENU--}</A>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_gmenu_delete.tpl b/0.2.1/templates/de/html/admin/admin_gmenu_delete.tpl
new file mode 100644 (file)
index 0000000..4269e44
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=guestedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD align="center" colspan="2" class="admin_header" height="40">
+               <STRONG>{--DEL_GUEST_MENU--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="admin_header bottom2">
+               {--DEL_MENU_1--}{!__CHK_VALUE!}{--DEL_MENU_2--}</TD>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><INPUT
+                       type="hidden" name="ok" value="del"> <INPUT type="hidden"
+                       name="chk" value="{!__CHK_VALUE!}_{!__CNT_VALUE!}"> <INPUT
+                       type="submit" class="admin_delete" name="submit"
+                       value="{--DEL_ENTRIES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_gmenu_delete_row.tpl b/0.2.1/templates/de/html/admin/admin_gmenu_delete_row.tpl
new file mode 100644 (file)
index 0000000..a3917df
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD width="50%" class="bottom2 switch_sw$content[sw]" align="right">$content[cnt].&nbsp;{--ENTRY_DELETE--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="bottom2 switch_sw$content[sw]">
+       $content[menu] <INPUT type="hidden" name="sel[$content[sel]]"
+               value="$content[menu]"></TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_gmenu_edit.tpl b/0.2.1/templates/de/html/admin/admin_gmenu_edit.tpl
new file mode 100644 (file)
index 0000000..ba98de7
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=guestedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="admin_table dashed">
+       <TR>
+               <TH class="admin_title bottom2 right2" align="center" width="30"
+                       height="30"><STRONG>{--ID_SELECT--}</STRONG></TH>
+               <TH class="admin_title bottom2 right2" align="center"><STRONG>{--DISPLAY_ACTION--}</STRONG></TH>
+               <TH class="admin_title bottom2 right2" align="center"><STRONG>{--DISPLAY_WHAT--}</STRONG></TH>
+               <TH class="admin_title bottom2 right2" align="center"><STRONG>{--DISPLAY_TITLE--}</STRONG></TH>
+               <TH class="admin_title bottom2" align="center"><STRONG>{--SORT_NAVIGATION--}</STRONG></TH>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}"
+                       class="admin_normal">&nbsp;* <INPUT type="submit"
+                       class="admin_submit" name="edit" value="{--EDIT_MENUS--}">&nbsp;*
+               <INPUT type="submit" class="admin_submit" name="status"
+                       value="{--CHANGE_MENUS--}">&nbsp;* <INPUT type="submit"
+                       class="admin_delete submit" name="del" value="{--DEL_MENUS--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_gmenu_edit_form.tpl b/0.2.1/templates/de/html/admin/admin_gmenu_edit_form.tpl
new file mode 100644 (file)
index 0000000..cabea84
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=guestedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD align="center" colspan="2" class="admin_header" height="40">
+               <STRONG>{--EDIT_GUEST_MENU--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="admin_header bottom2">
+               {--EDIT_MENU_1--}{!__CHK_VALUE!}{--EDIT_MENU_2--}</TD>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD align="center" class="admin_footer" colspan="2"><INPUT
+                       type="hidden" name="ok" value="edit"> <INPUT type="hidden"
+                       name="chk" value="{!__CHK_VALUE!}_{!__CNT_VALUE!}"> <INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" class="admin_submit" name="submit"
+                       value="{--SUBMIT_CHANGES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_gmenu_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_gmenu_edit_row.tpl
new file mode 100644 (file)
index 0000000..3253ca2
--- /dev/null
@@ -0,0 +1,37 @@
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="admin_edit switch_sw$content[sw]">&nbsp;&nbsp;$content[cnt].&nbsp;{--ENTRY_MODIFY--}:</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD width="50%" align="right" class="admin_edit switch_sw$content[sw]">
+       {--EDIT_ACTION--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]">
+       $content[action]</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]" align="right">
+       {--EDIT_WHAT--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]">
+       $content[what]</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]" align="right">
+       {--EDIT_TITLE--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="admin_edit switch_sw$content[sw]"><INPUT
+               type="text" name="sel[$content[sel]]" value="$content[menu]"
+               class="admin_normal" size="30" maxlength="50"></TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw] bottom2">&nbsp;</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_gmenu_status.tpl b/0.2.1/templates/de/html/admin/admin_gmenu_status.tpl
new file mode 100644 (file)
index 0000000..1d24670
--- /dev/null
@@ -0,0 +1,28 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=guestedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD colspan="4" height="5" class="admin_title seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="4" class="admin_title"><STRONG>{--CHANGE_GUEST_MENU--}</STRONG><BR>
+               <BR>
+               {--CHANGE_MENU_1--}{!__CHK_VALUE!}{--CHANGE_MENU_2--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="4" height="5" class="admin_title seperator bottom2">&nbsp;</TD>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="4" align="center" height="40" class="admin_footer">
+               <INPUT type="hidden" name="ok" value="status"> <INPUT
+                       type="hidden" name="chk" value="{!__CHK_VALUE!}_{!__CNT_VALUE!}">
+               <INPUT type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}"
+                       class="admin_normal">&nbsp;* <INPUT type="submit"
+                       class="admin_submit" name="submit" value="{--CHANGE_ENTRIES--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_guest_add.tpl b/0.2.1/templates/de/html/admin/admin_guest_add.tpl
new file mode 100644 (file)
index 0000000..bf7ad93
--- /dev/null
@@ -0,0 +1,96 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=guest_add"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_title dashed">
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right" width="245">{--ENTER_TITLE--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table" width="245"><INPUT
+                       type="text" name="title" class="admin_normal" size="30"
+                       maxlength="50"></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_WHAT_NAME--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table">{--__WHAT_SELECTION--} <BR>
+               <SPAN class="admin_note">({--CREATE_WHAT_FIRST--})</SPAN></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_PARENT_MENU--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table">{--__ACTION_SELECTION--} <BR>
+               <SPAN class="admin_note">({--CREATE_ACTION_FIRST--})</SPAN></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_BELOW_MENU--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table">{--__BELOW_SELECTION--}</TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--MENU_IS_VISIBLE--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table"><SELECT
+                       class="admin_select" name="visible" size="1">
+                       <OPTION value="Y">{--YES--}</OPTION>
+                       <OPTION value="N">{--NO--}</OPTION>
+               </SELECT></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--MENU_IS_ACTIVE--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table"><SELECT
+                       class="admin_select" name="active" size="1">
+                       <OPTION value="N">{--YES--}</OPTION>
+                       <OPTION value="Y">{--NO--}</OPTION>
+               </SELECT></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table" align="center" colspan="3">
+               <INPUT type="reset" class="admin_reset" class="admin_normal"
+                       value="{--CLEAR_FORM--}">&nbsp;* <INPUT type="submit"
+                       class="admin_submit" name="ok" value="{--ADMIN_ADD_MENU--}">
+               </TD>
+               <TD class="admin_table" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" height="8" colspan="5"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_list_admins.tpl b/0.2.1/templates/de/html/admin/admin_list_admins.tpl
new file mode 100644 (file)
index 0000000..f6e3cbf
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=admins_edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="640"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_ADMINS_EDIT_ACCOUNTS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" width="20"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="160"><STRONG>{--ADMIN_ADMINS_CONTACT--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="300"><STRONG>{--ADMIN_ADMINS_EMAIL--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2" width="160"><STRONG>{--ADMIN_ADMINS_ACCESS_MODE--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="160"><STRONG>{--ADMIN_LA_MODE--}:</STRONG></TD>
+       </TR>
+       {!__ADMINS_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--ADMIN_ADMINS_EDIT--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--ADMIN_ADMINS_DELETE--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_list_admins_row.tpl b/0.2.1/templates/de/html/admin/admin_list_admins_row.tpl
new file mode 100644 (file)
index 0000000..24aa46b
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" name="sel[$content[id]]" class="admin_normal"
+               value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;&nbsp;<A
+               href="$content[email_link]">$content[login]</A></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;&nbsp;<A
+               href="mailto:$content[email]">$content[email]</A></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;&nbsp;$content[mode]</TD>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;&nbsp;$content[la_mode]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_autopurge.tpl b/0.2.1/templates/de/html/admin/admin_list_autopurge.tpl
new file mode 100644 (file)
index 0000000..0d6c9a1
--- /dev/null
@@ -0,0 +1,17 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--_UID--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--SEX--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--SURNAME--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--FAMILY_NAME--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--ADDY--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--MEMBER_JOINED--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--LAST_SEEN--}</STRONG></TD>
+               <TD class="admin_title bottom2" align="center"><STRONG>{--AUTOPURGE_NOTIFIED--}</STRONG></TD>
+       </TR>
+       {!__AUTOPURGE_ROWS!}
+       <TR>
+               <TD colspan="8" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_autopurge_row.tpl b/0.2.1/templates/de/html/admin/admin_list_autopurge_row.tpl
new file mode 100644 (file)
index 0000000..44c5f43
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[uid]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[sex]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[sname]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[fname]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[email]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[joined]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[last]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[notified]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_bank_package.tpl b/0.2.1/templates/de/html/admin/admin_list_bank_package.tpl
new file mode 100644 (file)
index 0000000..8a25f47
--- /dev/null
@@ -0,0 +1,31 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=list_bank_package"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="620"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="8" align="center" class="admin_title" height="30"><STRONG>{--ADMIN_LIST_BANK_PACKAGES--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="20" colspan="2" align="center"
+                       class="admin_title bottom2 right2"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="80" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_TITLE--}:</STRONG></TD>
+               <TD width="120" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_DESCR--}:</STRONG></TD>
+               <TD width="120" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_ACCOUNT_FEE--}</STRONG></TD>
+               <TD width="80" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_ACCOUNT_INTEREST_PLUS--}</STRONG></TD>
+               <TD width="80" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_ACCOUNT_INTEREST_MINUS--}</STRONG></TD>
+               <TD width="120" align="center" class="admin_title bottom2"><STRONG>{--ADMIN_LIST_BANK_PACKAGES_STATUS--}</STRONG></TD>
+       </TR>
+       {--__BANK_PACKAGE_ROWS--}
+       <TR>
+               <TD colspan="8" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--ADMIN_DE_ACTIVATE--}">&nbsp;* <INPUT type="submit"
+                       name="edit" class="admin_submit" value="{--ADMIN_EDIT--}">&nbsp;*
+               <INPUT type="submit" name="delete" class="admin_delete"
+                       value="{--ADMIN_DELETE_ENTRIES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_list_bank_package_row.tpl b/0.2.1/templates/de/html/admin/admin_list_bank_package_row.tpl
new file mode 100644 (file)
index 0000000..5a1c9d2
--- /dev/null
@@ -0,0 +1,18 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2"><INPUT
+               type="checkbox" name="id[$content[id]]" value="1" /></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>$content[id]</STRONG>
+       </TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[title]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[description]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[fee] {!POINTS!}</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[plus]%</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[minus]%</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[active]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_beg.tpl b/0.2.1/templates/de/html/admin/admin_list_beg.tpl
new file mode 100644 (file)
index 0000000..9e1fabb
--- /dev/null
@@ -0,0 +1,32 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_header bottom2 right2" align="center" width="60">
+               <STRONG>{--BEG_RANK--}</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center" width="90">
+               <STRONG>{--_UID--}:</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--SURNAME_FAMILY--}:</STRONG>
+               </TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--BEG_TOTAL--}:</STRONG>
+               </TD>
+               <TD class="admin_header bottom2" align="center" width="160"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG>
+               </TD>
+       </TR>
+       {--__BEG_ROWS--}
+       <TR>
+               <TD colspan="3" class="admin_header bottom2 right2" height="28"
+                       align="right"><U>{--BEG_MEMBER_TOTAL--}:</U>&nbsp;</TD>
+               <TD class="admin_header bottom2 right2" height="28">&nbsp;<U>{!__TOTAL!}
+               {!POINTS!}</U></TD>
+               <TD class="admin_header bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" class="admin_header" align="center" height="55">
+               {--__BEG_WITHDRAW_FORM--}</TD>
+       </TR>
+</TABLE>
+
+<DIV class="admin_note"><STRONG>{--ADMIN_BEG_WINNER_HIGLIGHTED--}</STRONG><BR>
+<BR>
+<FONT class="admin_note">{--ADMIN_BEG_TIMEOUT_1--} <STRONG>{!__AUTOPURGE_TIMEOUT!}</STRONG>
+{--ADMIN_BEG_TIMEOUT_2--}</FONT></DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_list_beg_form.tpl b/0.2.1/templates/de/html/admin/admin_list_beg_form.tpl
new file mode 100644 (file)
index 0000000..2d50364
--- /dev/null
@@ -0,0 +1,6 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_beg"
+       method="POST" style="margin-bottom: 5px"><INPUT type="submit"
+       name="withdraw" class="admin_submit"
+       value="{--ADMIN_BEG_WITHDRAW_NOW--}"></FORM>
+
+<DIV class="admin_note">({--ADMIN_BEG_WITHDRAW_NOTE--})</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_list_beg_rows.tpl b/0.2.1/templates/de/html/admin/admin_list_beg_rows.tpl
new file mode 100644 (file)
index 0000000..0fccc80
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[win1]$content[cnt]$content[win2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[win1]<A
+               href="{!URL!}/modules.php?module=admin&amp;what=list_user&amp;u_id=$content[uid]">$content[uid]</A>$content[win2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[win1]<A
+               href="$content[email]">$content[salut] $content[sname]
+       $content[fname]</A>$content[win2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[turbo]
+       {!POINTS!}</TD>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;$content[last]</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_list_bonus.tpl b/0.2.1/templates/de/html/admin/admin_list_bonus.tpl
new file mode 100644 (file)
index 0000000..82e35d7
--- /dev/null
@@ -0,0 +1,32 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_header bottom2 right2" align="center" width="60">
+               <STRONG>{--BONUS_RANK--}</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center" width="90">
+               <STRONG>{--_UID--}:</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--SURNAME_FAMILY--}:</STRONG>
+               </TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--BONUS_TURBO_TOTAL2--}:</STRONG>
+               </TD>
+               <TD class="admin_header bottom2" align="center" width="160"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG>
+               </TD>
+       </TR>
+       {!__BONUS_ROWS!}
+       <TR>
+               <TD colspan="3" class="admin_header bottom2 right2" height="28"
+                       align="right"><U>{--BONUS_MEMBER_TOTAL--}:</U>&nbsp;</TD>
+               <TD class="admin_header bottom2 right2" height="28">&nbsp;<U>{!__TOTAL!}
+               {!POINTS!}</U></TD>
+               <TD class="admin_header bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" class="admin_header" align="center" height="55">
+               {!__BONUS_WITHDRAW_FORM!}</TD>
+       </TR>
+</TABLE>
+
+<DIV class="admin_note"><STRONG>{--ADMIN_BONUS_WINNER_HIGLIGHTED--}</STRONG><BR>
+<BR>
+<FONT class="admin_note">{--ADMIN_BONUS_TIMEOUT_1--} <STRONG>{!__AUTOPURGE_TIMEOUT!}</STRONG>
+{--ADMIN_BONUS_TIMEOUT_2--}</FONT></DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_list_bonus_form.tpl b/0.2.1/templates/de/html/admin/admin_list_bonus_form.tpl
new file mode 100644 (file)
index 0000000..c443858
--- /dev/null
@@ -0,0 +1,6 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_bonus"
+       method="POST" style="margin-bottom: 5px"><INPUT type="submit"
+       name="withdraw" class="admin_submit"
+       value="{--ADMIN_BONUS_WITHDRAW_NOW--}"></FORM>
+
+<DIV class="admin_note">({--ADMIN_BONUS_WITHDRAW_NOTE--})</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_list_bonus_rows.tpl b/0.2.1/templates/de/html/admin/admin_list_bonus_rows.tpl
new file mode 100644 (file)
index 0000000..0fccc80
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[win1]$content[cnt]$content[win2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[win1]<A
+               href="{!URL!}/modules.php?module=admin&amp;what=list_user&amp;u_id=$content[uid]">$content[uid]</A>$content[win2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[win1]<A
+               href="$content[email]">$content[salut] $content[sname]
+       $content[fname]</A>$content[win2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[turbo]
+       {!POINTS!}</TD>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;$content[last]</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_list_cats.tpl b/0.2.1/templates/de/html/admin/admin_list_cats.tpl
new file mode 100644 (file)
index 0000000..a91b4ed
--- /dev/null
@@ -0,0 +1,15 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="admin_header bottom2"
+                       height="50">{--USER_ID--}: <STRONG><A
+                       href="{!URL!}/modules.php?module=admin&amp;what=list_user&amp;u_id={!__UID!}">{!__UID!}</A></STRONG>({!__EMAIL!})
+               </TD>
+       </TR>
+       {!__CATS_ROWS!}
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"
+                       style="padding-top: 10px; padding-bottom: 10px"><U>{--ADMIN_MEMBER_FUNCTIONS--}:</U><BR>
+               {!__MEMBER_LINKS!}</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_cats_404.tpl b/0.2.1/templates/de/html/admin/admin_list_cats_404.tpl
new file mode 100644 (file)
index 0000000..7f9fa91
--- /dev/null
@@ -0,0 +1,24 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="admin_table dashed">
+       <TR>
+               <TD height="10" class="admin_header seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_header"><STRONG>{--ADMIN_MEM_NO_CATS_1--}<A
+                       href="{!URL!}/modules.php?module=admin&amp;what=list_user&amp;u_id={!__UID!}">{!__UID!}</A>{--ADMIN_MEM_NO_CATS_2--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="10" class="admin_header seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="10" class="admin_header seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_header"><U>{--ADMIN_MEMBER_FUNCTIONS--}:</U><BR>
+               {!__MEMBER_LINKS!}</TD>
+       </TR>
+       <TR>
+               <TD height="10" class="admin_header seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_cats_row.tpl b/0.2.1/templates/de/html/admin/admin_list_cats_row.tpl
new file mode 100644 (file)
index 0000000..961afa9
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD class="bottom2 switch_sw$content[sw]" width="30" align="right">$content[cnt].&nbsp;&nbsp;</TD>
+       <TD class="bottom2 switch_sw$content[sw]">$content[cat]</TD>
+       <TD class="bottom2 switch_sw$content[sw] left2" width="50"
+               align="center">$content[sel]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_country.tpl b/0.2.1/templates/de/html/admin/admin_list_country.tpl
new file mode 100644 (file)
index 0000000..07b146b
--- /dev/null
@@ -0,0 +1,28 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_country"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="620"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title" height="30"><STRONG>{--ADMIN_LIST_COUNTRIES--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="20" align="center" class="admin_title bottom2 right2"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="80" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_COUNTRY_CODE--}:</STRONG></TD>
+               <TD width="400" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_COUNTRY_NAME--}:</STRONG></TD>
+               <TD width="120" align="center" class="admin_title bottom2"><STRONG>{--ADMIN_COUNTRY_STATUS--}</STRONG></TD>
+       </TR>
+       {--__COUNTRY_ROWS--}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--ADMIN_DE_ACTIVATE--}">&nbsp;* <INPUT type="submit"
+                       name="edit" class="admin_submit" value="{--ADMIN_EDIT--}">&nbsp;*
+               <INPUT type="submit" name="delete" class="admin_delete"
+                       value="{--ADMIN_DELETE_ENTRIES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<P>{--__ADD_COUNTRY_FORM--}</P>
diff --git a/0.2.1/templates/de/html/admin/admin_list_country_del_row.tpl b/0.2.1/templates/de/html/admin/admin_list_country_del_row.tpl
new file mode 100644 (file)
index 0000000..a0709fe
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>$content[id]</STRONG>
+       <INPUT type="hidden" name="id[$content[id]]" value="1"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[code]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[descr]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[status]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_country_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_list_country_edit_row.tpl
new file mode 100644 (file)
index 0000000..6ddb9bd
--- /dev/null
@@ -0,0 +1,14 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>$content[id]</STRONG>
+       <INPUT type="hidden" name="id[$content[id]]" value="1"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="text" name="code[$content[id]]" class="admin_normal" size="2"
+               maxelength="2" value="$content[code]"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="text" name="descr[$content[id]]" class="admin_normal" size="20"
+               maxelength="255" value="$content[descr]"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2"><SELECT
+               name="is_active[$content[id]]" class="admin_select" size="1">
+               $content[status]
+       </SELECT></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_country_form.tpl b/0.2.1/templates/de/html/admin/admin_list_country_form.tpl
new file mode 100644 (file)
index 0000000..0085766
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_country"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title" height="30"><STRONG>{--__COUNTRY_TITLE--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="20" align="center" class="admin_title bottom2 right2"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="80" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_COUNTRY_CODE--}:</STRONG></TD>
+               <TD width="300" align="center" class="admin_title bottom2 right2"><STRONG>{--ADMIN_COUNTRY_NAME--}:</STRONG></TD>
+               <TD width="120" align="center" class="admin_title bottom2"><STRONG>{--ADMIN_COUNTRY_STATUS--}</STRONG></TD>
+       </TR>
+       {--__COUNTRY_ROWS--}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer">
+               {--__COUNTRY_RESET--} <INPUT type="submit" name="{--__COUNTRY_MODE--}"
+                       class="{--__COUNTRY_CLASS--}" value="{--__COUNTRY_SUBMIT--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_list_country_no_row.tpl b/0.2.1/templates/de/html/admin/admin_list_country_no_row.tpl
new file mode 100644 (file)
index 0000000..7543814
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD align="center" class="bottom2" colspan="4" height="30"><STRONG>{--ADMIN_COUNTRY_NO_CODES_SETUP--}</STRONG>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_country_row.tpl b/0.2.1/templates/de/html/admin/admin_list_country_row.tpl
new file mode 100644 (file)
index 0000000..4354d26
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><INPUT
+               type="checkbox" name="id[$content[id]]" value="$content[status]"
+               class="admin_normal"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[code]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[name]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[active]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_doubler_already.tpl b/0.2.1/templates/de/html/admin/admin_list_doubler_already.tpl
new file mode 100644 (file)
index 0000000..13baa9e
--- /dev/null
@@ -0,0 +1,22 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="540"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title" align="center" height="30" colspan="4"><STRONG
+                       class="big">{--__ADMIN_DOUBLER_LIST_ALREADY--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="admin_title bottom2 right2" align="center" height="25"
+                       width="25%"><STRONG class="medium">{--_UID--}:</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center" width="25%">
+               <STRONG class="medium">{!POINTS!}:</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center" width="25%">
+               <STRONG class="medium">{--ADMIN_DOUBLER_PAYMENT_TIMEMARK--}:</STRONG>
+               </TD>
+               <TD class="admin_title bottom2" align="center" width="25%"><STRONG
+                       class="medium">{--REMOTE_IP--}:</STRONG></TD>
+       </TR>
+       {--__ROWS_CONTENT--}
+       <TR>
+               <TD colspan="4" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_doubler_overview.tpl b/0.2.1/templates/de/html/admin/admin_list_doubler_overview.tpl
new file mode 100644 (file)
index 0000000..fe2ec8c
--- /dev/null
@@ -0,0 +1,64 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="540"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title bottom2" align="center" height="30" colspan="2">
+               <STRONG class="big">{--ADMIN_DOUBLER_LIST_OVERVIEW--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="admin_title bottom2 right2" align="center" height="25"
+                       width="260"><STRONG class="medium">{--ADMIN_DOUBLER_LIST_ALREADY--}</STRONG>
+               </TD>
+               <TD class="admin_title bottom2" align="center" height="25" width="260">
+               <STRONG class="medium">{--ADMIN_DOUBLER_LIST_WAITING--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="right2" align="center"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="275"
+                       class="admin_table dashed">
+                       <TR>
+                               <TD class="switch_sw1 bottom2" align="right" width="245">
+                               {--ADMIN_DOUBLER_ALREADY_ALL--}:&nbsp;</TD>
+                               <TD class="switch_sw1 bottom2" align="center" width="30"><STRONG>{!__DOUBLER_ALREADY_ALL_LINK!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD class="switch_sw2 bottom2" align="right">
+                               {--ADMIN_DOUBLER_ALREADY_DIRECT--}:&nbsp;</TD>
+                               <TD class="switch_sw2 bottom2" align="center"><STRONG>{!__DOUBLER_ALREADY_DIRECT_LINK!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD class="switch_sw1" align="right">
+                               {--ADMIN_DOUBLER_ALREADY_REF--}:&nbsp;</TD>
+                               <TD class="switch_sw1" align="center"><STRONG>{!__DOUBLER_ALREADY_REF_LINK!}</STRONG>
+                               </TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD align="center"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="275"
+                       class="admin_table dashed">
+                       <TR>
+                               <TD class="switch_sw1 bottom2" align="right" width="245">
+                               {--ADMIN_DOUBLER_WAITING_ALL--}:&nbsp;</TD>
+                               <TD class="switch_sw1 bottom2" align="center" width="30"><STRONG>{!__DOUBLER_WAITING_ALL_LINK!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD class="switch_sw2 bottom2" align="right">
+                               {--ADMIN_DOUBLER_WAITING_DIRECT--}:&nbsp;</TD>
+                               <TD class="switch_sw2 bottom2" align="center"><STRONG>{!__DOUBLER_WAITING_DIRECT_LINK!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD class="switch_sw1" align="right">
+                               {--ADMIN_DOUBLER_WAITING_REF--}:&nbsp;</TD>
+                               <TD class="switch_sw1" align="center"><STRONG>{!__DOUBLER_WAITING_REF_LINK!}</STRONG>
+                               </TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_doubler_waiting.tpl b/0.2.1/templates/de/html/admin/admin_list_doubler_waiting.tpl
new file mode 100644 (file)
index 0000000..c301e08
--- /dev/null
@@ -0,0 +1,22 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="540"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title" align="center" height="30" colspan="4"><STRONG
+                       class="big">{--__ADMIN_DOUBLER_LIST_WAITING--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="admin_title bottom2 right2" align="center" height="25"
+                       width="25%"><STRONG class="medium">{--_UID--}:</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center" width="25%">
+               <STRONG class="medium">{!POINTS!}:</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center" width="25%">
+               <STRONG class="medium">{--ADMIN_DOUBLER_PAYMENT_TIMEMARK--}:</STRONG>
+               </TD>
+               <TD class="admin_title bottom2" align="center" width="25%"><STRONG
+                       class="medium">{--REMOTE_IP--}:</STRONG></TD>
+       </TR>
+       {--__ROWS_CONTENT--}
+       <TR>
+               <TD colspan="4" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_extensions.tpl b/0.2.1/templates/de/html/admin/admin_list_extensions.tpl
new file mode 100644 (file)
index 0000000..abef924
--- /dev/null
@@ -0,0 +1,21 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_EXT_NEW_FOUND_TITLE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" width="5%" class="admin_title bottom2 right2">{--ID_SELECT--}</TD>
+               <TD align="center" width="35%" class="admin_title bottom2 right2">{--ADMIN_EXT_DOWNLOAD_LINK--}</TD>
+               <TD align="center" width="30%" class="admin_title bottom2 right2">{--ADMIN_EXT_FILE_CTIME--}</TD>
+               <TD align="center" width="15%" class="admin_title bottom2 right2">{--ADMIN_EXT_FILE_SIZE--}</TD>
+               <TD align="center" width="15%" class="admin_title bottom2">{--ADMIN_EXT_FILE_VERSION--}</TD>
+       </TR>
+       {!__EXTENSIONS_ROWS!}
+       <TR>
+               <TD colspan="2" align="center" class="admin_title right2">{--ADMIN_EXT_TOTAL_FOUND--}:
+               <STRONG>{!__TEXT_VALUE!}</STRONG></TD>
+               <TD colspan="3" align="right" class="admin_title right2">{--ADMIN_EXT_TOTAL_FSIZE--}:&nbsp;&nbsp;<STRONG>{--__TKBYTES_VALUE--}
+               {--KBYTES--}</STRONG>&nbsp;&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_extensions_row.tpl b/0.2.1/templates/de/html/admin/admin_list_extensions_row.tpl
new file mode 100644 (file)
index 0000000..44e5d90
--- /dev/null
@@ -0,0 +1,15 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[id].</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><A
+               href="$content[link]">$content[name]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[last]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[size]
+       {--KBYTES--}</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[new_ver]
+       ($content[old_ver])</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;</TD>
+       <TD colspan="4" class="switch_sw$content[sw] bottom2"><FONT
+               class="tiny">$content[info]</FONT></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_holiday.tpl b/0.2.1/templates/de/html/admin/admin_list_holiday.tpl
new file mode 100644 (file)
index 0000000..5c6956f
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=del_holiday"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD width="10" class="admin_title bottom2 right2" align="center"
+                       height="30"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD width="50" class="admin_title bottom2 right2" align="center"><STRONG>{--_UID--}:</STRONG></TD>
+               <TD width="80" class="admin_title bottom2 right2" align="center"><STRONG>{--HOLIDAY_ADMIN_TSTART--}:</STRONG></TD>
+               <TD width="80" class="admin_title bottom2 right2" align="center"><STRONG>{--HOLIDAY_ADMIN_TEND--}:</STRONG></TD>
+               <TD width="100" class="admin_title bottom2 right2" align="center"><STRONG>{--HOLIDAY_ADMIN_COMMENTS--}:</STRONG></TD>
+               <TD width="100" class="admin_title bottom2 right2" align="center"><STRONG>{--ACCOUNT_STATUS--}:</STRONG></TD>
+               <TD width="160" class="admin_title bottom2" align="center"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG></TD>
+       </TR>
+       {--__HOLIDAY_ROWS--}
+       <TR>
+               <TD colspan="7" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_delete"
+                       value="{--HOLIDAY_ADMIN_STOP_CHECKED--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_list_holiday_row.tpl b/0.2.1/templates/de/html/admin/admin_list_holiday_row.tpl
new file mode 100644 (file)
index 0000000..8c90ec0
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" name="sel[$content[id]]" class="admin_normal"
+               value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[uid]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[start]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[end]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><PRE>$content[comments]</PRE></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[status]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">$content[last]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_links.tpl b/0.2.1/templates/de/html/admin/admin_list_links.tpl
new file mode 100644 (file)
index 0000000..946cd7c
--- /dev/null
@@ -0,0 +1,18 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD colspan="4" align="center" class="admin_header bottom2"
+                       height="40"><STRONG><A
+                       href="{!URL!}/modules.php?module=admin&amp;what=list_user&amp;u_id={!__UID_VALUE!}">{--__SNAME_VALUE--}
+               {--__FNAME_VALUE--}</A></STRONG> ({--__EMAIL_VALUE--}):</TD>
+       </TR>
+       {--__EMAIL_LIST--}
+       <TR>
+               <TD colspan="4" height="40" class="admin_header" align="center">
+               {--MEMBER_TOTAL_LINKS_1--}{--__NUMS_VALUE--}{--MEMBER_TOTAL_LINKS_2--}<BR>
+               <A
+                       href="{!URL!}/modules.php?module=admin&amp;what=list_links&amp;u_id={!__UID_VALUE!}&del=all"
+                       onclick="return confirm('{--ADMIN_REALLY_DELETE_ALL_MAILS--}')">{--ADMIN_DEL_UNCONFIRMED_LINKS--}</A>
+               </TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_list_links_problem.tpl b/0.2.1/templates/de/html/admin/admin_list_links_problem.tpl
new file mode 100644 (file)
index 0000000..ce9d17b
--- /dev/null
@@ -0,0 +1,5 @@
+<TR>
+  <TD align="center" class="switch_sw$content[sw] bottom2" colspan="4">
+    <STRONG class="member_failed large">$content[problem]:</STRONG>&nbsp;$content[data]
+  </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_links_row.tpl b/0.2.1/templates/de/html/admin/admin_list_links_row.tpl
new file mode 100644 (file)
index 0000000..fd86b4a
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[link]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[subj]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[stamp]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[cat]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_payments.tpl b/0.2.1/templates/de/html/admin/admin_list_payments.tpl
new file mode 100644 (file)
index 0000000..c7ff38d
--- /dev/null
@@ -0,0 +1,25 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=payments"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="99%" class="admin_table dashed">
+       <TR>
+               <TD align="center" colspan="5" class="admin_title" height="30"><STRONG>{--EDIT_DEL_PAYMENT--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--PAY_TIME--}:</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--PAY_PAYMENT--}:</STRONG></TD>
+               <TD class="admin_title bottom2 right2" align="center"><STRONG>{--PAY_PRICE--}:</STRONG></TD>
+               <TD class="admin_title bottom2" align="center"><STRONG>{--PAY_TITLE--}:</STRONG></TD>
+       </TR>
+       {--__PAYMENT_ROWS--}
+       <TR>
+               <TD class="admin_footer" align="center" colspan="5"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--EDIT_PAY--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--DEL_PAY--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_list_payouts.tpl b/0.2.1/templates/de/html/admin/admin_list_payouts.tpl
new file mode 100644 (file)
index 0000000..3d7390d
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_payouts"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="6" align="center" class="admin_title" height="30"><STRONG>{--PAYOUT_ADMIN_LIST_PAYOUTS--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="20" align="center" class="admin_title bottom2 right2"><STRONG>{--_UID--}</STRONG></TD>
+               <TD width="40" align="center" class="admin_title bottom2 right2"><STRONG>{--PAYOUT_TOTAL_PAYOUT--}</STRONG></TD>
+               <TD width="80" align="center" class="admin_title bottom2 right2"><STRONG>{--PAYOUT_TARGET_ACCOUNT2--}</STRONG></TD>
+               <TD width="80" align="center" class="admin_title bottom2 right2"><STRONG>{--PAYOUT_TARGET_BANK2--}</STRONG></TD>
+               <TD width="120" align="center" class="admin_title bottom2 right2"><STRONG>{--PAYOUT_TIMESTAMP--}</STRONG></TD>
+               <TD width="220" align="center" class="admin_title bottom2"><STRONG>{--PAYOUT_STATUS--}</STRONG></TD>
+       </TR>
+       {--__PAYOUT_ROWS--}
+       <TR>
+               <TD colspan="6" align="center" class="admin_footer"><A
+                       href="{!URL!}/modules.php?module=admin&amp;what=list_payouts&do=delete">{--PAYOUT_DELETE_ALL_REQUESTS--}</A>
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_list_payouts_banner.tpl b/0.2.1/templates/de/html/admin/admin_list_payouts_banner.tpl
new file mode 100644 (file)
index 0000000..91646e8
--- /dev/null
@@ -0,0 +1,11 @@
+{--PAYOUT_OPTIONAL_BANNER--}:&nbsp;
+<STRONG><A href="$content[banner]" title="$content[alt]"
+       target="_blank">$content[banner]</A></STRONG>
+<BR>
+{--PAYOUT_ALTERNATE_TEXT--}:&nbsp;
+<STRONG>$content[alt]</STRONG>
+<BR>
+<BR>
+{--PAYOUT_TARGET_URL--}:&nbsp;
+<STRONG>$content[url]</STRONG>
+<BR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_payouts_row.tpl b/0.2.1/templates/de/html/admin/admin_list_payouts_row.tpl
new file mode 100644 (file)
index 0000000..8edeca4
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[ulink]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[ptype]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[account]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[bank]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[tstamp]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[status]</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_list_payouts_txt.tpl b/0.2.1/templates/de/html/admin/admin_list_payouts_txt.tpl
new file mode 100644 (file)
index 0000000..1d24fc1
--- /dev/null
@@ -0,0 +1,8 @@
+{--PAYOUT_LINK_TEXT--}:
+<BR>
+<STRONG>$content[txt_link]</STRONG>
+<BR>
+<BR>
+{--PAYOUT_LINK_URL--}:
+<BR>
+<STRONG>$content[txt_url]</STRONG>
diff --git a/0.2.1/templates/de/html/admin/admin_list_rallye_noselect.tpl b/0.2.1/templates/de/html/admin/admin_list_rallye_noselect.tpl
new file mode 100644 (file)
index 0000000..cf2f29c
--- /dev/null
@@ -0,0 +1,3 @@
+{--RALLYE_NO_RALLYES_SELECTED_1--}
+<A href="{!URL!}/modules.php?module=admin&amp;what=list_rallyes">{--RALLYE_NO_RALLYES_SELECTED_2--}</A>
+{--RALLYE_NO_RALLYES_SELECTED_3--}
diff --git a/0.2.1/templates/de/html/admin/admin_list_rallye_prices.tpl b/0.2.1/templates/de/html/admin/admin_list_rallye_prices.tpl
new file mode 100644 (file)
index 0000000..e846d15
--- /dev/null
@@ -0,0 +1,29 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_rallyes"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title" height="30"><STRONG>{--RALLYE_EDIT_DEL_RALLYES--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" width="10" class="admin_title bottom2 right2"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" width="100" class="admin_title bottom2 right2"><STRONG>{--RALLYE_TITLE--}:</STRONG></TD>
+               <TD align="center" width="70" class="admin_title bottom2 right2"><STRONG>{--RALLYE_ADMIN_ID--}:</STRONG></TD>
+               <TD align="center" width="200" class="admin_title bottom2 right2"><STRONG>{--RALLYE_TSTART--}:</STRONG></TD>
+               <TD align="center" width="200" class="admin_title bottom2"><STRONG>{--RALLYE_TEND--}:</STRONG></TD>
+       </TR>
+       {--__RALLYE_ROWS--}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--RALLYE_EDIT_ADMIN--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--RALLYE_DELETE_ADMIN--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note"><STRONG>{--RALLYE_EDIT_DEL_NOTE--}</STRONG>
+</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_list_rallye_prices_row.tpl b/0.2.1/templates/de/html/admin/admin_list_rallye_prices_row.tpl
new file mode 100644 (file)
index 0000000..9b5cc59
--- /dev/null
@@ -0,0 +1,9 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[select]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><A
+               href="{!URL!}/modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content[id]">$content[title]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><A
+               href="$content[email_link]">$content[alogin]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[start]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[end]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_rallye_usr.tpl b/0.2.1/templates/de/html/admin/admin_list_rallye_usr.tpl
new file mode 100644 (file)
index 0000000..d0e28c8
--- /dev/null
@@ -0,0 +1,18 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="4" align="center" class="admin_title" height="30"><STRONG>{--RALLYE_LIST_USERS_1--}{--__RALLYE_VALUE--}{--RALLYE_LIST_USERS_2--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--_UID--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--RALLYE_OLD_REFS--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--RALLYE_NEW_REFS--}:</STRONG></TD>
+               <TD align="center" class="admin_title bottom2"><STRONG>{--RALLYE_REF_POINTS--}:</STRONG></TD>
+       </TR>
+       {--__RALLYE_USER_ROWS--}
+       <TR>
+               <TD colspan="4" align="center" class="admin_footer"><STRONG
+                       class="admin_note">{--RALLYE_REF_POINTS_NOTE--}</STRONG></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_rallye_usr_row.tpl b/0.2.1/templates/de/html/admin/admin_list_rallye_usr_row.tpl
new file mode 100644 (file)
index 0000000..a47be84
--- /dev/null
@@ -0,0 +1,12 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[bold_l]<A
+               href="{!URL!}/modules.php?module=admin&amp;what=list_user&amp;u_id=$content[uid]">$content[uid]</A>$content[bold_r]
+       </TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[bold_l]$content[old]$content[bold_r]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[bold_l]$content[cnt]$content[bold_r]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[bold_l]$content[opoints]$content[bold_r]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_rallyes.tpl b/0.2.1/templates/de/html/admin/admin_list_rallyes.tpl
new file mode 100644 (file)
index 0000000..c034c51
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_rallyes"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="730"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="6" align="center" class="admin_title" height="30"><STRONG>{--RALLYE_EDIT_DEL_RALLYES--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" width="10" class="admin_title bottom2 right2"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" colspan="5"><STRONG>{--RALLYE_LIST_OVERVIEW_TITLE--}:</STRONG></TD>
+       </TR>
+       {--__RALLYE_ROWS--}
+       <TR>
+               <TD colspan="6" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--RALLYE_EDIT_ADMIN--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--RALLYE_DELETE_ADMIN--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note"><STRONG class="admin_note">{--RALLYE_EDIT_ONLY_INACTIVE_NOTE--}</STRONG>
+</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_list_rallyes_row.tpl b/0.2.1/templates/de/html/admin/admin_list_rallyes_row.tpl
new file mode 100644 (file)
index 0000000..d8e4e1e
--- /dev/null
@@ -0,0 +1,54 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"
+               rowspan="5">$content[select]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>{--RALLYE_TITLE--}:</STRONG><BR>
+       $content[title]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>{--RALLYE_DESCR2--}:</STRONG><BR>
+       $content[descr]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>{--RALLYE_ADMIN_ID--}:</STRONG><BR>
+       <A href="$content[email_link]">$content[alogin]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>{--RALLYE_TSTART--}:</STRONG><BR>
+       $content[start_date]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2"><STRONG>{--RALLYE_TEND--}:</STRONG><BR>
+       $content[end_date]</TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>{--RALLYE_TEMPLATE2--}:</STRONG><BR>
+       $content[template]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>{--RALLYE_AUTO_ADD--}:</STRONG><BR>
+       <A
+               href="{!URL!}/modules.php?module=admin&amp;what=list_rallyes&amp;rallye=$content[id]&amp;auto=$content[auto]"
+               title="$content[auto_title]">$content[auto_lnk]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>{--RALLYE_ACTIVE--}:</STRONG><BR>
+       <A
+               href="{!URL!}/modules.php?module=admin&amp;what=list_rallyes&amp;rallye=$content[id]&amp;activate=$content[active]"
+               title="$content[active_title]">$content[active_lnk]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><STRONG>{--RALLYE_NOTIFY--}:</STRONG><BR>
+       <A
+               href="{!URL!}/modules.php?module=admin&amp;what=list_rallyes&amp;rallye=$content[id]&amp;notify=$content[notify]"
+               title="$content[notify_title]">$content[notify_lnk]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2"><STRONG>{--RALLYE_NOTIFIED--}:</STRONG><BR>
+       $content[notified]</TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"
+               colspan="3"><STRONG>{--RALLYE_ASSIGNED_PRICES--}:</STRONG><BR>
+       <A
+               href="{!URL!}/modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content[id]">$content[prices_cnt]</A>
+       </TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2" colspan="2">
+       <STRONG>{--RALLYE_ASSIGNED_USERS--}:</STRONG><BR>
+       $content[joined]</TD>
+</TR>
+<TR>
+       <TD align="center" class="admin_title bottom2" colspan="5" height="35">
+       <STRONG>{--RALLYE_LIMITATIONS--}:</STRONG></TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"
+               colspan="3"><STRONG>{--RALLYE_MIN_USERS_MINI--}:</STRONG><BR>
+       $content[min_users]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2" colspan="2">
+       <STRONG>{--RALLYE_MIN_PRICES_MINI--}:</STRONG><BR>
+       $content[min_prices]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_rallyes_row2.tpl b/0.2.1/templates/de/html/admin/admin_list_rallyes_row2.tpl
new file mode 100644 (file)
index 0000000..95068b1
--- /dev/null
@@ -0,0 +1,12 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[bold_l]<A
+               href="{!URL!}/modules.php?module=admin&amp;what=list_user&amp;u_id=$content[uid]">$content[uid]</A>$content[bold_r]
+       </TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[bold_l]$content[old]$content[bold_r]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">
+       $content[bold_l]$content[cnt]$content[bold_r]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">
+       $content[bold_l]$content[points]$content[bold_r]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_refs.tpl b/0.2.1/templates/de/html/admin/admin_list_refs.tpl
new file mode 100644 (file)
index 0000000..4f693e6
--- /dev/null
@@ -0,0 +1,21 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="6" class="admin_title" height="30"><STRONG>{--ADMIN_LIST_REFERRALS_1--}<U>{--_UID--}</U>{--ADMIN_LIST_REFERRALS_2--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD width="5%" align="center" class="admin_header bottom2 right2"><STRONG>{--_UID--}</STRONG></TD>
+               <TD width="5%" align="center" class="admin_header bottom2 right2"><STRONG>{--REFS_COUNT--}</STRONG></TD>
+               <TD width="35%" align="center" class="admin_header bottom2 right2"><STRONG>{--SURNAME_FAMILY--}</STRONG></TD>
+               <TD width="35%" align="center" class="admin_header bottom2 right2"><STRONG>{--ADDY--}</STRONG></TD>
+               <TD width="10%" align="center" class="admin_header bottom2 right2"><STRONG>{--ACCOUNT_STATUS--}</STRONG></TD>
+               <TD width="10%" align="center" class="admin_header bottom2"><STRONG>{--MEMBER_JOINED--}</STRONG></TD>
+       </TR>
+       {--__REF_ROWS--}
+       <TR>
+               <TD colspan="6" class="admin_footer" align="center"
+                       style="padding-top: 7px; padding-bottom: 7px"><FONT
+                       class="admin_note">{--ADMIN_LIST_REFERRALS_NOTE--}</FONT></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_refs_row.tpl b/0.2.1/templates/de/html/admin/admin_list_refs_row.tpl
new file mode 100644 (file)
index 0000000..c9a4aae
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]"
+               align="right" valign="top">$content[u_link]&nbsp;&nbsp;</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">$content[refs_link]</TD>
+       <TD class="bottom2 right2 switch_sw$content[sw]">&nbsp;$content[salut]
+       $content[surname] $content[family]</TD>
+       <TD class="bottom2 right2 switch_sw$content[sw]">&nbsp;$content[email]</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">&nbsp;$content[status]</TD>
+       <TD class="bottom2 switch_sw$content[sw]">&nbsp;$content[registered]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_task_rows.tpl b/0.2.1/templates/de/html/admin/admin_list_task_rows.tpl
new file mode 100644 (file)
index 0000000..e3f384c
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2 left2" align="center">
+       <INPUT type="checkbox" name="task[$content[id]]" value="1"
+               class="admin_normal"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[admin]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[infos]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[uid]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[type]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[created]]</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_list_transfer.tpl b/0.2.1/templates/de/html/admin/admin_list_transfer.tpl
new file mode 100644 (file)
index 0000000..77eb410
--- /dev/null
@@ -0,0 +1,29 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=del_transfer"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="620"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="6" align="center" class="admin_title2 bottom2"
+                       height="30"><STRONG>{--__TRANSFER_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="80" align="center" class="admin_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_ID--}</STRONG></TD>
+               <TD width="120" align="center" class="admin_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_STAMP--}</STRONG></TD>
+               <TD width="120" align="center" class="admin_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_FROM_UID--}</STRONG></TD>
+               <TD width="120" align="center" class="admin_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_TO_UID--}</STRONG></TD>
+               <TD width="230" align="center" class="admin_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_POINTS_REASON--}</STRONG></TD>
+               <TD width="70" align="center" class="admin_title2 bottom2"><STRONG>{!POINTS!}</STRONG>
+               </TD>
+       </TR>
+       {--__TRANSFER_ROWS--}
+       <TR>
+               <TD colspan="6" align="center" class="admin_footer">
+               {--__TRANSFER_DELETE--}</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_list_transfer_row.tpl b/0.2.1/templates/de/html/admin/admin_list_transfer_row.tpl
new file mode 100644 (file)
index 0000000..7f97796
--- /dev/null
@@ -0,0 +1,9 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><STRONG>$content[idx]</STRONG>
+       </TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[stamp]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[from_link]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[to_link]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[reason]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">$content[points]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_unconfirmed.tpl b/0.2.1/templates/de/html/admin/admin_list_unconfirmed.tpl
new file mode 100644 (file)
index 0000000..c86edfb
--- /dev/null
@@ -0,0 +1,36 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="admin_table dashed">
+       <TR>
+               <TD width="260" align="center" class="bottom2 right2">
+               {--EMAIL_SENDER--}:<BR>
+               <STRONG><A
+                       href="{!URL!}/modules.php?module=admin&amp;what=list_user&amp;u_id={--__LIST_UNCON_SENDER--}">{--__LIST_UNCON_SENDER--}</A></STRONG>
+               </TD>
+               <TD width="260" align="center" class="bottom2">
+               {--EMAIL_SUBJECT--}:<BR>
+               <STRONG>{--__LIST_UNCON_SUBJECT--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="bottom2 right2">{--EMAIL_URL--}:<BR>
+               <STRONG><A
+                       href="{!URL!}/modules.php?module=frametester&amp;url={--__LIST_UNCON_URL--}"
+                       target="_blank">{--EMAIL_URL_TEST--}</A></STRONG></TD>
+               <TD align="center" class="bottom2">{--EMAIL_TIMESTAMP--}:<BR>
+               <STRONG>{--__LIST_UNCON_STAMP--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="bottom2 right2">{--EMAIL_TEXT--}:<BR>
+               <STRONG>{--__LIST_UNCON_TEXT--}</STRONG></TD>
+               <TD align="center" class="bottom2">{--USERS_LINKS--}:<BR>
+               <STRONG>{--__LIST_UNCO_UNCONFIRMED--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center">{--__LIST_UNCON_LISTING--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_unconfirmed_header.tpl b/0.2.1/templates/de/html/admin/admin_list_unconfirmed_header.tpl
new file mode 100644 (file)
index 0000000..49c86e6
--- /dev/null
@@ -0,0 +1,9 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%"
+       class="admin_table">
+       <TR>
+               <TD width="10%" align="center" class="admin_title bottom2 top2 right2"
+                       height="26"><STRONG>{--ID_SELECT--}</TD>
+               <TD width="10%" align="center" class="admin_title bottom2 top2 right2"><STRONG>{--MAILID_LINK--}</TD>
+               <TD width="45%" align="center" class="admin_title bottom2 top2 right2"><STRONG>{--SURNAME_FAMILY--}</TD>
+               <TD width="35%" align="center" class="admin_title bottom2 top2"><STRONG>{--ACCOUNT_STATUS--}</TD>
+       </TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_list_unconfirmed_row.tpl b/0.2.1/templates/de/html/admin/admin_list_unconfirmed_row.tpl
new file mode 100644 (file)
index 0000000..d467474
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[u_link]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><A
+               href="{!URL!}/mailid.php?uid=$content[uid]&amp;$content[link]=$content[id]"
+               target="_blank">{--CLICK_NOW--}</A></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[email]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[status]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_user.tpl b/0.2.1/templates/de/html/admin/admin_list_user.tpl
new file mode 100644 (file)
index 0000000..acabedb
--- /dev/null
@@ -0,0 +1,15 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="95%"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD class="admin_header" colspan="{!__COLSPAN2!}" align="center">
+               <STRONG>{!__TITLE!}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="{!__COLSPAN2!}" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       {!__ALPHA_SORT!} {!__SORT_LINKS!} {!__PAGE_NAV!}
+       <TR>
+               <TD colspan="{!__COLSPAN2!}" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       {!__USER_ROWS!} {!__PAGE_NAV!}
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_list_user_alpha.tpl b/0.2.1/templates/de/html/admin/admin_list_user_alpha.tpl
new file mode 100644 (file)
index 0000000..2fdbb34
--- /dev/null
@@ -0,0 +1,13 @@
+<TR>
+       <TD class="admin_header" colspan="{!__COLSPAN2!}" align="center">
+       <TABLE border="0" cellspacing="0" cellpadding="0" width="510">
+               <TR>
+                       <TD class="admin_alpha">
+                       {--ADMIN_ALPHA_SELCTION--}&nbsp;[&nbsp;{!__ALPHA_LIST!}&nbsp;]</TD>
+               </TR>
+       </TABLE>
+       </TD>
+</TR>
+<TR>
+       <TD colspan="{!__COLSPAN2!}" class="seperator">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_user_pagenav.tpl b/0.2.1/templates/de/html/admin/admin_list_user_pagenav.tpl
new file mode 100644 (file)
index 0000000..2589cc0
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="admin_header" colspan="{!__COLSPAN2!}" align="center">
+       <TABLE border="0" cellspacing="0" cellpadding="0" width="520">
+               <TR>
+                       <TD class="admin_pagenav">
+                       [&nbsp;{--USER_PAGENAV--}:&nbsp;{!__PAGENAV_LIST!}&nbsp;]</TD>
+               </TR>
+       </TABLE>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_user_row.tpl b/0.2.1/templates/de/html/admin/admin_list_user_row.tpl
new file mode 100644 (file)
index 0000000..0d461d0
--- /dev/null
@@ -0,0 +1,39 @@
+<TR>
+       <TD width="5" class="switch_sw$content[sw] top2 seperator">&nbsp;</TD>
+       <TD width="20%" align="center"
+               class="right2 top2 switch_sw$content[sw]"><STRONG>{--_UID--}:</STRONG></TD>
+       <TD width="20%" align="center"
+               class="right2 top2 switch_sw$content[sw]"><STRONG>{--SEX--}:</STRONG></TD>
+       <TD width="20%" align="center"
+               class="right2 top2 switch_sw$content[sw]"><STRONG>{--SURNAME--}:</STRONG></TD>
+       <TD width="20%" align="center"
+               class="right2 top2 switch_sw$content[sw]"><STRONG>{--FAMILY_NAME--}:</STRONG></TD>
+       <TD width="20%" align="center" class="switch_sw$content[sw] top2"><STRONG>{--USER_NICKNAME--}:</STRONG></TD>
+</TR>
+<TR>
+       <TD width="5" class="switch_sw$content[sw] seperator bottom2">&nbsp;</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">$content[uid]</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">$content[sex]</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">$content[sname]</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">$content[fname]</TD>
+       <TD align="center" class="bottom2 switch_sw$content[sw]">$content[nick]</TD>
+</TR>
+<TR>
+       <TD width="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+       <TD align="center" class="right2 switch_sw$content[sw]"><STRONG>{--ADDY--}:</STRONG></TD>
+       <TD align="center" class="right2 switch_sw$content[sw]"><STRONG>{--REMOTE_IP--}:</STRONG></TD>
+       <TD align="center" class="right2 switch_sw$content[sw]"><STRONG>{--REF_UID--}:</STRONG></TD>
+       <TD align="center" class="right2 switch_sw$content[sw]"><STRONG>{--ACCOUNT_STATUS--}:</STRONG></TD>
+       <TD align="center" class="switch_sw$content[sw]"><STRONG>{--UNCONFIRMED_LINKS--}:</STRONG></TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw] seperator bottom2" width="5">&nbsp;</TD>
+       <TD align="center" class="right2 switch_sw$content[sw] bottom2">$content[email]</TD>
+       <TD align="center" class="right2 switch_sw$content[sw] bottom2">$content[addr]</TD>
+       <TD align="center" class="right2 switch_sw$content[sw] bottom2">$content[ref]</TD>
+       <TD align="center" class="right2 switch_sw$content[sw] bottom2">$content[status]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[links]</TD>
+</TR>
+<TR>
+       <TD height="22" colspan="6" class="admin_title">$content[alinks]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_user_sort.tpl b/0.2.1/templates/de/html/admin/admin_list_user_sort.tpl
new file mode 100644 (file)
index 0000000..e9d2056
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="admin_header" colspan="{!__COLSPAN2!}" align="center">
+       <TABLE border="0" cellspacing="0" cellpadding="0" width="520">
+               <TR>
+                       <TD class="admin_sortlinks">{--SORT_BY--}&nbsp;<STRONG>[</STRONG>&nbsp;{!__SORT_LIST!}&nbsp;<STRONG>]</STRONG>
+                       </TD>
+               </TR>
+       </TABLE>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_list_user_sort_form.tpl b/0.2.1/templates/de/html/admin/admin_list_user_sort_form.tpl
new file mode 100644 (file)
index 0000000..98fb3d5
--- /dev/null
@@ -0,0 +1,12 @@
+<TR>
+       <TD colspan="{!__COLSPAN2!}" align="center">
+       <TABLE border="0" cellspacing="0" cellpadding="0" width="520">
+               <TR>
+                       <TD align="center">&nbsp; <!--
+        <FORM action="{!URL!}/modules.php?module=admin&amp;what=list_user" method="POST" style="margin-bottom: 0px">
+        </FORM>
+          //--></TD>
+               </TR>
+       </TABLE>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_lock_user.tpl b/0.2.1/templates/de/html/admin/admin_lock_user.tpl
new file mode 100644 (file)
index 0000000..056c3af
--- /dev/null
@@ -0,0 +1,40 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=lock_user&amp;u_id={!__UID_VALUE!}"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2"><STRONG
+                       class="admin_done">{!__HEADER_VALUE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">{!__TEXT_VALUE!}</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">[&nbsp;<A href="{!__EMAIL!}">{!__SNAME!}
+               {!__FNAME!}</A>&nbsp;]</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center"><TEXTAREA name="reason" class="admin_normal"
+                       rows="5" cols="50"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_footer"><INPUT type="submit"
+                       name="no" class="admin_no" value="{--NO--}">&nbsp;* <INPUT
+                       type="submit" name="{!__OK_VALUE!}" class="admin_yes"
+                       value="{--YES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_login_form.tpl b/0.2.1/templates/de/html/admin/admin_login_form.tpl
new file mode 100644 (file)
index 0000000..902e6f5
--- /dev/null
@@ -0,0 +1,65 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;$content[target]=$content[value]"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table register" align="center">
+       <TR>
+               <TD colspan="2" height="14" class="admin_title seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center" class="admin_title"><STRONG>{--ADMIN_LOGIN_NOW--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="14" class="admin_title seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right">{--ENTER_ADMIN_LOGIN--}:&nbsp;&nbsp;</TD>
+               <TD width="50%"><INPUT type="text" name="login" size="10"
+                       maxlength="100" class="admin_normal" value="{!__LOGIN_VALUE!}"></TD>
+       </TR>
+       {!__MSG_LOGIN!}
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right">{--ENTER_ADMIN_PASS--}:&nbsp;&nbsp;</TD>
+               <TD width="50%"><INPUT type="password" name="pass" size="10"
+                       maxlength="100" class="admin_normal"></TD>
+       </TR>
+       {!__MSG_PASS!}
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right">{--SELECT_TIMEOUT--}:&nbsp;&nbsp;</TD>
+               <TD width="50%"><SELECT name="timeout" size="1"
+                       class="admin_select">
+                       <OPTION value="86400">{--TIMEOUT_ONE_DAY--}</OPTION>
+                       <OPTION value="172800">{--TIMEOUT_TWO_DAYS--}</OPTION>
+                       <OPTION value="259200">{--TIMEOUT_THREE_DAYS--}</OPTION>
+                       <OPTION value="604800">{--TIMEOUT_ONE_WEEK--}</OPTION>
+                       <OPTION value="1209600">{--TIMEOUT_TWO_WEEKS--}</OPTION>
+                       <OPTION value="2592000">{--TIMEOUT_ONE_MONTH--}</OPTION>
+                       <OPTION value="15984000">{--TIMEOUT_HALF_YEAR--}</OPTION>
+                       <OPTION value="31536000" selected>{--TIMEOUT_FULL_YEAR--}</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}" class="normal">&nbsp;*
+               <INPUT type="submit" class="admin_submit submit" name="ok"
+                       value="{--ADMIN_LOGIN_SUBMIT--}" class="admin_submit submit">
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_login_msg.tpl b/0.2.1/templates/de/html/admin/admin_login_msg.tpl
new file mode 100644 (file)
index 0000000..aaa894e
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD colspan="2" class="admin_error" align="center"><STRONG>$content</STRONG>
+       </TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_logout.tpl b/0.2.1/templates/de/html/admin/admin_logout.tpl
new file mode 100644 (file)
index 0000000..7a7265f
--- /dev/null
@@ -0,0 +1,18 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="admin">
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_content"><STRONG>{--ADMIN_LOGOUT_DONE--}</STRONG><BR>
+               <BR>
+               <A class="admin_content"
+                       href="{!URL!}/modules.php?module=admin&amp;action=login">{--ADMIN_RELOGIN_LINK--}</A><BR>
+               <BR>
+               <A class="admin_content" href="{!URL!}/modules.php?module=index">{--ADMIN_BACK_TO_GUEST_MENU--}</A><BR>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_logout_form.tpl b/0.2.1/templates/de/html/admin/admin_logout_form.tpl
new file mode 100644 (file)
index 0000000..ce54bb4
--- /dev/null
@@ -0,0 +1,32 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;action=logout"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="370">
+       <TR>
+               <TD align="center" class="admin_title bottom2" height="30"><STRONG>{--ADMIN_LOGOUT_NOW--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="20" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" style="padding-left: 10px; padding-right: 10px">
+               {--ADMIN_LOGOUT_NOTE--}</TD>
+       </TR>
+       <TR>
+               <TD height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">{--ADMIN_LOGOUT_QUESTION--}</TD>
+       </TR>
+       <TR>
+               <TD height="20" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" height="30" class="admin_footer"><INPUT
+                       type="submit" name="no" class="admin_no" value="{--NO--}">&nbsp;*
+               <INPUT type="submit" name="yes" class="admin_yes" value="{--YES--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_main_footer.tpl b/0.2.1/templates/de/html/admin/admin_main_footer.tpl
new file mode 100644 (file)
index 0000000..666f9fb
--- /dev/null
@@ -0,0 +1,11 @@
+
+</TD>
+</TR>
+<TR>
+       <TD class="admin_menu">&nbsp;</TD>
+       <TD class="admin_content">&nbsp;</TD>
+</TR>
+<TR>
+       <TD align="center" colspan="2">{!__ADMIN_FOOTER!}</TD>
+</TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_main_header.tpl b/0.2.1/templates/de/html/admin/admin_main_header.tpl
new file mode 100644 (file)
index 0000000..5f315ef
--- /dev/null
@@ -0,0 +1,8 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" class="admin_main">
+       <TR>
+               <TD colspan="2" align="center" class="admin_welcome">
+               {!__ADMIN_WELCOME!}</TD>
+       </TR>
+       <TR>
+               <TD class="admin_menu" valign="top">{!__ADMIN_MENU!}</TD>
+               <TD class="admin_content" valign="top">
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_maintenance_form.tpl b/0.2.1/templates/de/html/admin/admin_maintenance_form.tpl
new file mode 100644 (file)
index 0000000..b75f16b
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=maintenance"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="380"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD align="center" class="admin_title bottom2" height="30">
+               {--ADMIN_MAINTENANCE_MODE_INTRO--}</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">{--ADMIN_MAINTENANCE_MODE--}</TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_footer" height="30"><INPUT
+                       type="submit" name="ok" class="admin_delete"
+                       value="{--ADMIN_CHANGE_MAINTENANCE_MODE--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_member_add.tpl b/0.2.1/templates/de/html/admin/admin_member_add.tpl
new file mode 100644 (file)
index 0000000..656f2b7
--- /dev/null
@@ -0,0 +1,96 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=mem_add"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_title dashed">
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right" width="245">{--ENTER_TITLE--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table" width="245"><INPUT
+                       type="text" name="title" class="admin_normal" size="30"
+                       maxlength="50"></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_WHAT_NAME--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table">{--__WHAT_SELECTION--} <BR>
+               <SPAN class="admin_note">({--CREATE_WHAT_FIRST--})</SPAN></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_PARENT_MENU--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table">{--__ACTION_SELECTION--} <BR>
+               <SPAN class="admin_note">({--CREATE_ACTION_FIRST--})</SPAN></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--SELECT_BELOW_MENU--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table">{--__BELOW_SELECTION--}</TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--MENU_IS_VISIBLE--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table"><SELECT
+                       class="admin_select" name="visible" size="1">
+                       <OPTION value="Y">{--YES--}</OPTION>
+                       <OPTION value="N">{--NO--}</OPTION>
+               </SELECT></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD width="10">&nbsp;</TD>
+               <TD align="right">{--MENU_IS_ACTIVE--}:</TD>
+               <TD width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table"><SELECT
+                       class="admin_select" name="active" size="1">
+                       <OPTION value="N">{--YES--}</OPTION>
+                       <OPTION value="Y">{--NO--}</OPTION>
+               </SELECT></TD>
+               <TD width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" height="8" colspan="5"></TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" width="10">&nbsp;</TD>
+               <TD align="center" class="admin_table" align="center" colspan="3">
+               <INPUT type="reset" class="admin_reset" class="admin_normal"
+                       value="{--CLEAR_FORM--}">&nbsp;* <INPUT type="submit"
+                       class="admin_submit" name="ok" value="{--ADMIN_ADD_MENU--}">
+               </TD>
+               <TD class="admin_table" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_table" height="8" colspan="5"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_member_selection_box.tpl b/0.2.1/templates/de/html/admin/admin_member_selection_box.tpl
new file mode 100644 (file)
index 0000000..d0bec7a
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM action="{!URL!}/modules.php" method="GET">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD height="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center"><INPUT type="hidden" name="module"
+                       value="admin"> <INPUT type="hidden" name="what"
+                       value="$content"> {--ADMIN_SELECT_USERID--}: <SELECT
+                       name="u_id" size="1" class="admin_select">
+                       {!_MEMBER_SELECTION!}
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center"><INPUT type="submit" class="admin_submit"
+                       value="{--ADMIN_SELECT_USER--}"></TD>
+       </TR>
+       <TR>
+               <TD height="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_menu_404_row.tpl b/0.2.1/templates/de/html/admin/admin_menu_404_row.tpl
new file mode 100644 (file)
index 0000000..9f75454
--- /dev/null
@@ -0,0 +1,5 @@
+<TR>
+       <TD colspan="2" align="center"
+               class="error fatal switch_sw$content[sw]"><STRONG>{--ENTRY_404_1--}$content[sel]{--ENTRY_404_2--}</STRONG>
+       </TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_menu_failed.tpl b/0.2.1/templates/de/html/admin/admin_menu_failed.tpl
new file mode 100644 (file)
index 0000000..3ec973f
--- /dev/null
@@ -0,0 +1,19 @@
+<BR>
+<BR>
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="420" class="admin_table dashed">
+       <TR>
+               <TD align="center" height="40" class="admin_header bottom2"><STRONG>{--ADMIN_MENU_PROBLEM_TITLE--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" height="40"><FONT class="admin_failed">$content</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_menu_hints.tpl b/0.2.1/templates/de/html/admin/admin_menu_hints.tpl
new file mode 100644 (file)
index 0000000..04c5f54
--- /dev/null
@@ -0,0 +1,8 @@
+<DIV align="center" style="margin-left: 5px; margin-right: 5px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%">
+       <TR>
+               <TD height="7" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       $content
+</TABLE>
+</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_menu_hints_row.tpl b/0.2.1/templates/de/html/admin/admin_menu_hints_row.tpl
new file mode 100644 (file)
index 0000000..622c958
--- /dev/null
@@ -0,0 +1,15 @@
+<TR>
+       <TD align="center" class="admin_desc_header" colspan="3"><STRONG>$content[title]:</STRONG>
+       </TD>
+</TR>
+<TR>
+       <TD height="7" colspan="3" class="seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD width="10" class="seperator">&nbsp;</TD>
+       <TD align="left" class="admin_desc_cont">$content[text]</TD>
+       <TD width="10" class="seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD height="7" colspan="3" class="seperator">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_menu_overview_row.tpl b/0.2.1/templates/de/html/admin/admin_menu_overview_row.tpl
new file mode 100644 (file)
index 0000000..f6f438a
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" name="sel[$content[id]]" value="1"
+               class="admin_normal"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><A
+               href="{!URL!}/modules.php?module=admin&amp;what=$content[mode]edit&amp;sub=$content[action]">$content[action]</A></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[what]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;&nbsp;$content[title]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">&nbsp;&nbsp;$content[navi]</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_menu_status_row.tpl b/0.2.1/templates/de/html/admin/admin_menu_status_row.tpl
new file mode 100644 (file)
index 0000000..cf2c403
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD width="25%" align="right" class="switch_sw$content[sw] bottom2">$content[cnt].
+       {--ENTRY_MODIFY--}:&nbsp;&nbsp;
+       <TD width="25%" class="switch_sw$content[sw] bottom2">
+       $content[menu] <INPUT type="hidden" name="sel[$content[sel]]"
+               value="$content[menu]"></TD>
+       <TD width="25%" class="switch_sw$content[sw] bottom2">
+       {--IS_VISIBLE--}&nbsp; $content[visible]</TD>
+       <TD width="25%" class="switch_sw$content[sw] bottom2">
+       {--IS_LOCKED--}&nbsp; $content[locked]</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_menu_unknown_okay.tpl b/0.2.1/templates/de/html/admin/admin_menu_unknown_okay.tpl
new file mode 100644 (file)
index 0000000..0a72b2b
--- /dev/null
@@ -0,0 +1,20 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="450"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_fatal seperator" height="14" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_fatal seperator" rowspan="3" width="7">&nbsp;</TD>
+               <TD class="admin_fatal" align="center">{--EDIT_UNKNOWN_OKAY--}</TD>
+               <TD class="admin_fatal seperator" rowspan="3" width="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_fatal seperator" height="7">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center"><STRONG>{!__OK_VALUE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="admin_fatal seperator" height="14" colspan="3">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_mini_online.tpl b/0.2.1/templates/de/html/admin/admin_mini_online.tpl
new file mode 100644 (file)
index 0000000..0b5279d
--- /dev/null
@@ -0,0 +1,24 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="170" class="admin_table dashed">
+       <TR>
+               <TD colspan="3" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--USER_NOW_ONLINE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="85%" class="bottom2" align="right"><FONT
+                       class="medium">{--GUESTS_ONLINE--}:</FONT></TD>
+               <TD width="5%" class="bottom2 seperator">&nbsp;</TD>
+               <TD width="10%" class="bottom2"><STRONG>{!_GUESTS_ONLINE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="bottom2" align="right"><FONT class="medium">{--MEMBERS_ONLINE--}:</FONT></TD>
+               <TD class="bottom2 seperator">&nbsp;</TD>
+               <TD class="bottom2"><STRONG>{!_MEMBERS_ONLINE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="right"><FONT class="medium">{--ADMINS_ONLINE--}:</FONT></TD>
+               <TDclass"seperator">&nbsp;</TD>
+               <TD><STRONG>{!_ADMINS_ONLINE!}</STRONG></TD>
+       </TR>
+</TABLE>
+<BR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_mmenu_delete.tpl b/0.2.1/templates/de/html/admin/admin_mmenu_delete.tpl
new file mode 100644 (file)
index 0000000..8ca2b9c
--- /dev/null
@@ -0,0 +1,23 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=memedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD align="center" colspan="2"><STRONG>{--DEL_MEMBER_MENU--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2">
+               {--DEL_MENU_1--}{!__CHK_VALUE!}{--DEL_MENU_2--}</TD>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><INPUT
+                       type="hidden" name="ok" value="del"> <INPUT type="hidden"
+                       name="chk" value="{!__CHK_VALUE!}_{!__CNT_VALUE!}"> <INPUT
+                       type="submit" class="admin_delete" name="submit"
+                       value="{--DEL_ENTRIES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_mmenu_delete_row.tpl b/0.2.1/templates/de/html/admin/admin_mmenu_delete_row.tpl
new file mode 100644 (file)
index 0000000..50b1228
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD width="50%" align="right">$content[cnt].
+       {--ENTRY_DELETE--}:&nbsp;&nbsp;
+       <TD width="50%">$content[title] <INPUT type="hidden"
+               name="sel[$content[sel]]" value="1"></TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_mmenu_edit.tpl b/0.2.1/templates/de/html/admin/admin_mmenu_edit.tpl
new file mode 100644 (file)
index 0000000..0f3b7e3
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=memedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD align="center" colspan="2" class="admin_header" height="40">
+               <STRONG>{--EDIT_MEMBER_MENU--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="admin_header bottom2">
+               {--EDIT_MENU_1--}{!__CHK_VALUE!}{--EDIT_MENU_2--}</TD>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD align="center" colspan="2" class="admin_footer"><INPUT
+                       type="hidden" name="ok" value="edit"> <INPUT type="hidden"
+                       name="chk" value="{!__CHK_VALUE!}_{!__CNT_VALUE!}"> <INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" class="admin_submit" name="submit"
+                       value="{--SUBMIT_CHANGES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_mmenu_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_mmenu_edit_row.tpl
new file mode 100644 (file)
index 0000000..9acaa34
--- /dev/null
@@ -0,0 +1,37 @@
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="switch_sw$content[sw]">&nbsp;&nbsp;$content[cnt].
+       {--ENTRY_MODIFY--}:
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2"></TD>
+</TR>
+<TR>
+       <TD width="50%" align="right" class="switch_sw$content[sw]">
+       {--EDIT_ACTION--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="switch_sw$content[sw]">$content[action]</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2"></TD>
+</TR>
+<TR>
+       <TD width="50%" class="switch_sw$content[sw]" align="right">
+       {--EDIT_WHAT--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="switch_sw$content[sw]">$content[what]</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw]" height="2"></TD>
+</TR>
+<TR>
+       <TD width="50%" class="switch_sw$content[sw]" align="right">
+       {--EDIT_TITLE--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="switch_sw$content[sw]"><INPUT type="text"
+               name="sel[$content[sel]]" value="$content[menu]" class="admin_normal"
+               size="30" maxlength="50"></TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator switch_sw$content[sw] bottom2"
+               height="2">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_mmenu_overview.tpl b/0.2.1/templates/de/html/admin/admin_mmenu_overview.tpl
new file mode 100644 (file)
index 0000000..201bf50
--- /dev/null
@@ -0,0 +1,25 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=memedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="admin_table dashed">
+       <TR>
+               <TH class="admin_title bottom2 right2" align="center" width="5%"
+                       height="30"><STRONG>{--ID_SELECT--}</STRONG></TH>
+               <TH class="admin_title bottom2 right2" align="center" width="25%"><STRONG>{--DISPLAY_ACTION--}</STRONG></TH>
+               <TH class="admin_title bottom2 right2" align="center" width="25%"><STRONG>{--DISPLAY_WHAT--}</STRONG></TH>
+               <TH class="admin_title bottom2" align="center" width="25%"><STRONG>{--DISPLAY_TITLE--}</STRONG></TH>
+               <TH class="admin_title bottom2" align="center" width="20%"><STRONG>{--SORT_NAVIGATION--}</STRONG></TH>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}"
+                       class="admin_normal">&nbsp;* <INPUT type="submit"
+                       class="admin_submit" name="edit" value="{--EDIT_MENUS--}">&nbsp;*
+               <INPUT type="submit" class="admin_submit" name="status"
+                       value="{--CHANGE_MENUS--}">&nbsp;* <INPUT type="submit"
+                       class="admin_delete" name="del" value="{--DEL_MENUS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_mmenu_status.tpl b/0.2.1/templates/de/html/admin/admin_mmenu_status.tpl
new file mode 100644 (file)
index 0000000..9dfced1
--- /dev/null
@@ -0,0 +1,28 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=memedit&amp;sub={!__SUB_VALUE!}"
+       method="POST" target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD colspan="4" height="5" class="admin_title seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="4" class="admin_title"><STRONG>{--CHANGE_MEMBER_MENU--}</STRONG><BR>
+               <BR>
+               {--CHANGE_MENU_1--}{!__CHK_VALUE!}{--CHANGE_MENU_2--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="4" height="5" class="admin_title seperator bottom2">&nbsp;</TD>
+       </TR>
+       {!__MENU_ROWS!}
+       <TR>
+               <TD colspan="4" align="center" height="40" class="admin_footer">
+               <INPUT type="hidden" name="ok" value="status"> <INPUT
+                       type="hidden" name="chk" value="{!__CHK_VALUE!}_{!__CNT_VALUE!}">
+               <INPUT type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}"
+                       class="admin_normal">&nbsp;* <INPUT type="submit"
+                       class="admin_submit" name="submit" value="{--CHANGE_ENTRIES--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_mods_edit.tpl b/0.2.1/templates/de/html/admin/admin_mods_edit.tpl
new file mode 100644 (file)
index 0000000..36f0c9e
--- /dev/null
@@ -0,0 +1,21 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_mods"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="680"
+       class="admin_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" height="25"><STRONG>{--MODS_NAME--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_TITLE--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_IS_LOCKED--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_IS_HIDDEN--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_IS_ADMIN--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_IS_MEMBER--}</STRONG></TD>
+       </TR>
+       {!__MODS_ROWS!}
+       <TR>
+               <TD colspan="6" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="change" class="admin_submit"
+                       value="{--SAVE_CHANGES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_mods_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_mods_edit_row.tpl
new file mode 100644 (file)
index 0000000..eca3fe6
--- /dev/null
@@ -0,0 +1,16 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2">
+       &nbsp;$content[mod] <INPUT type="hidden" name="sel[$content[id]]"
+               value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="text" class="admin_normal" name="title[$content[id]]" size="20"
+               maxlength="255" value="$content[title]"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[locked]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[hidden]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[admin]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       $content[mem]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_mods_footer_edit.tpl b/0.2.1/templates/de/html/admin/admin_mods_footer_edit.tpl
new file mode 100644 (file)
index 0000000..999ba1e
--- /dev/null
@@ -0,0 +1 @@
+<!-- DEPRECARED! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_mods_footer_list.tpl b/0.2.1/templates/de/html/admin/admin_mods_footer_list.tpl
new file mode 100644 (file)
index 0000000..8be4403
--- /dev/null
@@ -0,0 +1 @@
+<!-- DEPRECATED! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_mods_footer_stats.tpl b/0.2.1/templates/de/html/admin/admin_mods_footer_stats.tpl
new file mode 100644 (file)
index 0000000..8be4403
--- /dev/null
@@ -0,0 +1 @@
+<!-- DEPRECATED! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_mods_footer_stats2.tpl b/0.2.1/templates/de/html/admin/admin_mods_footer_stats2.tpl
new file mode 100644 (file)
index 0000000..8be4403
--- /dev/null
@@ -0,0 +1 @@
+<!-- DEPRECATED! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_mods_header_edit.tpl b/0.2.1/templates/de/html/admin/admin_mods_header_edit.tpl
new file mode 100644 (file)
index 0000000..999ba1e
--- /dev/null
@@ -0,0 +1 @@
+<!-- DEPRECARED! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_mods_header_list.tpl b/0.2.1/templates/de/html/admin/admin_mods_header_list.tpl
new file mode 100644 (file)
index 0000000..8be4403
--- /dev/null
@@ -0,0 +1 @@
+<!-- DEPRECATED! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_mods_header_stats.tpl b/0.2.1/templates/de/html/admin/admin_mods_header_stats.tpl
new file mode 100644 (file)
index 0000000..8be4403
--- /dev/null
@@ -0,0 +1 @@
+<!-- DEPRECATED! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_mods_header_stats2.tpl b/0.2.1/templates/de/html/admin/admin_mods_header_stats2.tpl
new file mode 100644 (file)
index 0000000..8be4403
--- /dev/null
@@ -0,0 +1 @@
+<!-- DEPRECATED! //-->
diff --git a/0.2.1/templates/de/html/admin/admin_mods_list.tpl b/0.2.1/templates/de/html/admin/admin_mods_list.tpl
new file mode 100644 (file)
index 0000000..22118ef
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_mods"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="680"
+       class="admin_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2" height="25"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_NAME--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_TITLE--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_IS_LOCKED--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_IS_HIDDEN--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_IS_ADMIN--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_IS_MEMBER--}</STRONG></TD>
+       </TR>
+       {!__MODS_ROWS!}
+       <TR>
+               <TD colspan="7" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--MODS_EDIT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--MODS_ADMIN_EDIT_NOTE--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_mods_list_row.tpl b/0.2.1/templates/de/html/admin/admin_mods_list_row.tpl
new file mode 100644 (file)
index 0000000..5326ec2
--- /dev/null
@@ -0,0 +1,17 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><INPUT
+               type="checkbox" class="admin_normal" name="sel[$content[id]]"
+               value="1"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">
+       &nbsp;$content[mod]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">
+       &nbsp;$content[title]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       &nbsp;$content[locked]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       &nbsp;$content[hidden]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       &nbsp;$content[admin]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">
+       &nbsp;$content[mem]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_mods_stats.tpl b/0.2.1/templates/de/html/admin/admin_mods_stats.tpl
new file mode 100644 (file)
index 0000000..a53b966
--- /dev/null
@@ -0,0 +1,12 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="admin_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_TITLE--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2"><STRONG>{--MODS_CLICKS--}</STRONG></TD>
+       </TR>
+       {!__MODS_ROWS!}
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer"><FONT
+                       class="admin_note">{--MODS_ADMIN_EDIT_NOTE--}</FONT></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_mods_stats2.tpl b/0.2.1/templates/de/html/admin/admin_mods_stats2.tpl
new file mode 100644 (file)
index 0000000..c5900ad
--- /dev/null
@@ -0,0 +1,11 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="admin_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2 right2"><STRONG>{--MODS_WHAT_ACTION--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2"><STRONG>{--MODS_CLICKS--}</STRONG></TD>
+       </TR>
+       {!__MODS_ROWS!}
+       <TR>
+               <TD colspan="2" align="center" class="admin_footer">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_mods_stats2_row.tpl b/0.2.1/templates/de/html/admin/admin_mods_stats2_row.tpl
new file mode 100644 (file)
index 0000000..2998b33
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2">
+       &nbsp;$content[title] ($content[action])</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">
+       $content[clicks]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_mods_stats_row.tpl b/0.2.1/templates/de/html/admin/admin_mods_stats_row.tpl
new file mode 100644 (file)
index 0000000..95fb355
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2">
+       &nbsp;$content[title] ($content[mod])</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center">
+       $content[clicks]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_newsletter.tpl b/0.2.1/templates/de/html/admin/admin_newsletter.tpl
new file mode 100644 (file)
index 0000000..d40fcbe
--- /dev/null
@@ -0,0 +1,90 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=send_newsletter"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" align="center" width="430">
+       <TR>
+               <TD colspan="5" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--ADMIN_NL_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="200">{--ENTER_NL_SUBJECT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="200" align="center"><INPUT type="text" name="subject"
+                       class="admin_normal" size="30" maxlength="200"
+                       value="{--NEWSLETTER_FROM--} {--_DATESTAMP--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--ADMIN_NL_SEND_MODE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="50%" align="right">{--NL_MODE_TEXT--}</TD>
+                               <TD width="50%">&nbsp;<INPUT type="radio" name="mode"
+                                       class="admin_normal" value="text" checked></TD>
+                       </TR>
+                       <TR>
+                               <TD align="right">{--NL_MODE_HTML--}</TD>
+                               <TD>&nbsp;<INPUT type="radio" name="mode" class="admin_normal"
+                                       value="html"></TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--ADMIN_NL_AUTO_ADD--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="30%">{--YES--}</TD>
+                               <TD width="20%">&nbsp;<INPUT type="radio" name="auto_urls"
+                                       class="admin_normal" value="Y" checked></TD>
+                               <TD width="30%">{--NO--}</TD>
+                               <TD width="20%">&nbsp;<INPUT type="radio" name="auto_urls"
+                                       class="admin_normal" value="N"></TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--ENTER_NL_TEXT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><TEXTAREA name="text" class="admin_normal"
+                       rows="14" cols="25"></TEXTAREA></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator" height="30">&nbsp;</TD>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--ADMIN_SEND_NL--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--ADMIN_NEWSLETTER_NOTE--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_newsletter_nohtml.tpl b/0.2.1/templates/de/html/admin/admin_newsletter_nohtml.tpl
new file mode 100644 (file)
index 0000000..195488b
--- /dev/null
@@ -0,0 +1,68 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=send_newsletter"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" align="center" width="430">
+       <TR>
+               <TD colspan="5" class="admin_title bottom2" align="center" height="30">
+               <STRONG>{--ADMIN_NL_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="200">{--ENTER_NL_SUBJECT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="200" align="center"><INPUT type="text" name="subject"
+                       class="admin_normal" size="30" maxlength="200"
+                       value="{--NEWSLETTER_FROM--} {--_DATESTAMP--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--ADMIN_NL_AUTO_ADD--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="30%">{--YES--}</TD>
+                               <TD width="20%">&nbsp;<INPUT type="radio" name="auto_urls"
+                                       class="admin_normal" value="Y" checked></TD>
+                               <TD width="30%">{--NO--}</TD>
+                               <TD width="20%">&nbsp;<INPUT type="radio" name="auto_urls"
+                                       class="admin_normal" value="N"></TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{--ENTER_NL_TEXT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center"><TEXTAREA name="text" class="admin_normal"
+                       rows="14" cols="25"></TEXTAREA></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="admin_footer seperator" height="30">&nbsp;</TD>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="hidden" name="mode" class="admin_normal" value="text">
+               <INPUT type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--ADMIN_SEND_NL--}"></TD>
+               <TD width="10" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--ADMIN_NEWSLETTER_NOTE--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_newsletter_tsk.tpl b/0.2.1/templates/de/html/admin/admin_newsletter_tsk.tpl
new file mode 100644 (file)
index 0000000..b2f0902
--- /dev/null
@@ -0,0 +1,6 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=list_newsletter"
+       method="POST" style="margin-bottom: 0px"><INPUT type="hidden"
+       name="uid" value="$content[uid]"> <INPUT type="hidden"
+       name="id" value="$content[id]"> <INPUT type="submit"
+       name="unsub" class="admin_submit" value="{--ADMIN_NL_UNSUBSCRIBE--}">
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_online_footer.tpl b/0.2.1/templates/de/html/admin/admin_online_footer.tpl
new file mode 100644 (file)
index 0000000..b22266b
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD colspan="8" align="center" class="admin_footer">$content</TD>
+</TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_online_header.tpl b/0.2.1/templates/de/html/admin/admin_online_header.tpl
new file mode 100644 (file)
index 0000000..02d18de
--- /dev/null
@@ -0,0 +1,28 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD colspan="6" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="8" align="left">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="10">&nbsp;</TD>
+                               <TD><STRONG>{--ADMIN_ONLINE_DETAILS--}</STRONG></TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="8" height="10" class="seperator bottom">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" width="5%" class="admin_title bottom right"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" width="10%" class="admin_title bottom right"><STRONG>{--_UID--}:</STRONG></TD>
+               <TD align="center" width="10%" class="admin_title bottom right"><STRONG>{--REMOTE_IP--}:</STRONG></TD>
+               <TD align="center" width="5%" class="admin_title bottom right"><STRONG>{--_REFID--}:</STRONG></TD>
+               <TD align="center" width="10%" class="admin_title bottom right"><STRONG>{--_MODULE--}:</STRONG></TD>
+               <TD align="center" width="10%" class="admin_title bottom right"><STRONG>{--MENU_ACTION--}:</STRONG></TD>
+               <TD align="center" width="5%" class="admin_title bottom right"><STRONG>{--MENU_WHAT--}:</STRONG></TD>
+               <TD align="center" width="10%" class="admin_title bottom"><STRONG>{--LAST_SEEN--}:</STRONG></TD>
+       </TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_optimize.tpl b/0.2.1/templates/de/html/admin/admin_optimize.tpl
new file mode 100644 (file)
index 0000000..af70a1f
--- /dev/null
@@ -0,0 +1,26 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD width="120" class="admin_title bottom2 right2" align="center"
+                       height="24"><STRONG>{--OPTIMIZE_DBNAME--}:</STRONG></TD>
+               <TD width="110" class="admin_title bottom2 right2" align="center"><STRONG>{--OPTIMIZE_REPAIRED--}:</STRONG></TD>
+               <TD width="110" class="admin_title bottom2 right2" align="center"><STRONG>{--OPTIMIZE_OPTIMIZED--}:</STRONG></TD>
+               <TD width="120" class="admin_title bottom2 right2" align="center"><STRONG>{--OPTIMIZE_TOTAL_SIZE--}:</STRONG></TD>
+               <TD width="120" class="admin_title bottom2" align="center"><STRONG>{--OPTIMIZE_GAIN_SIZE--}:</STRONG></TD>
+       </TR>
+       {!__TABLE_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="admin_footer"
+                       style="padding-top: 15px; padding-bottom: 15px";>
+               {--OPTIMIZE_DB_TOTAL_TABLES--}: <STRONG>{!__TOTAL_TABS!}</STRONG><BR>
+               {--OPTIMIZE_DB_TOTAL_SIZE--}: <STRONG>{!__TOTAL_SIZE!}
+               {--KBYTES--}</STRONG><BR>
+               {--OPTIMIZE_DB_TOTAL_OPTIMIZE--}: <STRONG>{!__TOTAL_CALLS!}</STRONG><BR>
+               {--OPTIMIZE_DB_TOTAL_OPTI--}: <STRONG>{!__TOTAL_OPTIMIZED!}
+               {--KBYTES--}</STRONG><BR>
+               {--OPTIMIZE_DB_TOTAL_GAIN_TABLES--}: <STRONG>{!__NOW_OPTIMIZED!}</STRONG><BR>
+               {--OPTIMIZE_DB_TOTAL_GAIN_SIZE--}: <STRONG>{!__NOW_SAVED!}
+               {--KBYTES--}</STRONG><BR>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_optimize_row.tpl b/0.2.1/templates/de/html/admin/admin_optimize_row.tpl
new file mode 100644 (file)
index 0000000..06f197d
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[b1]$content[tpl]$content[b2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[b1]$content[rep]$content[b2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[b1]$content[opt]$content[b2]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2">&nbsp;$content[b1]$content[sum]$content[b2]</TD>
+       <TD class="switch_sw$content[sw] bottom2">&nbsp;$content[b1]$content[sav]$content[b2]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_overview_footer.tpl b/0.2.1/templates/de/html/admin/admin_overview_footer.tpl
new file mode 100644 (file)
index 0000000..fd3825f
--- /dev/null
@@ -0,0 +1,15 @@
+<TR>
+       <TD colspan="6" align="center"
+               class="admin_footer bottom2 left2 right2"><INPUT type="reset"
+               value="{--ADMIN_UNSELECT_ALL--}" class="admin_reset">&nbsp;* <INPUT
+               type="submit" name="assign" value="{--ADMIN_ASSIGN_TASKS--}"
+               class="admin_submit">&nbsp;* <INPUT type="submit"
+               name="unassign" value="{--ADMIN_UNASSIGN_TASKS--}"
+               class="admin_submit">&nbsp;* <INPUT type="submit" name="redir"
+               value="{--ADMIN_REDIRECT_TASKS--}" class="admin_submit">&nbsp;*
+       <INPUT type="submit" name="del" value="{--ADMIN_DELETE_ENTRIES--}"
+               class="admin_delete"></TD>
+</TR>
+</TABLE>
+</DIV>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_overview_footer_task.tpl b/0.2.1/templates/de/html/admin/admin_overview_footer_task.tpl
new file mode 100644 (file)
index 0000000..d319b46
--- /dev/null
@@ -0,0 +1,17 @@
+<TR>
+       <TD colspan="6" align="center"
+               class="admin_footer bottom2 left2 right2"><INPUT type="reset"
+               value="{--ADMIN_UNSELECT_ALL--}" class="admin_reset">&nbsp;* <INPUT
+               type="submit" name="assign" value="{--ADMIN_ASSIGN_TASKS--}"
+               class="admin_submit">&nbsp;* <INPUT type="submit"
+               name="unassign" value="{--ADMIN_UNASSIGN_TASKS--}"
+               class="admin_submit">&nbsp;* <INPUT type="submit" name="redir"
+               value="{--ADMIN_REDIRECT_TASKS--}" class="admin_submit">&nbsp;*
+       <INPUT type="submit" name="del" value="{--TASK_ADMIN_DELETE_ENTRIES--}"
+               class="admin_delete"></TD>
+</TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note"><STRONG>{--TASK_DELETE_MODE_NOTE--}</STRONG>
+</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_overview_header.tpl b/0.2.1/templates/de/html/admin/admin_overview_header.tpl
new file mode 100644 (file)
index 0000000..5326cb9
--- /dev/null
@@ -0,0 +1,17 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;action=login"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="95%"
+       align="center" class="admin_table">
+       <TR>
+               <TD colspan="6" align="center"
+                       class="admin_task_header top2 left2 right2"><STRONG
+                       class="admin_welcome">{--ADMIN_TASK_SYSTEM_WELCOME--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="top2 bottom2 right2 left2 admin_header"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_ASSIGNED_ADMIN--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_TASK_INFOS--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_MEMBER_UID--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_TASK_TYPE--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_TASK_CREATED--}</STRONG></TD>
+       </TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_overview_header_task.tpl b/0.2.1/templates/de/html/admin/admin_overview_header_task.tpl
new file mode 100644 (file)
index 0000000..f045a68
--- /dev/null
@@ -0,0 +1,18 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=list_task&amp;type=$content[type]"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="95%"
+       align="center" class="admin_table">
+       <TR>
+               <TD colspan="6" align="center"
+                       class="admin_task_header top2 left2 right2"><STRONG
+                       class="admin_welcome">$content[message]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="top2 bottom2 right2 left2 admin_header"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_ASSIGNED_ADMIN--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_TASK_INFOS--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_MEMBER_UID--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_TASK_TYPE--}</STRONG></TD>
+               <TD align="center" class="top2 bottom2 right2 admin_header"><STRONG>{--ADMIN_TASK_CREATED--}</STRONG></TD>
+       </TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_overview_list.tpl b/0.2.1/templates/de/html/admin/admin_overview_list.tpl
new file mode 100644 (file)
index 0000000..ddc23bd
--- /dev/null
@@ -0,0 +1,9 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="95%"
+       align="center" class="admin_table">
+       <TR>
+               <TD colspan="3" align="center"
+                       class="admin_task_header top2 bottom2 left2 right2"><STRONG
+                       class="admin_welcome">{--ADMIN_SELECTED_TASKS_ASSIGN--}:</STRONG></TD>
+       </TR>
+       {!__TASK_ROWS!}
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_overview_list_rows.tpl b/0.2.1/templates/de/html/admin/admin_overview_list_rows.tpl
new file mode 100644 (file)
index 0000000..e3f384c
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2 left2" align="center">
+       <INPUT type="checkbox" name="task[$content[id]]" value="1"
+               class="admin_normal"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[admin]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[infos]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[uid]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[type]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[created]]</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_overview_row.tpl b/0.2.1/templates/de/html/admin/admin_overview_row.tpl
new file mode 100644 (file)
index 0000000..dffbb41
--- /dev/null
@@ -0,0 +1,16 @@
+<TR>
+       <TD width="79%" class="switch_sw$content[sw] bottom2 left2">
+       <UL style="margin-left: 0px">
+               <LI style="white-space: normal">{--ADMIN_TASK_SUBJECT--}: <STRONG>$content[subj]</STRONG></LI>
+               $content[add]
+               <LI style="white-space: normal">{--ADMIN_TASK_TEXT--}:
+               $content[text]</LI>
+               <LI style="white-space: normal">
+               <DIV style="text-align: right"><A
+                       href="#ext_$content[extension]">{--TOP--}</A></DIV>
+               </LI>
+               <LI style="white-space: normal">{--ADMIN_TASK_CREATED--}: <STRONG>$content[created]</STRONG></LI>
+       </UL>
+       </TD>
+       <TD width="20%" class="switch_sw$content[sw] bottom2" align="right"
+               valign="top" style="padding-top: 40px">
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_overview_task.tpl b/0.2.1/templates/de/html/admin/admin_overview_task.tpl
new file mode 100644 (file)
index 0000000..ea16a6a
--- /dev/null
@@ -0,0 +1,139 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD colspan="2" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--TASK_ADMIN_OVERVIEW_HEADER--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="290" class="seperator" align="center">&nbsp;</TD>
+               <TD width="290" class="seperator" align="center">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" valign="top">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="275"
+                       class="admin_table dashed">
+                       <TR>
+                               <TD colspan="3" class="admin_title2 bottom2"><STRONG>{--TASK_ADMIN_OVERVIEW_MAILS--}:</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw1 bottom2">{--TASK_ADMIN_MAIL_ADMIN--}:</TD>
+                               <TD width="10" class="switch_sw1 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw1 bottom2"><STRONG>{!__MAIL_ADMIN_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw2 bottom2">{--TASK_ADMIN_MAIL_TEMP--}:</TD>
+                               <TD width="10" class="switch_sw2 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw2 bottom2"><STRONG>{!__MAIL_TEMP_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw1 bottom2">{--TASK_ADMIN_MAIL_SEND--}:</TD>
+                               <TD width="10" class="switch_sw1 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw1 bottom2"><STRONG>{!__MAIL_SEND_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw2 bottom2">{--TASK_ADMIN_MAIL_DELETED--}:</TD>
+                               <TD width="10" class="switch_sw2 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw2 bottom2"><STRONG>{!__MAIL_DELETED_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw1 bottom2">{--TASK_ADMIN_MAIL_BONUS_SEND--}:</TD>
+                               <TD width="10" class="switch_sw1 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw1 bottom2"><STRONG>{!__MAIL_BONUS_SEND_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw2">{--TASK_ADMIN_MAIL_BONUS_AP--}:</TD>
+                               <TD width="10" class="switch_sw2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw2"><STRONG>{!__MAIL_BONUS_AP_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD align="center" valign="top">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="275"
+                       class="admin_table dashed">
+                       <TR>
+                               <TD colspan="3" class="admin_title2 bottom2"><STRONG>{--TASK_ADMIN_OVERVIEW_TASKS--}:</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw1 bottom2">{--TASK_ADMIN_NEW_TASKS--}:</TD>
+                               <TD width="10" class="switch_sw1 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw1 bottom2"><STRONG>{!__TASK_NEW_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw2 bottom2">{--TASK_ADMIN_UPDATE_TASKS--}:</TD>
+                               <TD width="10" class="switch_sw2 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw2 bottom2"><STRONG>{!__TASK_UPDATE_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" class="switch_sw1 bottom2">{--TASK_ADMIN_CLOSED_TASKS--}:</TD>
+                               <TD width="10" class="switch_sw1 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD align="center" class="switch_sw1 bottom2"><STRONG>{!__TASK_CLOSED_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" class="switch_sw2 bottom2">{--TASK_ADMIN_YOUR_TASKS--}:</TD>
+                               <TD width="10" class="switch_sw2 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD align="center" class="switch_sw2 bottom2"><STRONG>{!__TASK_YOUR_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" class="switch_sw1 bottom2">{--TASK_ADMIN_DELETED_TASKS--}:</TD>
+                               <TD width="10" class="switch_sw1 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD align="center" class="switch_sw1 bottom2"><STRONG>{!__TASK_DELETED_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" class="switch_sw2">{--TASK_ADMIN_SOLVED_TASKS--}:</TD>
+                               <TD width="10" class="switch_sw2 seperator" height="5">&nbsp;</TD>
+                               <TD align="center" class="switch_sw2"><STRONG>{!__TASK_SOLVED_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" align="center">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" valign="top">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="275"
+                       class="admin_table dashed">
+                       <TR>
+                               <TD colspan="3" class="admin_title2 bottom2"><STRONG>{--TASK_ADMIN_OVERVIEW_MEMBERS--}:</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD width="240" align="right" class="switch_sw1 bottom2">{--TASK_ADMIN_CONFIRMED--}:</TD>
+                               <TD width="10" class="switch_sw1 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD width="25" align="center" class="switch_sw1 bottom2"><STRONG>{!__CONFIRMED_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" class="switch_sw2 bottom2">{--TASK_ADMIN_UNCONFIRMED--}:</TD>
+                               <TD width="10" class="switch_sw2 bottom2 seperator" height="5">&nbsp;</TD>
+                               <TD align="center" class="switch_sw2 bottom2"><STRONG>{!__UNCONFIRMED_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" class="switch_sw1">{--TASK_ADMIN_LOCKED--}:</TD>
+                               <TD width="10" class="switch_sw1 seperator" height="5">&nbsp;</TD>
+                               <TD align="center" class="switch_sw1"><STRONG>{!__LOCKED_VALUE!}</STRONG>
+                               </TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD align="center" valign="top">{!__OVERVIEW_EXTRA_TABLE!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" align="center">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_overview_task_extras.tpl b/0.2.1/templates/de/html/admin/admin_overview_task_extras.tpl
new file mode 100644 (file)
index 0000000..2287e61
--- /dev/null
@@ -0,0 +1,8 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="275"
+       class="admin_table dashed">
+       <TR>
+               <TD colspan="3" class="admin_title2 bottom2"><STRONG>{--TASK_ADMIN_OVERVIEW_EXTRAS--}:</STRONG>
+               </TD>
+       </TR>
+       $content
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_overview_task_rows.tpl b/0.2.1/templates/de/html/admin/admin_overview_task_rows.tpl
new file mode 100644 (file)
index 0000000..6362b34
--- /dev/null
@@ -0,0 +1,13 @@
+
+<!-- row template for extended overview -->
+<TR>
+       <TD width="240" align="right"
+               class="switch_sw$content[row_sw] $content[bottom]">$content[row_descr]:</TD>
+       <TD width="10"
+               class="switch_sw$content[row_sw] $content[bottom] seperator"
+               height="5">&nbsp;</TD>
+       <TD width="25" align="center"
+               class="switch_sw$content[row_sw] $content[bottom]"><STRONG>$content[row_link]</STRONG>
+       </TD>
+</TR>
+<!-- row template for extended overview -->
diff --git a/0.2.1/templates/de/html/admin/admin_patches.tpl b/0.2.1/templates/de/html/admin/admin_patches.tpl
new file mode 100644 (file)
index 0000000..681a4a4
--- /dev/null
@@ -0,0 +1,32 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD height="10" colspan="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="5"><STRONG>{--NEW_PATCHES_AVAILABLE--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="10" colspan="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="32%" class="admin_title bottom2 right2"><STRONG>{--PATCH_FNAME--}:</STRONG></TD>
+               <TD align="center" width="32%" class="admin_title bottom2 right2"><STRONG>{--PATCH_CTIME--}:</STRONG></TD>
+               <TD align="center" width="32%" class="admin_title bottom2"><STRONG>{--PATCH_FSIZE--}:</STRONG></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       {--__PATCH_ROWS--}
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="2" align="right" class="bottom2 right2"><STRONG>{--ADMIN_TOTAL_PATCH_SIZES--}:&nbsp;&nbsp;</STRONG>
+               </TD>
+               <TD class="bottom2" align="center"><STRONG>{!__TOTAL_SIZE!}
+               {--KBYTES--}</STRONG></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="10" colspan="5" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_patches_row.tpl b/0.2.1/templates/de/html/admin/admin_patches_row.tpl
new file mode 100644 (file)
index 0000000..c35b9fc
--- /dev/null
@@ -0,0 +1,14 @@
+<TR>
+       <TD rowspan="2" width="10" class="seperator">&nbsp;</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2"><A
+               href="$content[patch_url]">$content[patch_title]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[patch_ctime]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[patch_size]
+       {--KBYTES--}</TD>
+       <TD rowspan="2" width="10" class="seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" class="switch_sw$content[sw] bottom2">
+       <DIV align="center"><STRONG>{--PATCH_DESCRIPTION--}:</STRONG></DIV>
+       $content[patch_desc]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_payments_list_row.tpl b/0.2.1/templates/de/html/admin/admin_payments_list_row.tpl
new file mode 100644 (file)
index 0000000..078cb23
--- /dev/null
@@ -0,0 +1,13 @@
+<TR>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]"><INPUT
+               type="checkbox" name="sel[$content[id]]" value="1"
+               class="admin_normal"></TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">
+       $content[time] {--SECS--}</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">
+       $content[pay]</TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">
+       $content[price]</TD>
+       <TD align="center" class="bottom2 switch_sw$content[sw]">
+       $content[title]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_payout_accept_form.tpl b/0.2.1/templates/de/html/admin/admin_payout_accept_form.tpl
new file mode 100644 (file)
index 0000000..fb0c296
--- /dev/null
@@ -0,0 +1,38 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=list_payouts&amp;do=accept&amp;pid=$_GET[pid]&amp;task=$content"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="380"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD class="admin_title bottom2" align="center" height="30"><STRONG>{--PAYOUT_ACCEPT_PAYOUT_INTRO--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">{--PAYOUT_RECEIVER_ACCEPT--}:<BR>
+               {--PAYOUT_USERDATA_VALUE--}</TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">{--PAYOUT_OPTIONAL_TEXT--}:<BR>
+               <TEXTAREA name="text" class="admin_normal" rows="5" cols="30"></TEXTAREA>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer" align="center"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="admin_submit"
+                       value="{--PAYOUT_ACCEPT_PAYOUT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_payout_add_new.tpl b/0.2.1/templates/de/html/admin/admin_payout_add_new.tpl
new file mode 100644 (file)
index 0000000..537bace
--- /dev/null
@@ -0,0 +1,124 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_payouts"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="40">
+               <STRONG>{--ADMIN_PAYOUT_ADD_NEW_TITLE--}:</STRONG><BR>
+               <FONT class="admin_note">({--ADMIN_PAYOUT_ADD_NEW_NOTE--})</FONT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="280" align="right">{--ADMIN_PAYOUT_TITLE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="290"><INPUT type="text" name="title"
+                       class="admin_normal" size="20" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PAYOUT_RATE--}</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="rate" class="admin_normal" size="5"
+                       maxlength="10"><FONT class="admin_note">&nbsp;&nbsp;({--ADMIN_PAYOUT_VALUE_NOTE--})</FONT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PAYOUT_MIN_POINTS--}:</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="mpoi" class="admin_normal" size="5"
+                       maxlength="10"><FONT class="admin_note">&nbsp;&nbsp;({--ADMIN_PAYOUT_VALUE_NOTE--})</FONT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PAYOUT_ALLOW_URLS--}:</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><SELECT name="allow_url" class="admin_select" size="1">
+                       <OPTION value="N">{--NO--}</OPTION>
+                       <OPTION value="Y">{--YES--}</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_title bottom2" height="40">
+               <STRONG>{--ADMIN_PAYOUT_OPTIONAL_SETTINGS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PAYOUT_YOUR_ACCOUNT--}:</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="yacc" class="admin_normal" size="5"
+                       maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PAYOUT_YOUR_PASSWORD--}:</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><INPUT type="password" name="ypass" class="admin_normal"
+                       size="5" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="250" align="right">{--ADMIN_PAYOUT_YOUR_URL--}:</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD width="140"><INPUT type="text" name="yurl"
+                       class="admin_normal" size="30" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PAYOUT_YOUR_RET_DONE--}:</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="yrdone" class="admin_normal"
+                       size="5" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PAYOUT_YOUR_RET_FAILED--}:</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="yrfailed" class="admin_normal"
+                       size="5" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PAYOUT_YOUR_PASS_TRANSFER--}:</TD>
+               <TD class="seperator">&nbsp;</TD>
+               <TD><SELECT name="ytrans" size="1" class="admin_select">
+                       <OPTION value="md5">MD5</OPTION>
+                       <OPTION value="base64">Base64</OPTION>
+                       <OPTION value="xxx" selected>None</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="bottom2 seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="add" class="admin_submit"
+                       value="{--ADMIN_PAYOUT_ADD_NEW--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--ADMIN_PAYOUT_YOUR_URL_NOTE--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_payout_failed_transfer.tpl b/0.2.1/templates/de/html/admin/admin_payout_failed_transfer.tpl
new file mode 100644 (file)
index 0000000..8968100
--- /dev/null
@@ -0,0 +1,10 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="400" class="admin_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2" height="40"><STRONG>{--ADMIN_PAYOUT_TRANSFER_FAILED--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" height="40"><STRONG>$content</STRONG></TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_payout_overview_form.tpl b/0.2.1/templates/de/html/admin/admin_payout_overview_form.tpl
new file mode 100644 (file)
index 0000000..7907048
--- /dev/null
@@ -0,0 +1,9 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=list_payouts&do=accept&amp;pid=$content[pid]&amp;task=$content[tid]"
+       method="POST"><INPUT type="submit" class="admin_submit"
+       value="{--PAYOUT_ACCEPT_PAYOUT--}"></FORM>
+<BR>
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=list_payouts&do=reject&amp;pid=$content[pid]&amp;task=$content[tid]"
+       method="POST"><INPUT type="submit" class="admin_delete"
+       value="{--PAYOUT_REJECT_PAYOUT--}"></FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_payout_reject_form.tpl b/0.2.1/templates/de/html/admin/admin_payout_reject_form.tpl
new file mode 100644 (file)
index 0000000..e8808f5
--- /dev/null
@@ -0,0 +1,38 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=list_payouts&amp;do=reject&amp;pid=$_GET[pid]&amp;task=$content"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="380"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD class="admin_title bottom2" align="center" height="30"><STRONG>{--PAYOUT_REJECT_PAYOUT_INTRO--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">{--PAYOUT_RECEIVER_REJECT--}:<BR>
+               {--PAYOUT_USERDATA_VALUE--}</TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">{--PAYOUT_OPTIONAL_TEXT--}:<BR>
+               <TEXTAREA name="text" class="admin_normal" rows="5" cols="30"></TEXTAREA>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer" align="center"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="admin_delete"
+                       value="{--PAYOUT_REJECT_PAYOUT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_points.tpl b/0.2.1/templates/de/html/admin/admin_points.tpl
new file mode 100644 (file)
index 0000000..5532554
--- /dev/null
@@ -0,0 +1,24 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_points&sub=ref"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="600">
+       <TR>
+               <TD align="center" colspan="3" class="admin_title" height="30"><STRONG>{--EDIT_DEL_REFDEPTH--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="admin_title bottom2 right2" width="30" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD class="admin_title bottom2 right2" width="275" align="center"><STRONG>{--REF_LEVEL--}:</STRONG></TD>
+               <TD class="admin_title bottom2" width="275" align="center"><STRONG>{--REF_PERCENT--}:</STRONG></TD>
+       </TR>
+       {--__LEVEL_ROWS--}
+       <TR>
+               <TD class="admin_footer" align="center" colspan="3"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--EDIT_LVL--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--DEL_LVL--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_points_del.tpl b/0.2.1/templates/de/html/admin/admin_points_del.tpl
new file mode 100644 (file)
index 0000000..b1ac681
--- /dev/null
@@ -0,0 +1,17 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_points&amp;sub=ref&amp;do=del"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="500">
+       <TR>
+               <TD align="center" height="30" class="bottom2 admin_title"><STRONG>{--DELETE_REF_DEPTHS--}:</STRONG></TD>
+       </TR>
+       {--__LEVEL_ROWS--}
+       <TR>
+               <TD align="center" class="admin_footer"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="admin_delete" value="{--REMOVE_REF--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_points_del_row.tpl b/0.2.1/templates/de/html/admin/admin_points_del_row.tpl
new file mode 100644 (file)
index 0000000..7589e43
--- /dev/null
@@ -0,0 +1,19 @@
+<TR>
+       <TD height="5" class="seperator"></TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw]"><STRONG>{--REF_LEVEL--}
+       $content[lvl]:</STRONG></TD>
+</TR>
+<TR>
+       <TD height="5" class="switch_sw$content[sw]"></TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_sw$content[sw]">$content[per]% <FONT
+               class="tiny">({--ID_SELECT--} $content[id])</FONT> <INPUT
+               type="hidden" name="id[$content[id]]" value="1" size="35"></TD>
+</TR>
+<TR>
+       <TD height="5" class="switch_sw$content[sw] bottom"
+               style="font-size: 1px">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_points_edit.tpl b/0.2.1/templates/de/html/admin/admin_points_edit.tpl
new file mode 100644 (file)
index 0000000..6fc711d
--- /dev/null
@@ -0,0 +1,18 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=config_points&sub=ref&amp;do=edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="550">
+       <TR>
+               <TD align="center" colspan="2" height="30" class="bottom2 admin_title">
+               <STRONG>{--EDIT_REF_DEPTHS--}:</STRONG></TD>
+       </TR>
+       {--__LEVEL_ROWS--}
+       <TR>
+               <TD align="center" colspan="2" class="admin_footer"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--CHANGE_REF--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_points_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_points_edit_row.tpl
new file mode 100644 (file)
index 0000000..9d905c8
--- /dev/null
@@ -0,0 +1,26 @@
+<TR>
+       <TD colspan="2" align="center" class="bottom2" height="30"><STRONG>{--REF_DEPTHS_ID--}
+       $content[id]:</STRONG></TD>
+</TR>
+<TR>
+       <TD colspan="2" height="5" class="switch_sw$content[sw]"></TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" width="50%" align="right">{--REF_LEVEL--}:&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" align="left" width="50%"><INPUT
+               type="text" name="lvl[$content[id]]" class="admin_normal"
+               value="$content[lvl]" size="3" maxlength="5"></TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" colspan="2" height="5"></TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw]" align="right">{--REF_PERCENT--}:&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" align="left"><INPUT type="text"
+               name="perc[$content[id]]" class="admin_normal" value="$content[per]"
+               size="3" maxlength="5">%</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 seperator" colspan="2"
+               height="5">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_points_row.tpl b/0.2.1/templates/de/html/admin/admin_points_row.tpl
new file mode 100644 (file)
index 0000000..ffb7f6b
--- /dev/null
@@ -0,0 +1,9 @@
+<TR>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]"><INPUT
+               type="checkbox" name="sel[$content[id]]" value="1"
+               class="admin_normal"></TD>
+       <TD align="center" class="bottom2 right2 switch_sw$content[sw]">
+       $content[lvl]</TD>
+       <TD align="center" class="bottom2 switch_sw$content[sw]">
+       $content[per]%</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_refbanner.tpl b/0.2.1/templates/de/html/admin/admin_refbanner.tpl
new file mode 100644 (file)
index 0000000..fc86bae
--- /dev/null
@@ -0,0 +1,32 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=refbanner"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD width="10" class="admin_title seperator bottom2">&nbsp;</TD>
+               <TD align="center" colspan="6" class="admin_header bottom2"
+                       height="30"><STRONG>{--EDIT_DEL_REFBANNER--}</STRONG></TD>
+               <TD width="10" class="admin_title seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_header seperator bottom2" width="10">&nbsp;</TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--REF_URL--}:</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--REF_TITLE--}:</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--REF_CNTR--}:</STRONG></TD>
+               <TD class="admin_header bottom2 right2" align="center"><STRONG>{--REF_CLIX--}</STRONG></TD>
+               <TD class="admin_header bottom2" align="center"><STRONG>{--REF_VIS--}:</STRONG></TD>
+               <TD class="admin_header seperator bottom2" width="10">&nbsp;</TD>
+       </TR>
+       {--__BANNER_ROWS--}
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" align="center" colspan="6"><INPUT
+                       type="reset" class="admin_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="edit" class="admin_submit"
+                       value="{--EDIT_PAY--}">&nbsp;* <INPUT type="submit"
+                       name="del" class="admin_delete" value="{--DEL_PAY--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_refbanner_edit.tpl b/0.2.1/templates/de/html/admin/admin_refbanner_edit.tpl
new file mode 100644 (file)
index 0000000..94f0efe
--- /dev/null
@@ -0,0 +1,22 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=refbanner&amp;mode=edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed">
+       <TR>
+               <TD width="10" class="admin_header bottom2 seperator">&nbsp;</TD>
+               <TD align="center" colspan="3" class="admin_header bottom2"
+                       height="30"><STRONG>{--EDIT_REFBANNER--}</STRONG></TD>
+               <TD width="10" class="admin_header bottom2 seperator">&nbsp;</TD>
+       </TR>
+       {--__BANNER_ROWS--}
+       <TR>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+               <TD class="admin_footer" align="center" colspan="3"><INPUT
+                       type="reset" class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="admin_submit"
+                       value="{--EDIT_PAY--}"></TD>
+               <TD class="admin_footer seperator" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_refbanner_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_refbanner_edit_row.tpl
new file mode 100644 (file)
index 0000000..49e2cbf
--- /dev/null
@@ -0,0 +1,38 @@
+<TR>
+       <TD colspan="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" align="right" width="200">{--ADMIN_EDIT_BANNER_URL--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" width="350"><INPUT type="hidden"
+               name="sel[$content[id]]" value="1"> <INPUT type="text"
+               name="url[$content[id]]" class="admin_normal" value="$content[url]"
+               size="40" maxlength="255"></TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" align="right">{--ADMIN_EDIT_ALTERNATE--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]"><INPUT type="text"
+               name="alternate[$content[id]]" class="admin_normal"
+               value="$content[alt]" size="30" maxlength="255"></TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="5" class="switch_sw$content[sw] seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]" align="right">{--ADMIN_SELECT_BANNER_ACTIVE--}:</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+       <TD class="switch_sw$content[sw]">$content[vis]</TD>
+       <TD class="switch_sw$content[sw] seperator" width="10">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="5" class="switch_sw$content[sw] bottom2 seperator">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_refbanner_row.tpl b/0.2.1/templates/de/html/admin/admin_refbanner_row.tpl
new file mode 100644 (file)
index 0000000..b7aa39b
--- /dev/null
@@ -0,0 +1,12 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom right2"
+               colspan="2"><INPUT type="checkbox" name="sel[$content[id]]"
+               value="1" class="admin_normal"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom right2"><IMG
+               src="$content[url]" alt="$content[alt]" border="0"
+               title="$content[alt]"></TD>
+       <TD align="center" class="switch_sw$content[sw] bottom right2">$content[alt]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom right2">$content[cnt]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom right2">$content[clx]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom" colspan="2">$content[vis]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_reg.tpl b/0.2.1/templates/de/html/admin/admin_reg.tpl
new file mode 100644 (file)
index 0000000..506f18d
--- /dev/null
@@ -0,0 +1,18 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD class="admin_header" colspan="8" align="center"><STRONG>{--ADMIN_UNCONFIRMED_ACCOUNTS--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="admin_header right2" align="center" width="20">{--_UID--}</TD>
+               <TD class="admin_header right2" align="center">{--SEX--}</TD>
+               <TD class="admin_header right2" align="center">{--SURNAME--}</TD>
+               <TD class="admin_header right2" align="center">{--FAMILY_NAME--}</TD>
+               <TD class="admin_header right2" align="center">{--ADDY--}</TD>
+               <TD class="admin_header right2" align="center">{--REMOTE_IP--}</TD>
+               <TD class="admin_header right2" align="center" width="20">{--REF_UID--}</TD>
+               <TD class="admin_header" align="center">{--CONFIRM_ACCOUNT--}</TD>
+       </TR>
+       {--__REG_ROWS--}
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_reg_form.tpl b/0.2.1/templates/de/html/admin/admin_reg_form.tpl
new file mode 100644 (file)
index 0000000..39b0ef5
--- /dev/null
@@ -0,0 +1,42 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;action=login"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table register">
+       <TR>
+               <TD colspan="2" align="center" class="admin_title"><STRONG
+                       class="admin_fatal">{--ADMIN_NOT_REGISTERED--}</STRONG><BR>
+               <BR>
+               <STRONG>{--ADMIN_REGISTER_NOW--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_LOGIN--}:&nbsp;&nbsp;</TD>
+               <TD><INPUT type="text" name="login" size="10" maxlength="100"
+                       class="admin_normal" value="{!__LOGIN_VALUE!}"></TD>
+       </TR>
+       {!__MSG_LOGIN!}
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADMIN_PASS--}:&nbsp;&nbsp;</TD>
+               <TD><INPUT type="password" name="pass" size="10" maxlength="100"
+                       class="admin_normal"></TD>
+       </TR>
+       {!__MSG_PASS!}
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}" class="normal">&nbsp;*
+               <INPUT type="submit" class="admin_submit submit" name="ok"
+                       value="{--ADMIN_REG_SUBMIT--}" class="admin_submit submit"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="14" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_reg_row.tpl b/0.2.1/templates/de/html/admin/admin_reg_row.tpl
new file mode 100644 (file)
index 0000000..cff58e9
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] top2 right2">$content[link]</TD>
+       <TD align="center" class="switch_sw$content[sw] top2 right2">$content[sex]</TD>
+       <TD align="center" class="switch_sw$content[sw] top2 right2">$content[sname]</TD>
+       <TD align="center" class="switch_sw$content[sw] top2 right2">$content[fname]</TD>
+       <TD align="center" class="switch_sw$content[sw] top2 right2">$content[email]</TD>
+       <TD align="center" class="switch_sw$content[sw] top2 right2">$content[ip]</TD>
+       <TD align="center" class="switch_sw$content[sw] top2 right2">$content[ref]</TD>
+       <TD align="center" class="switch_sw$content[sw] top2"><A
+               href="{!URL!}/confirm.php?hash=$content[hash]" target="_blank">{--CONFIRMATION_LINK--}</A></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_send_bonus_form.tpl b/0.2.1/templates/de/html/admin/admin_send_bonus_form.tpl
new file mode 100644 (file)
index 0000000..13b46aa
--- /dev/null
@@ -0,0 +1,101 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=send_bonus&amp;mode={--__MODE--}"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="5" height="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--SELECT_CATEGORY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SELECT name="cat" size="1" class="member_select">
+                       <OPTION value="" disabled>{--PLEASE_SELECT--}</OPTION>
+                       <OPTION value="0">{--ALL_MEMBERS--} ({--__ALL_VALUE--})</OPTION>
+                       {--__OPTION_LINES--}
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ENTER_RECEIVER--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="receiver" class="member_normal"
+                       size="4" maxlength="5"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ENTER_POINTS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="points" class="member_normal"
+                       size="4" maxlength="5"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ENTER_SECONDS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="seconds" class="member_normal"
+                       size="4" maxlength="5"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ENTER_SUBJECT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="subject" class="member_normal"
+                       size="30" maxlength="150"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ENTER_TEXT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><TEXTAREA name="text" class="member_normal" rows="10"
+                       cols="50"></TEXTAREA></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--MEMBER_ENTER_URL--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="url" class="member_normal" size="40"
+                       maxlength="350" value="http://"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="3" align="center"><INPUT type="reset"
+                       class="member_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" name="ok" class="member_submit"
+                       value="{--ADMIN_SEND_MAIL--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_send_bonus_select.tpl b/0.2.1/templates/de/html/admin/admin_send_bonus_select.tpl
new file mode 100644 (file)
index 0000000..4dd17b8
--- /dev/null
@@ -0,0 +1,20 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed" width="520">
+       <TR>
+               <TD align="center" class="admin_header bottom2" height="30"><STRONG>{--ADMIN_SEND_BONUS_MAILS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD style="padding-left: 7px; padding-top: 5px; padding-bottom: 5px"
+                       class="bottom2"><STRONG><BIG>&middot;</BIG></STRONG>&nbsp;<A
+                       href="{!URL!}/modules.php?module=admin&amp;what=send_bonus&amp;mode=normal">{--ADMIN_SEND_BONUS_NORMAL--}</A><BR>
+               <BR>
+               <FONT class="admin_note">{--ADMIN_SEND_BONUS_NORMAL_NOTES--}</FONT></TD>
+       </TR>
+       <TR>
+               <TD style="padding-left: 7px; padding-top: 5px; padding-bottom: 5px">
+               <STRONG><BIG>&middot;</BIG></STRONG>&nbsp;<A
+                       href="{!URL!}/modules.php?module=admin&amp;what=send_bonus&amp;mode=html">{--ADMIN_SEND_BONUS_HTML--}</A><BR>
+               <BR>
+               <FONT class="admin_note">{--ADMIN_SEND_BONUS_HTML_NOTES--}</FONT></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_settings_saved.tpl b/0.2.1/templates/de/html/admin/admin_settings_saved.tpl
new file mode 100644 (file)
index 0000000..7d0d1dc
--- /dev/null
@@ -0,0 +1,9 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title2 bottom2">{--MESSAGE_HEADER--}</TD>
+       </TR>
+       <TR>
+               <TD class="admin_message"><STRONG>$content</STRONG></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_sub_points.tpl b/0.2.1/templates/de/html/admin/admin_sub_points.tpl
new file mode 100644 (file)
index 0000000..8f8c45d
--- /dev/null
@@ -0,0 +1,48 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=sub_points&amp;u_id={!__UID_VALUE!}"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD class="admin_title seperator" height="10" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_title" colspan="3" align="center">
+               {--ADMIN_SUB_POINTS_FROM_USER--}:<BR>
+               <STRONG>{!__USER_VALUE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="admin_title seperator bottom2" height="10" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_POINTS_SUB--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="points" size="6" maxlength="7"
+                       class="admin_normal"></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_SUB_REASON--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><TEXTAREA name="reason" class="admin_normal" rows="5"
+                       cols="20"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" class="admin_submit" name="ok"
+                       value="{--ADMIN_SUB_POINTS--}"></TD>
+       </TR>
+       <TR>
+               <TD height="10" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_sub_points_all.tpl b/0.2.1/templates/de/html/admin/admin_sub_points_all.tpl
new file mode 100644 (file)
index 0000000..aca6d84
--- /dev/null
@@ -0,0 +1,46 @@
+<FORM
+       action="{!URL!}/modules.php?module=admin&amp;what=sub_points&amp;u_id=all"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD class="admin_title seperator" height="10" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="admin_title" colspan="3" align="center">{--ADMIN_SUB_POINTS_FROM_ALL--}:</TD>
+       </TR>
+       <TR>
+               <TD class="admin_title seperator bottom2" height="10" colspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="8" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_POINTS_SUB--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="points" size="6" maxlength="7"
+                       class="admin_normal"></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ENTER_SUB_REASON--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><TEXTAREA name="reason" class="admin_normal" rows="5"
+                       cols="20"></TEXTAREA></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><INPUT type="reset"
+                       class="admin_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" class="admin_submit" name="ok"
+                       value="{--ADMIN_SUB_POINTS--}"></TD>
+       </TR>
+       <TR>
+               <TD height="10" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_task_holiday.tpl b/0.2.1/templates/de/html/admin/admin_task_holiday.tpl
new file mode 100644 (file)
index 0000000..7b31192
--- /dev/null
@@ -0,0 +1,2 @@
+<A
+       href="{!URL!}/modules.php?module=admin&amp;what=del_holiday&amp;u_id=$content">{--HOLIDAY_ADMIN_DEL_LINK--}</A>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_theme_404.tpl b/0.2.1/templates/de/html/admin/admin_theme_404.tpl
new file mode 100644 (file)
index 0000000..4236f6a
--- /dev/null
@@ -0,0 +1,7 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="400" class="admin_done dashed">
+       <TR>
+               <TD align="center" height="40"><STRONG class="admin_failed">{--ADMIN_THEME_NOTHING_FOUND--}</STRONG>
+               </TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_theme_edit.tpl b/0.2.1/templates/de/html/admin/admin_theme_edit.tpl
new file mode 100644 (file)
index 0000000..38f20f8
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=theme_edit"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title2 bottom2 right2" align="center">{--ID_SELECT--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_UNIX--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_NAME--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_ACTIVE--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_AUTHOR--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_URL--}</TD>
+               <TD class="admin_title2 bottom2" align="center">{--THEME_VERSION--}</TD>
+       </TR>
+       {--__THEME_LIST--}
+       <TR>
+               <TD colspan="7" class="admin_footer" align="center"><INPUT
+                       type="reset" class="admin_reset" value="{--RESET_SELECT--}">&nbsp;*
+               <INPUT type="submit" name="status" class="admin_submit"
+                       value="{--ADMIN_CHANGE_STATUS_THEME--}">&nbsp;* <INPUT
+                       type="submit" name="del" class="admin_delete"
+                       value="{--ADMIN_DELETE_ENTRIES--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="admin_note">{--ADMIN_THEME_NEW_DEFAULT_THEME--}</DIV>
diff --git a/0.2.1/templates/de/html/admin/admin_theme_edit_row.tpl b/0.2.1/templates/de/html/admin/admin_theme_edit_row.tpl
new file mode 100644 (file)
index 0000000..4105413
--- /dev/null
@@ -0,0 +1,16 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"
+               height="30"><INPUT type="checkbox" name="sel[$content[id]]"
+               class="admin_normal" value="1"> <INPUT type="hidden"
+               name="active[$content[id]]" class="admin_normal"
+               value="$content[active]"></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"
+               height="30">$content[link]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[name]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"
+               height="30">$content[is_act]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">$content[email]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"><A
+               href="$content[url_link]" target="_blank">$content[url_title]</A></TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center">v$content[ver]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_theme_import.tpl b/0.2.1/templates/de/html/admin/admin_theme_import.tpl
new file mode 100644 (file)
index 0000000..9720715
--- /dev/null
@@ -0,0 +1,16 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_UNIX--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_NAME--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_AUTHOR--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_URL--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_VERSION--}</TD>
+               <TD class="admin_title2 bottom2" align="center">{--THEME_INSTALL--}</TD>
+       </TR>
+       {--__THEME_LIST--}
+       <TR>
+               <TD colspan="6" class="admin_footer" align="center"><FONT
+                       class="admin_note">{--ADMIN_THEME_LIST_NOTE--}</FONT></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_theme_installed.tpl b/0.2.1/templates/de/html/admin/admin_theme_installed.tpl
new file mode 100644 (file)
index 0000000..382d64d
--- /dev/null
@@ -0,0 +1,7 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="400" class="admin_done dashed">
+       <TR>
+               <TD align="center" height="40"><STRONG>{--ADMIN_THEME_ALREADY_INSTALLED_1--}$content{--ADMIN_THEME_ALREADY_INSTALLED_2--}</STRONG>
+               </TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_theme_list.tpl b/0.2.1/templates/de/html/admin/admin_theme_list.tpl
new file mode 100644 (file)
index 0000000..b575ce2
--- /dev/null
@@ -0,0 +1,21 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="admin_table dashed" align="center">
+       <TR>
+               <TD colspan="5" align="center" class="admin_title bottom2" height="30">
+               <STRONG>{--ADMIN_THEME_NEW_FOUND_TITLE--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" width="5%" class="admin_title bottom2 right2">{--ID_SELECT--}</TD>
+               <TD align="center" width="35%" class="admin_title bottom2 right2">{--ADMIN_EXT_DOWNLOAD_LINK--}</TD>
+               <TD align="center" width="30%" class="admin_title bottom2 right2">{--ADMIN_THEME_FILE_CTIME--}</TD>
+               <TD align="center" width="15%" class="admin_title bottom2 right2">{--ADMIN_EXT_FILE_SIZE--}</TD>
+               <TD align="center" width="15%" class="admin_title bottom2">{--THEME_VERSION--}</TD>
+       </TR>
+       {--__THEMES_ROWS--}
+       <TR>
+               <TD colspan="2" align="center" class="admin_title right2">{--ADMIN_THEME_TOTAL_FOUND--}:
+               <STRONG>{--__TTHEME_VALUE--}</STRONG></TD>
+               <TD colspan="3" align="right" class="admin_title right2">{--ADMIN_EXT_TOTAL_FSIZE--}:&nbsp;&nbsp;<STRONG>{--__TKBYTES_VALUE--}
+               {--KBYTES--}</STRONG>&nbsp;&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_unlock_emails.tpl b/0.2.1/templates/de/html/admin/admin_unlock_emails.tpl
new file mode 100644 (file)
index 0000000..dc44302
--- /dev/null
@@ -0,0 +1,36 @@
+<FORM actiom="{!URL!}/modules.php?module=admin&amp;what=unlock_emails"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed" width="99%">
+       <TR>
+               <TD colspan="8" align="center" class="admin_header bottom2"
+                       height="35"><STRONG class="admin_misc">{--ADMIN_UNLOCK_EMAILS--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="admin_header right2" align="center" width="10"><STRONG>{--ID_SELECT--}</STRONG></TD>
+               <TD class="admin_header right2" align="center"><STRONG>{--EMAIL_SENDER--}</STRONG></TD>
+               <TD class="admin_header right2" align="center"><STRONG>{--EMAIL_SUBJECT--}</STRONG></TD>
+               <TD class="admin_header right2" align="center"><STRONG>{--EMAIL_URL--}</STRONG></TD>
+               <TD class="admin_header right2" align="center"><STRONG>{--EMAIL_CATEGORY--}</STRONG></TD>
+               <TD class="admin_header right2" align="center"><STRONG>{--EMAIL_PAYMENT--}</STRONG></TD>
+               <TD class="admin_header right2" align="center"><STRONG>{--EMAIL_TIMESTAMP--}</STRONG></TD>
+               <TD class="admin_header" style="white-space: nowrap" align="center"><STRONG>{--EMAIL_TSEND--}</STRONG></TD>
+       </TR>
+       {--__UNLOCK_ROWS--}
+       <TR>
+               <TD class="admin_footer top2" colspan="8" align="center" height="35">
+               {--ADMIN_ENTER_REDIRECT_URL--}: <INPUT type="text" name="redirect"
+                       class="admin_normal" size="30" maxlength="255"
+                       value="{--__REJECT_URL--}"></TD>
+       </TR>
+       <TR>
+               <TD class="admin_footer top2" colspan="8" align="center" height="35">
+               <INPUT type="reset" class="admin_reset" value="{--RESET_SELECT--}">&nbsp;*
+               <INPUT type="submit" class="admin_submit" name="accept"
+                       value="{--EMAIL_ACCEPT--}">&nbsp;* <INPUT type="submit"
+                       class="admin_submit_reject" name="reject" value="{--EMAIL_REJECT--}">
+               </TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_unlock_emails_redir.tpl b/0.2.1/templates/de/html/admin/admin_unlock_emails_redir.tpl
new file mode 100644 (file)
index 0000000..b183b5c
--- /dev/null
@@ -0,0 +1,22 @@
+<FORM action="{!URL!}/modules.php?module=admin&amp;what=unlock_emails"
+       method="POST">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_header bottom2" width="10">&nbsp;</TD>
+               <TD class="admin_header bottom2" colspan="2" align="center"
+                       height="35"><STRONG class="admin_misc">{--ADMIN_REJECTED_URLS--}</STRONG>
+               </TD>
+               <TD class="admin_header bottom2" width="10">&nbsp;</TD>
+       </TR>
+       {--__URL_ROWS--}
+       <TR>
+               <TD class="admin_header" width="10">&nbsp;</TD>
+               <TD class="admin_header" colspan="2" align="center" height="35">
+               <INPUT type="reset" class="admin_reset" value="{--RESET_SELECT--}">&nbsp;*
+               <INPUT type="submit" name="lock" class="admin_submit"
+                       value="{--ADMIN_LOCK_URLS--}"></TD>
+               <TD class="admin_header" width="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/admin/admin_unlock_emails_redir_row.tpl b/0.2.1/templates/de/html/admin/admin_unlock_emails_redir_row.tpl
new file mode 100644 (file)
index 0000000..04e8b17
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD class="bottom2 switch_sw$content[sw]" width="10">&nbsp;</TD>
+       <TD class="bottom2 switch_sw$content[sw]" width="25" align="center">
+       <INPUT type="radio" name="sel[$content[id]]" value="$content[url]">
+       </TD>
+       <TD class="bottom2 switch_sw$content[sw]">$content[url]</TD>
+       <TD class="bottom2 switch_sw$content[sw]" width="10">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_unlock_emails_row.tpl b/0.2.1/templates/de/html/admin/admin_unlock_emails_row.tpl
new file mode 100644 (file)
index 0000000..90e0ace
--- /dev/null
@@ -0,0 +1,18 @@
+<TR>
+       <TD class="switch_sw$content[sw] top2 right2" align="center"
+               height="30"><INPUT type="checkbox" name="sel[$content[id]]"
+               class="admin_normal" value="1"> <INPUT type="hidden"
+               name="sender[$content[id]]" value="$content[sender]"></TD>
+       <TD class="switch_sw$content[sw] top2 right2 admin_misc" align="center">$content[u_link]</TD>
+       <TD class="switch_sw$content[sw] top2 right2 admin_misc">$content[subj]</TD>
+       <TD class="switch_sw$content[sw] top2 right2" align="center"><A
+               href="$content[tester]" target="_blank">{--EMAIL_URL_TEST--}</A> <INPUT
+               type="hidden" name="url[$content[id]]" value="$content[url]">
+       </TD>
+       <TD class="switch_sw$content[sw] top2 right2 admin_misc" align="center">
+       <B title="$content[cat_title]">$content[cat_link]</STRONG></TD>
+       <TD class="switch_sw$content[sw] top2 right2 admin_misc" align="center">
+       <B title="$content[pay_title]">$content[pay_link]</STRONG></TD>
+       <TD class="switch_sw$content[sw] top2 right2 admin_misc" align="center">$content[ordered]</TD>
+       <TD class="switch_sw$content[sw] top2 admin_misc" align="center">$content[tsend]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/admin/admin_update_download.tpl b/0.2.1/templates/de/html/admin/admin_update_download.tpl
new file mode 100644 (file)
index 0000000..91f7161
--- /dev/null
@@ -0,0 +1,67 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="710"
+       align="center" class="admin_table dashed" align="center">
+       <TR>
+               <TD class="admin_title bottom2" align="center" colspan="3" height="30">
+               <STRONG class="big">{--NEW_VERSION_AVAILABLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="10" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350">{--YOUR_VERSION_IS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>v{!FULL_VERSION!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="2" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350">{--ONLINE_VERSION_IS--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>v{--__ONLINE_VERSION--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="2" colspan="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="350">{--UPDATE_CREATE_TIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>{--__ONLINE_CHANGE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="10" colspan="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="bottom2">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD colspan="2" class="admin_title bottom2" align="center"
+                                       height="30"><STRONG class="big">{--DOWNLOAD_NEW_VERSION--}</STRONG>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" height="25">{--DOWNLOAD_ZIP--}:&nbsp;</TD>
+                               <TD align="center"><STRONG><A
+                                       href="http://prdownloads.sourceforge.net/mxchange/mxchange-{--__ONLINE_VERSION--}.zip?download"
+                                       target="_blank">{--DOWNLOAD_NOW--}</A></STRONG></TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" height="25">{--DOWNLOAD_BZIP2--}:&nbsp;</TD>
+                               <TD align="center"><STRONG><A
+                                       href="http://prdownloads.sourceforge.net/mxchange/mxchange-{--__ONLINE_VERSION--}.bzip2?download"
+                                       target="_blank">{--DOWNLOAD_NOW--}</A></STRONG></TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" height="25">
+                               {--DOWNLOAD_FROM_SERVER--}:&nbsp;</TD>
+                               <TD align="center"><STRONG><A
+                                       href="{--SERVER_URL--}/cms/index/wht/downloads" target="_blank">{--DOWNLOAD_NOW--}</A></STRONG>
+                               </TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="30" colspan="3" class="admin_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_user_details.tpl b/0.2.1/templates/de/html/admin/admin_user_details.tpl
new file mode 100644 (file)
index 0000000..339b342
--- /dev/null
@@ -0,0 +1,85 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       align="center" class="admin_table dashed">
+       <TR>
+               <TD colspan="5" class="admin_title" align="center"
+                       style="height: 30px"><STRONG class="admin_green big">{--_UID--}
+               $content</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" width="20%" class="top right">{--SEX--}:<BR>
+               <STRONG>$DATA[0]</STRONG></TD>
+               <TD align="center" width="20%" class="top right">{--SURNAME--}:<BR>
+               <STRONG>$DATA[1]</STRONG></TD>
+               <TD align="center" width="20%" class="top right">{--FAMILY_NAME--}:<BR>
+               <STRONG>$DATA[2]</STRONG></TD>
+               <TD align="center" width="20%" class="top right">{--STREET_NR--}:<BR>
+               <STRONG>$DATA[3]</STRONG></TD>
+               <TD align="center" width="20%" class="top">{--BIRTHDAY2--}:<BR>
+               <STRONG>{!_BIRTHDAY!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="top right">{--COUNTRY--}:<BR>
+               <STRONG>$DATA[6]</STRONG></TD>
+               <TD align="center" class="top right">{--ZIP--}:<BR>
+               <STRONG>$DATA[4]</STRONG></TD>
+               <TD align="center" class="top right">{--CITY--}:<BR>
+               <STRONG>$DATA[5]</STRONG></TD>
+               <TD align="center" class="top right">{--ADDY--}:<BR>
+               <STRONG><A href="$DATA[28]">$DATA[7]</A></TD>
+               <TD align="center" class="top">{--ACCOUNT_STATUS--}:<BR>
+               <STRONG>$DATA[14]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="top right">{--RECEIVE_MAILS--}:<BR>
+               <STRONG>$DATA[12]</STRONG></TD>
+               <TD align="center" class="top right">{--MAX_PER_DAY--}:<BR>
+               <STRONG>$DATA[11]</TD>
+               <TD align="center" class="top right">{--REF_UID--}:<BR>
+               <STRONG>$DATA[13]</STRONG></TD>
+               <TD align="center" class="top right">{--REF_CLICKS--}:<BR>
+               <STRONG>$DATA[18]</STRONG></TD>
+               <TD align="center" class="top">{--TOTAL_LOGINS--}:<BR>
+               <STRONG>$DATA[19]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="top right">{--REMOTE_IP--}:<BR>
+               <STRONG>$DATA[15]</STRONG></TD>
+               <TD align="center" class="top right">{--ADMIN_LAST_ONLINE--}:<BR>
+               <STRONG>$DATA[16]</STRONG></TD>
+               <TD align="center" class="top right">{--ADMIN_LAST_MODULE--}:<BR>
+               <STRONG>$DATA[17]</STRONG></TD>
+               <TD align="center" class="top right">{--HAS_JOINED--}:<BR>
+               <STRONG>$DATA[22]</STRONG></TD>
+               <TD align="center" class="top">{--MAILS_SENT--}:<BR>
+               <STRONG>$DATA[21]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="top right">{--USED_POINTS--}:<BR>
+               <STRONG>$DATA[20]</STRONG></TD>
+               <TD align="center" class="top right">{--TOTAL_POINTS--}:<BR>
+               <STRONG>$DATA[total]</STRONG></TD>
+               <TD align="center" class="top right">{--TOTAL_REFERRALS--}:<BR>
+               <STRONG>{!_REFS!}</STRONG></TD>
+               <TD align="center" class="top right">{--TOTAL_CATS--}:<BR>
+               <STRONG>{!_CATS!}</STRONG></TD>
+               <TD align="center" class="top">{--UNCONFIRMED_LINKS--}:<BR>
+               <STRONG>{!_LINKS!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="top right">{--LOCKED_POINTS--}:<BR>
+               <STRONG>$DATA[locked]</STRONG></TD>
+               <TD align="center" class="top right">{--LAST_UPDATE--}:<BR>
+               <STRONG>$DATA[23]</STRONG></TD>
+               <TD align="center" class="top right">{--LAST_PROFILE_SENT--}:<BR>
+               <STRONG>$DATA[24]</STRONG></TD>
+               <TD align="center" class="top right">{--USER_REF_PAYOUT--}:<BR>
+               <STRONG>$DATA[26]</STRONG></TD>
+               <TD align="center" class="top">{--USER_NICKNAME--}:<BR>
+               <STRONG>$DATA[27]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="admin_footer top" colspan="5">
+               {--ADMIN_MEMBER_FUNCTIONS--}:<BR>
+               {!_ADMIN_LINKS!}</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/admin/admin_welcome.tpl b/0.2.1/templates/de/html/admin/admin_welcome.tpl
new file mode 100644 (file)
index 0000000..852fdb7
--- /dev/null
@@ -0,0 +1,17 @@
+<STRONG>: : : Willkommen zum Administrationsbereich : : :</STRONG>
+<BR>
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+       <TR>
+               <TD>
+               <DIV align="left" class="tiny">&nbsp;&nbsp;&nbsp;Hallo $username
+               !</DIV>
+               </TD>
+               <TD align="center" width="300" class="dashed"><FONT class="tiny">
+               Aktueller Admin: <STRONG title="Erweiterung admins nicht installiert.">{!__ADMIN_LOGIN!}</STRONG>
+               </FONT></TD>
+               <TD align="center" width="100" class="top2 bottom2 right2"><FONT
+                       class="tiny"> <A class="menu_blur admin_logout"
+                       href="{!URL!}/modules.php?module=admin&amp;action=logout">Ausloggen</A>
+               </FONT></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/admin/admin_welcome_admins.tpl b/0.2.1/templates/de/html/admin/admin_welcome_admins.tpl
new file mode 100644 (file)
index 0000000..e4b93ad
--- /dev/null
@@ -0,0 +1,18 @@
+<STRONG>: : : Willkommen zum Administrationsbereich : : :</STRONG>
+<BR>
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+       <TR>
+               <TD>
+               <DIV align="left" class="tiny">&nbsp;&nbsp;&nbsp;Hallo $username
+               !</DIV>
+               </TD>
+               <TD align="center" width="300" class="dashed"><FONT class="tiny">
+               Aktueller Admin: <A
+                       href="{!URL!}/modules.php?module=admin&amp;what=admins_edit&admin={!__ADMIN_ID!}"><STRONG>{!__ADMIN_LOGIN!}</STRONG></A>
+               </FONT></TD>
+               <TD align="center" width="100" class="top2 bottom2 right2"><FONT
+                       class="tiny"> <A class="menu_blur admin_logout"
+                       href="{!URL!}/modules.php?module=admin&amp;action=logout">Ausloggen</A>
+               </FONT></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/agb.tpl b/0.2.1/templates/de/html/agb.tpl
new file mode 100644 (file)
index 0000000..1dc3481
--- /dev/null
@@ -0,0 +1,224 @@
+<div class="agb_box">
+<div class="agb_title">Allgemeine Gesch&auml;ftsbedingungen von
+{!MAIN_TITLE!}</div>
+
+<div class="agb_para">&sect;1 {!MAIN_TITLE!} betreibt einen
+{!MT_WORD!} und bietet Ihnen damit die M&ouml;glichkeit, durch das Lesen
+und Best&auml;tigen (Besuch der beworbenen Webseiten) von Werbemails
+{!POINTS!} zu sammeln. Die auf diese Weise gesammelten {!POINTS!}
+k&ouml;nnen benutzt werden, um Werbung in E-Mails an andere Mitglieder
+durch {!MAIN_TITLE!} versenden zu lassen. Auf diese Weise k&ouml;nnen
+Sie legal Ihre Webseiten, Projekte, Produkte usw. bewerben.</div>
+
+<div class="agb_para">&sect;2 F&uuml;r die Teilnahme am
+{!MT_WORD!} ist die Anmeldung bei {!MAIN_TITLE!} erforderlich.
+Anmeldung, Mitgliedschaft und K&uuml;ndigung sind kostenlos.
+Teilnahmeberechtigt ist jede Person die das 18. Lebensjahr vollendet
+hat. Bei der Anmeldung sind alle Felder des Anmeldeformulars korrekt
+auszuf&uuml;llen. Nach der Anmeldung erhalten Sie eine
+Best&auml;tigungsmail mit Ihren Zugangsdaten.</div>
+
+<div class="agb_para">&sect;2a. bei falschen Angaben im
+Anmeldeformular behalten wir uns vor, das Account zu l&ouml;schen.</div>
+
+<div class="agb_para">&sect;3 Jede Person darf sich nur einmal
+anmelden. Pro Name und Adresse ist nur ein Account zul&auml;ssig. Dies
+gilt speziell auch dann, wenn eine Person mehrere Mailadressen hat. Es
+ist ebenfalls nicht zul&auml;ssig, Personen ohne deren Wissen
+anzumelden, um den Account f&uuml;r sich selbst zu nutzen.
+Zuwiderhandlungen erf&uuml;llen den Straftatbestand des
+Computerbetruges. {!MAIN_TITLE!} beh&auml;lt sich das Recht vor, bei
+Mehrfachanmeldungen alle Accounts eines Users zu l&ouml;schen und
+bestimmten Personen die Teilnahme zu versagen.</div>
+
+<div class="agb_para">&sect;4 Das Werben neuer Mitglieder durch
+SPAM wird strengstens untersagt, d. h. es wird verboten, E-Mails an
+Internet-User zu versenden, die dieses nicht ausdr&uuml;cklich
+w&uuml;nschen. Dies gilt auch f&uuml;r das Werben in Foren, Newsgroup
+o.&auml;. wo dies nicht ausdr&uuml;cklich erw&uuml;nscht ist.
+Verst&ouml;&szlig;t ein User gegen diese Regel &uuml;bernimmt der User
+in Eigenverantwortung alle dadurch anfallenden Kosten und die
+Mitgliedschaft wird sofort gek&uuml;ndigt.</div>
+
+<div class="agb_para">&sect;5 Die Mitglieder, die
+regelm&auml;&szlig;ig Werbe- EMails durch {!MAIN_TITLE!} erhalten und
+best&auml;tigen, bekommen daf&uuml;r sogenannte Werbepunkte auf ihr
+Konto gutgeschrieben. F&uuml;r diese {!POINTS!} kann das Mitglied selbst
+Werbemails buchen. Eine Einwechslung von Werbepunkten gegen Geld ist zu
+keiner Zeit m&ouml;glich. Empfangene Werbemails m&uuml;ssen innerhalb
+von 14 Tagen best&auml;tigt werden, unbest&auml;tige Werbemails
+verlieren nach 14 Tagen ihre G&uuml;ltigkeit und k&ouml;nnen somit nicht
+mehr best&auml;tigt werden.</div>
+
+<div class="agb_para">&sect;6 {!MAIN_TITLE!} gew&auml;hrleistet
+weder den st&auml;ndigen und ordnungsgem&auml;&szlig;en Betrieb, noch
+die ununterbrochene Nutz- und Verf&uuml;gbarkeit dieses Dienstes. Die
+Nutzung erfolgt auf eigene Verantwortung und Gefahr. F&uuml;r
+unvorhergesehene Zwischenf&auml;lle &uuml;bernehmen wir keine Haftung.
+Schadensersatzanspr&uuml;che k&ouml;nnen in keinem Fall geltend gemacht
+werden.</div>
+
+<div class="agb_para">&sect;7 {!MAIN_TITLE!} beh&auml;lt sich das
+Recht vor, die AGB`s jederzeit ohne vorherige Ank&uuml;ndigung zu
+&auml;ndern. Sollte ein Mitglied den AGB`s dann nicht mehr zustimmen,
+kann dieser die Mitgliedschaft bei {!MAIN_TITLE!} jederzeit
+k&uuml;ndigen. Angesammelte {!POINTS!} gehen dann verloren. Widerspricht
+ein Mitglied den AGB`s nicht, wird eine Annahme vorausgesetzt.</div>
+
+<div class="agb_para">&sect;8 Sowohl {!MAIN_TITLE!} als auch die
+angemeldeten Mitglieder betreiben Ihre Seiten unabh&auml;ngig vom
+Vertragspartner. Es entsteht zwischen {!MAIN_TITLE!} und dem Partner
+kein Arbeitsverh&auml;ltnis, keine Gesellschaft, keine Gemeinschaft und
+kein Handelsvertretervertrag. Die Mitglieder haben nicht das Recht im
+Namen von {!MAIN_TITLE!} aufzutreten oder im Namen von {!MAIN_TITLE!}
+Erkl&auml;rungen abzugeben.Die in den Werbe-Mails versandten Werbetexte
+und die mit ihnen beworbenen Seiten, Produkte und Dienstleistungen
+entziehen sich dem Einfluss von {!MAIN_TITLE!} und stellen nicht die
+Meinung von {!MAIN_TITLE!} dar. Wir distanzieren uns von den versandten
+Werbetexten, die Ausschlie&szlig;lich den Werbekunden als Urheber haben,
+und von den mit ihnen beworbenen Seiten. Dies gilt auch f&uuml;r die auf
+{!MAIN_TITLE!} erscheinenden Bannereinblendungen und den damit
+verlinkten Seiten die von den Mitgliedern oder sonstigen Werbekunden
+gebucht wurden.</div>
+
+<div class="agb_para">&sect;9 Der Vertrag wird von beiden Parteien
+bis auf Widerruf unbefristet und auf unbestimmte Zeit geschlossen. Der
+Vertrag kann von jeder Partei ohne Einhaltung einer Frist gek&uuml;ndigt
+werden. {!MAIN_TITLE!} kann und wird jedem Mitglied fristlos
+k&uuml;ndigen, wenn die Regeln zum Schaden von {!MAIN_TITLE!} oder der
+Mitglieder verletzt werden. In diesem Fall erlischt das bis dahin
+angesammelte Guthaben. Wenn das Mitglied den Account l&ouml;scht,
+verfallen somit s&auml;mtliche Guthaben des Mitgliedes. {!MAIN_TITLE!}
+beh&auml;lt sich das Recht vor, bei einem Versto&szlig; gegen eine
+Klausel dieser AGB das Mitglied fristlos zu k&uuml;ndigen und den
+Account sofort zu sperren.</div>
+
+<div class="agb_para">&sect;10 Es ist verboten Seiten zu bewerben
+die kriminelle, das Gesetz missachtende, ausl&auml;nderfeindliche
+Inhalte haben. Dies gilt sowohl f&uuml;r nationale, als auch
+internationale Gesetze. Werbetexte die solche Seiten bewerben, werden
+nicht versandt.</div>
+
+<div class="agb_para">&sect;10a </font><font size="2">{!MAIN_TITLE!}
+beh&auml;lt sich die Pr&uuml;fung von zu bewerbenden Webseiten
+unmittelbar vor der Versendung und ein Auswechseln der beworbenen URL
+bei bereits versendeten Werbemails vor.</div>
+
+<div class="agb_para">&sect;11 Es ist nicht gestattet, Werbeseiten
+mit mehr als 1 PopUp zu versenden. Verboten sind auch PopUp&#39;s die
+sich nicht schlie&szlig;en lassen oder wodurch unerw&uuml;nschte Dialer
+installiert werden. Es ist nicht gestattet, ExitUps zu versenden. Die
+Werbemail mit der zu bewerbenden Seite ist dem bestzugeh&ouml;rigen
+Interessengebiet zuzuordnen. Es wird untersagt, dieselbe Internetseite
+mehrmals als 1 mal innerhalb von 24 Stunden zu bewerben. Dies gilt auch,
+wenn die beworbene Webseite verschiedenen Interessengebieten zugeordnet
+werden kann. Jedes Mitglied hat vor dem Versand einer Werbemail zu
+pr&uuml;fen, ob die beworbene Webseite einen Framekiller hat. Auf der
+Seite &quot;Umtausch&quot; steht daf&uuml;r eine Testm&ouml;glichkeit
+zur Verf&uuml;gung. Sollte einen Framekiller, unerw&uuml;nschte Dialer
+der sich selbst installiert zum Versand kommen, beh&auml;lt sich
+{!MAIN_TITLE!} das Recht vor, bei einem Versto&szlig; das Mitglied
+fristlos zu k&uuml;ndigen und den Account zu sperren.</div>
+
+<div class="agb_para">&sect;12 F&uuml;r die nachfolgend
+aufgef&uuml;hrten T&auml;tigkeiten und/oder Unternehmen ist es verboten,
+&uuml;ber {!MAIN_TITLE!} Werbemails zu versenden.</div>
+
+<div class="agb_para">
+<ol type="1">
+       <li>Internetkettenbriefe, Schneeballsysteme, illegale
+       Pyramidensysteme, Crack-Seiten</li>
+       <li>Reportversand (Jonathan Rourke, Die Perle im Internet,
+       Internetgoldgrubenreporte &#128;200.000 in 6 Mon., ...)</li>
+</ol>
+</div>
+
+<div class="agb_para">Diese Liste kann jederzeit erweitert werden,
+ohne dass die Mitglieder davon extra in Kenntnis gesetzt werden
+m&uuml;ssen.</div>
+
+<div class="agb_para">&sect;13 Das bewerben erotischer Webseiten
+ist erlaubt, Erotikseiten und PopUps d&uuml;rfen nur in der Kategorie:
+Erotik versendet werden. Hardcoreseiten und Harscore Pop-/ExitUp?s ist
+nicht erlaubt.</div>
+
+<div class="agb_para">&sect;14 Sollte ein Mitglied gegen die
+Bestimmungen der 10 - 13 Versto&szlig;en, hat dies einen Ausschluss oder
+Abmahnung zur Folge. Bei massiven Verst&ouml;&szlig;en behalten wir uns
+das Recht vor, das Konto des betreffenden Mitgliedes auf Null zu setzen
+oder zu l&ouml;schen.</div>
+
+<div class="agb_para">&sect;14.a Bei Ablehnung eines Versand
+werden die {!POINTS!} nicht mehr gutgeschrieben</div>
+
+<div class="agb_para">&sect;14.b Sollte ein Mitglied mehr als 250
+unbest&auml;tigte Mails haben, behalten wir uns vor sein Account zu
+l&ouml;schen.</div>
+
+<div class="agb_para">14.c Mails die nicht zugestellt werden
+k&ouml;nnen wegen Mailserver ist voll oder inaktiv usw., werden wir das
+Mitglied-Account sperren! nach zehn Tagen ohne eine Mitteilung vom
+Mitglied werden wir das Account l&ouml;schen.</div>
+
+<div class="agb_para">&sect;14.d Accounts die &uuml;ber einen
+Monat bei Mailempfang auf Null stehen, ohne das wir eine Mitteilung
+erhalten haben, werden gel&ouml;scht, die eingesammelte {!POINTS!} gehen
+verloren.</div>
+
+<div class="agb_para">&sect;15 Das Mitglied haftet f&uuml;r alle
+Kosten, die durch Manipulationen oder einen Versto&szlig; gegen die
+Regeln durch das Mitglied an dem Werbedienst von {!MAIN_TITLE!}
+entstehen.{!MAIN_TITLE!} beh&auml;lt sich Forderungen wegen entstandenem
+Verdienstausfall vor.</div>
+
+<div class="agb_para">&sect;16 Das Mitglied erkl&auml;rt sich mit
+der Speicherung seiner personenbezogenen Daten durch {!MAIN_TITLE!}
+einverstanden. Die Nutzung der Daten dient ausschlie&szlig;lich der
+Betreuung und Durchf&uuml;hrung des {!MT_WORD2!} von {!MAIN_TITLE!}.
+Eine Weitergabe der Daten an Dritte findet nicht statt.</div>
+
+<div class="agb_para">&sect;16.a {!MAIN_TITLE!} verpflichtet sich,
+die Bestimmungen des Deutschen Bundesdatenschutzgesetzes (BDSG) und des
+Teledienste Datenschutz Gesetzes (TDDSG) zu beachten.</div>
+
+<div class="agb_para">&sect;17 Der Nutzer erkl&auml;rt sich durch
+seine Anmeldung mit diesen Allgemeinen Gesch&auml;ftsbedingungen
+einverstanden.</div>
+
+<div class="agb_para">&sect;18 Disclaimer Am 12. Mai 1998 hat das
+Landgericht Hamburg entschieden, da&szlig; man durch die Anbringung
+eines Links die Inhalte der gelinkten Seite ggf. mitzuverantworten hat
+(Aktenzeichen 312 0 85/98). Dies kann - so das Hamburger Landgericht-
+nur dadurch verhindert werden, da&szlig; man sich ausdr&uuml;cklich von
+diesen Inhalten distanziert. Deshalb gilt f&uuml;r alle Links, die sich
+auf unserer Homepage befinden, folgendes: F&uuml;r den Inhalt der
+einzelnen gelinkten Homepages ist ausschlie&szlig;lich der betreffende
+Autor selbst verantwortlich ; sie dienen lediglich Informationszwecken
+und wir machen uns diese Inhalte nicht zu Eigen! Wir m&ouml;chten
+ausdr&uuml;cklich betonen, da&szlig; wir keinerlei Einflu&szlig; auf die
+Gestaltung und die Inhalte der von uns gelinkten Seiten haben und
+deshalb keinerlei Haftung &uuml;bernehmen. Falls die Links zu Seiten
+f&uuml;hren, die illegale Inhalte haben und gegen bestehendes Recht
+versto&szlig;en oder Ihre pers&ouml;nlichen Rechte verletzen, bitten wir
+um einen offiziellen Hinweis; ein Anwalt braucht hierzu nicht
+eingeschaltet zu werden. Der 1995 von Bill Clinton verabschiedete
+&quot;Code 431.322.12 of the Internet Privacy Act&quot; ist ebenso auf
+diese Seite anwendbar. Falls wir mit der Ver&ouml;ffentlichung Ihr
+Copyright verletzen, teilen Sie es uns bitte mit. &Auml;nderung erfolgt
+dann prompt. Falls sich die Rechtsprechung gravierend &auml;ndern sollte
+und der Inhalt dieser Seiten Unrecht sein sollte, bitten wir um die
+M&ouml;glichkeit zur Nachbesserung. Grunds&auml;tzlich freuen wir uns
+&uuml;ber die Linkung unserer Seite und genehmigen dies hiermit; wir
+untersagen die Linkung jedoch ausdr&uuml;cklich von/f&uuml;r Seiten,
+deren Inhalt ein strafrechtliches Vergehen (z.B. Kinderpornografie,
+Neonazismus, Terrorismus...) darstellt und dementsprechend auch geahndet
+wird. Der weitere Besuch unserer Website wird als Anerkennung vorab
+genannter Grunds&auml;tze ausgelegt.</div>
+
+<div class="agb_para">&sect;19 Gerichtsstand: xxxxx Wohnort</div>
+
+<div class="agb_para">Stand: 19.10.2003</div>
+
+<div class="agb_para"><strong>&copy; 2003, <I>Name</I>,
+Wohnort</strong></div>
+</div>
diff --git a/0.2.1/templates/de/html/beg/.htaccess b/0.2.1/templates/de/html/beg/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/beg/beg_banner.tpl b/0.2.1/templates/de/html/beg/beg_banner.tpl
new file mode 100644 (file)
index 0000000..86d6695
--- /dev/null
@@ -0,0 +1,3 @@
+Dieser Text steht im Template
+<STRONG>beg_banner.tpl</STRONG>
+und m&ouml;chte ge&auml;ndert werden!
diff --git a/0.2.1/templates/de/html/beg/beg_done.tpl b/0.2.1/templates/de/html/beg/beg_done.tpl
new file mode 100644 (file)
index 0000000..31adb59
--- /dev/null
@@ -0,0 +1,9 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+       <TR>
+               <TD align="center">
+               <P>{--BEG_UID_STEAL_1--}<STRONG>{!__BEG_UID!}</STRONG>{--BEG_UID_STEAL_2--}<STRONG>{!__BEG_POINTS!}</STRONG>{--BEG_UID_STEAL_3--}</P>
+               <P>{--BEG_CLICKS_1--}<STRONG>{--__BEG_CLICKS--}</STRONG>{--BEG_CLICKS_2--}</P>
+               <P align="right">{--BEG_THANKS_FOR_CLICK--}</P>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/beg/beg_failed.tpl b/0.2.1/templates/de/html/beg/beg_failed.tpl
new file mode 100644 (file)
index 0000000..2d66218
--- /dev/null
@@ -0,0 +1,9 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+       <TR>
+               <TD align="center">
+               <P>{--BEG_SORRY_ANOTHER_WAS_HERE_1--}<STRONG>{!__BEG_UID!}</STRONG>{--BEG_SORRY_ANOTHER_WAS_HERE_2--}<STRONG>{!__BEG_POINTS!}</STRONG>{--BEG_SORRY_ANOTHER_WAS_HERE_3--}</P>
+               <P>{--BEG_CLICKS_1--}<STRONG>{--__BEG_CLICKS--}</STRONG>{--BEG_CLICKS_2--}</P>
+               <P align="right">{--BEG_THANKS_FOR_CLICK_AGAIN--}</P>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/beg/beg_link.tpl b/0.2.1/templates/de/html/beg/beg_link.tpl
new file mode 100644 (file)
index 0000000..5e49a38
--- /dev/null
@@ -0,0 +1,34 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%"
+       style="height: 100%">
+       <TR>
+               <TD height="10%" align="center">
+               <P align="center">{--__BEG_BANNER--}</P>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="80%" align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="beg_table dashed" width="620">
+                       <TR>
+                               <TD align="center" height="50" class="bottom2"><FONT
+                                       class="big">{--BEG_LINK_BY_1--}<STRONG>{!MAIN_TITLE!}</STRONG>{--BEG_LINK_BY_2--}</FONT><BR>
+                               {--BEG_LINK_USERID_1--}<U>{!__BEG_UID!}</U>{--BEG_LINK_USERID_2--}</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center" height="120" class="beg_msg bottom2">
+                               {--__BEG_MSG--}</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center" height="30"><A
+                                       href="{!URL!}/ref.php?ref={!__BEG_UID!}">{--BEG_CONTINUE_REGISTER--}</A>
+                               </TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="10%" align="center">
+               <P align="center">{--__BEG_BANNER--}</P>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/beg/beg_login.tpl b/0.2.1/templates/de/html/beg/beg_login.tpl
new file mode 100644 (file)
index 0000000..d01749d
--- /dev/null
@@ -0,0 +1,9 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+       <TR>
+               <TD align="center">
+               <P>{--BEG_SORRY_YOURE_LOGGED_IN_1--}<STRONG>{!__BEG_UID!}</STRONG>{--BEG_SORRY_YOURE_LOGGED_IN_2--}<STRONG>{!__BEG_POINTS!}</STRONG>{--BEG_SORRY_YOURE_LOGGED_IN_3--}</P>
+               <P>{--BEG_CLICKS_1--}<STRONG>{--__BEG_CLICKS--}</STRONG>{--BEG_CLICKS_2--}</P>
+               <P align="right">{--BEG_THANKS_FOR_CLICK_AGAIN--}</P>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/birthday/.htaccess b/0.2.1/templates/de/html/birthday/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/birthday/birthday_confirm.tpl b/0.2.1/templates/de/html/birthday/birthday_confirm.tpl
new file mode 100644 (file)
index 0000000..f3ebdaf
--- /dev/null
@@ -0,0 +1,12 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%"
+       style="height: 100%">
+       <TR>
+               <TD height="10%" align="center">{--__BIRTHDAY_HEADER--}</TD>
+       </TR>
+       <TR>
+               <TD height="80%" align="center">{--__MSG--}</TD>
+       </TR>
+       <TR>
+               <TD height="10%" align="center">{--__BIRTHDAY_FOOTER--}</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/birthday/birthday_footer.tpl b/0.2.1/templates/de/html/birthday/birthday_footer.tpl
new file mode 100644 (file)
index 0000000..baf57d0
--- /dev/null
@@ -0,0 +1,3 @@
+Dieser Text steht im Template
+<STRONG>birthday_footer.tpl</STRONG>
+!
diff --git a/0.2.1/templates/de/html/birthday/birthday_header.tpl b/0.2.1/templates/de/html/birthday/birthday_header.tpl
new file mode 100644 (file)
index 0000000..b306d03
--- /dev/null
@@ -0,0 +1,3 @@
+Dieser Text steht im Template
+<STRONG>birthday_header.tpl</STRONG>
+!
diff --git a/0.2.1/templates/de/html/birthday/birthday_msg.tpl b/0.2.1/templates/de/html/birthday/birthday_msg.tpl
new file mode 100644 (file)
index 0000000..a17a371
--- /dev/null
@@ -0,0 +1,12 @@
+<STRONG class="big">Herzlichen Gl&uuml;ckwunsch zum Geburtstag!</STRONG>
+<BR>
+<BR>
+Hallo {!__SALUT!} {!__SNAME!} {!__FNAME!}!
+<BR>
+<BR>
+Wir das Team von
+<STRONG class="nobr">{!MAIN_TITLE!}</STRONG>
+w&uuml;schen Ihnen alles Gute und Gesundheit zum Geburtstag. Als kleines
+Geschenk von uns haben wir Ihnen soeben
+<STRONG class="nobr">{--__GIFT--} {!POINTS!}</STRONG>
+Ihrem Account gutgeschrieben!
diff --git a/0.2.1/templates/de/html/copyright.tpl b/0.2.1/templates/de/html/copyright.tpl
new file mode 100644 (file)
index 0000000..c95e5ef
--- /dev/null
@@ -0,0 +1,10 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center">
+       <TR>
+               <TD align="center" class="footer_lines">{!TITLE!}
+               v{!FULL_VERSION!}<BR>
+               Copyright &copy; 2003 - 2008 by Roland H&auml;der</TD>
+               <TD align="center" width="50%" class="footer_lines">This
+               website&#39;s engine is free software which is released under the GNU
+               GPL either version 2 of the License.</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/copyright_backlink.tpl b/0.2.1/templates/de/html/copyright_backlink.tpl
new file mode 100644 (file)
index 0000000..717174b
--- /dev/null
@@ -0,0 +1,10 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center">
+       <TR>
+               <TD align="center" class="footer_lines">{!TITLE!}
+               v{!FULL_VERSION!}<BR>
+               {!COPY!}</TD>
+               <TD align="center" width="50%" class="footer_lines">This
+               website&#39;s engine is free software which is released under the GNU
+               GPL either version 2 of the License.</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/doubler/.htaccess b/0.2.1/templates/de/html/doubler/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/doubler/doubler_footer.tpl b/0.2.1/templates/de/html/doubler/doubler_footer.tpl
new file mode 100644 (file)
index 0000000..829e25c
--- /dev/null
@@ -0,0 +1,3 @@
+Dieser Text steht im Template
+<STRONG>doubler_footer.tpl</STRONG>
+!
diff --git a/0.2.1/templates/de/html/doubler/doubler_header.tpl b/0.2.1/templates/de/html/doubler/doubler_header.tpl
new file mode 100644 (file)
index 0000000..58c0e94
--- /dev/null
@@ -0,0 +1,3 @@
+Dieser Text steht im Template
+<STRONG>doubler_header.tpl</STRONG>
+!
diff --git a/0.2.1/templates/de/html/doubler/doubler_index.tpl b/0.2.1/templates/de/html/doubler/doubler_index.tpl
new file mode 100644 (file)
index 0000000..0ccc866
--- /dev/null
@@ -0,0 +1,95 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" class="doubler_table"
+       width="100%">
+       <TR>
+               <TD height="80" align="center">{--__DOUBLER_HEADER--}</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="doubler_main">
+               <H3 class="huge">{!POINTS!}-{--DOUBLER_TITLE--} - {!MAIN_TITLE!}</H3>
+               <BR>
+               {--DOUBLER_ENTER_LOGIN_DATA--}<BR>
+               {--DOUBLER_NOTE_FOR_PASSWORD--}<BR>
+               <BR>
+               <FORM action="{!URL!}/doubler.php?refid={!__REFID!}" method="POST"
+                       style="margin-bottom: 0px">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="guest_table dashed" width="520">
+                       <TR>
+                               <TD colspan="2" class="guest_title2 bottom2" height="30"><STRONG>{!POINTS!}-{--DOUBLER_TITLE--}</STRONG><BR>
+                               <FONT class="doubler_error">{--__ERROR_MSG--}</FONT></TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" class="seperator" height="5">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD width="260" align="right" height="25">
+                               {--DOUBLER_ENTER_LOGIN--}:&nbsp;</TD>
+                               <TD width="260"><INPUT type="text" name="userid"
+                                       class="guest_normal" size="10" maxlength="255"></TD>
+                       </TR>
+                       <TR>
+                               <TD width="260" align="right" height="25">
+                               {--GUEST_ENTER_PASSWORD--}:&nbsp;</TD>
+                               <TD width="260"><INPUT type="password" name="pass"
+                                       class="guest_normal" size="10" maxlength="255"></TD>
+                       </TR>
+                       <TR>
+                               <TD width="260" align="right" height="25">
+                               {--DOUBLER_ENTER_POINTS--}:&nbsp;</TD>
+                               <TD width="260"><INPUT type="text" name="points"
+                                       class="guest_normal" size="10" maxlength="20"></TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" class="seperator bottom2" height="5">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" align="center" class="guest_footer" height="30">
+                               <INPUT type="reset" class="guest_reset" value="{--CLEAR_FORM--}">&nbsp;*
+                               <INPUT type="submit" class="guest_submit" name="ok"
+                                       value="{--DOUBLER_NOW--}"></TD>
+                       </TR>
+               </TABLE>
+               </FORM>
+               <BR>
+               {--DOUBLER_ALREADY_PAYED_1--} <STRONG>{!__TOTAL_VALUE!}
+               {!POINTS!}</STRONG> {--DOUBLER_ALREADY_PAYED_2--}<BR>
+               {--DOUBLER_POINTS_LEFT_1--} <STRONG>{!__LEFT_VALUE!}
+               {!POINTS!}</STRONG> {--DOUBLER_POINTS_LEFT_2--}<BR>
+               {--DOUBLER_USAGE_COUNTER_1--} <STRONG>{!__DOUBLER_COUNTER!}</STRONG>
+               {--DOUBLER_USAGE_COUNTER_2--}<BR>
+               <BR>
+               {--DOUBLER_MINIMUM_IS--} <STRONG>{!__MIN_VALUE!} {!POINTS!}</STRONG>
+               {--DOUBLER_MAXIMUM_IS--} <STRONG>{!__MAX_VALUE!} {!POINTS!}</STRONG><BR>
+               {--DOUBLER_HAVE_FUN--}<BR>
+               <BR>
+               {!DOUBLER_PAYOUT_TIME!}<BR>
+               <BR>
+               {--DOUBLER_POINTS_1--} <STRONG>{!__CHARGE_VALUE!}%</STRONG>
+               {--DOUBLER_POINTS_2--}<BR>
+               <BR>
+               {--DOUBLER_EXAMPLE_1--} <STRONG>500 {!POINTS!}</STRONG> --&gt;
+               {--DOUBLER_EXAMPLE_2--} <STRONG>1000 {!POINTS!}</STRONG>{--DOUBLER_EXAMPLE_3--}<BR>
+               <BR>
+               <STRONG class="big">{--DOUBLER_FULL_PAYOUT--}</STRONG><BR>
+               <BR>
+               {--DOUBLER_REFERRAL_1--} <STRONG>{!__REF_VALUE!}%</STRONG>
+               {--DOUBLER_REFERRAL_2--} {--DOUBLER_REFERRAL_3--}
+               {--DOUBLER_REFERRAL_4--} {--DOUBLER_REFERRAL_5--} <STRONG>100
+               {!POINTS!}</STRONG> {--DOUBLER_REFERRAL_6--} <STRONG>100 {!POINTS!}</STRONG>
+               {--DOUBLER_REFERRAL_8--} <STRONG>300 {!POINTS!}</STRONG>
+               {--DOUBLER_REFERRAL_8--} {--DOUBLER_REFERRAL_LINK--}<BR>
+               {--__DOUBLER_MSG--} <BR>
+               {--DOUBLER_NOT_YET_REGISTERED--} <A
+                       href="{!URL!}/ref.php?refid={!__REFID!}">{--DOUBLER_REGISTER_NOW--}</A><BR>
+               <BR>
+               {--DOUBLER_YOUR_ADVERTISING_HERE--} <A
+                       href="{!URL!}/modules.php?module=index&amp;what=impressum&amp;refid={!__REFID!}">{--DOUBLER_CONTACT_US--}</A><BR>
+               <BR>
+               {--__DOUBLER_BANNER--}<BR>
+               <BR>
+               {!__DOUBLER_PAYOUT_HISTORY!}</TD>
+       </TR>
+       <TR>
+               <TD height="80" align="center">{--__DOUBLER_FOOTER--}</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/doubler/doubler_reflink.tpl b/0.2.1/templates/de/html/doubler/doubler_reflink.tpl
new file mode 100644 (file)
index 0000000..49a0b4a
--- /dev/null
@@ -0,0 +1,3 @@
+{--DOUBLER_MEMBER_YOUR_REFLINK--}:
+<A href="{!URL!}/doubler.php?refid=$content">{!URL!}/doubler.php?refid=$content</A>
+<BR>
diff --git a/0.2.1/templates/de/html/ext/.htaccess b/0.2.1/templates/de/html/ext/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/ext/ext_active.tpl b/0.2.1/templates/de/html/ext/ext_active.tpl
new file mode 100644 (file)
index 0000000..39248db
--- /dev/null
@@ -0,0 +1,5 @@
+Diese Erweiterung erzeugt unter &quot;Jetzt Online&quot; einen Link
+<I>Heute Online</I>
+, unter dem Sie die Mitglieder finden, die am aktuellen Tag wann als
+letztes Online waren. Zudem wird der aktuelle {!POINTS!}-Verdienst
+angezeigt.
diff --git a/0.2.1/templates/de/html/ext/ext_admins.tpl b/0.2.1/templates/de/html/ext/ext_admins.tpl
new file mode 100644 (file)
index 0000000..fbab82f
--- /dev/null
@@ -0,0 +1,2 @@
+Mit dieser Erweiterung ist es m&ouml;glich im Admin-Bereich weitere
+Admin-Accounts anzulegen, bestehende zu editieren und zu l&ouml;schen.
diff --git a/0.2.1/templates/de/html/ext/ext_admintheme1.tpl b/0.2.1/templates/de/html/ext/ext_admintheme1.tpl
new file mode 100644 (file)
index 0000000..5608526
--- /dev/null
@@ -0,0 +1,4 @@
+Diese Erweiterungen ver&auml;ndern das Admin-Men&uuml; mit nur wenigen
+Klicks um. Danach l&ouml;schen die Erweiterungen sich selber wieder aus
+Ihrem System. Also bitte nicht wundern, wieso diese nicht vorhanden
+sind. :-)
diff --git a/0.2.1/templates/de/html/ext/ext_admintheme_default.tpl b/0.2.1/templates/de/html/ext/ext_admintheme_default.tpl
new file mode 100644 (file)
index 0000000..5608526
--- /dev/null
@@ -0,0 +1,4 @@
+Diese Erweiterungen ver&auml;ndern das Admin-Men&uuml; mit nur wenigen
+Klicks um. Danach l&ouml;schen die Erweiterungen sich selber wieder aus
+Ihrem System. Also bitte nicht wundern, wieso diese nicht vorhanden
+sind. :-)
diff --git a/0.2.1/templates/de/html/ext/ext_autopurge.tpl b/0.2.1/templates/de/html/ext/ext_autopurge.tpl
new file mode 100644 (file)
index 0000000..7347af7
--- /dev/null
@@ -0,0 +1,7 @@
+Mit dieser Erweiterung ist es m&ouml;glich, inaktive Mitglieder
+ausfindig zu machen und diese dann nach Verwarnung automatisch zu
+l&ouml;schen. Zudem werden nicht best&auml;tigte Anmeldungen ebenfalls
+nach einer einstellbaren Zeit gel&ouml;scht und diese Erweiterung
+l&ouml;scht diese Erweiterung alle als zum L&ouml;schen markierte
+Aufgaben, Mails von bereits gel&ouml;schten Mitgliedern (mit Timeout!)
+und noch vieles mehr (alles per Admin-Bereich einstellbar!)
diff --git a/0.2.1/templates/de/html/ext/ext_bank.tpl b/0.2.1/templates/de/html/ext/ext_bank.tpl
new file mode 100644 (file)
index 0000000..971a72c
--- /dev/null
@@ -0,0 +1,4 @@
+Geben Sie Ihren Mitgliedern die M&ouml;glichkeit, ein Bankkonto f&uuml;r
+ihre {!POINTS!} anzulegen! Mit TAN-Liste, PINs f&uuml;r jedes einzelne
+Account, Paketangeboten, Kontoausz&uuml;gen per EMail oder im Account
+(auch deaktivierbar!) und vieles mehr!
diff --git a/0.2.1/templates/de/html/ext/ext_beg.tpl b/0.2.1/templates/de/html/ext/ext_beg.tpl
new file mode 100644 (file)
index 0000000..cb949bb
--- /dev/null
@@ -0,0 +1,15 @@
+Lassen Sie Ihre Mitglieder {!POINTS!} betteln gehen! Inklusive globaler
+und UserID-bezogene Reloadsperre.
+<br />
+<br />
+<strong>v0.1.2:</strong>
+<br />
+&nbsp;Es ist nun auch eine Bettel-Rallye m&ouml;glich!
+<br />
+<br />
+<strong>v0.1.8:</strong>
+<br />
+&nbsp;Automatisch versendet nun das System Benachrichtigungen an Ihre
+Mitglieder aus, wenn die Bettel-Rallye gestartet wurde oder beendet
+wurde. Zudem ist eine Sperre eingebaut. Diese verhindert, dass
+eingeloggte Mitglieder {!POINTS!} gutgeschrieben bekommen.
diff --git a/0.2.1/templates/de/html/ext/ext_birthday.tpl b/0.2.1/templates/de/html/ext/ext_birthday.tpl
new file mode 100644 (file)
index 0000000..2318ca2
--- /dev/null
@@ -0,0 +1,5 @@
+Diese Erweiterung sendet automatisch Geburtstagsgr&uuml;sse an Ihre
+Mitglieder aus. Sie k&ouml;nnen nun einstellen, wie viele {!POINTS!} die
+Mitglieder bei Klick auf einem Best&auml;tigungslink erhalten sollen.
+Stellen Sie 0 {!POINTS!} ein, und die Mitglieder erhalten zum Geburtstag
+Mails ohne Best&auml;tigungslinks.
diff --git a/0.2.1/templates/de/html/ext/ext_bonus.tpl b/0.2.1/templates/de/html/ext/ext_bonus.tpl
new file mode 100644 (file)
index 0000000..7ef80a7
--- /dev/null
@@ -0,0 +1,7 @@
+Diese Erweiterung bietet Ihnen derzeit die M&ouml;glichkeit an,
+Bonus-Mails an Ihre Mitglieder zu senden und eine sehr detailiert
+einstellbare Aktiv-Rallye zu starten. Wenn Sie dereits
+Bonus-Men&uuml;punkte in Ihrem {!MT_WORD!} haben, l&ouml;schen Sie diese
+bitte, da sie sonst doppelt vorhanden sind. Sie k&ouml;nnen nun auch
+HTML-Mails versenden! Laden Sie sich dazu unsere html_mail-Erweiterung
+neuster Version herunter.
diff --git a/0.2.1/templates/de/html/ext/ext_cache.tpl b/0.2.1/templates/de/html/ext/ext_cache.tpl
new file mode 100644 (file)
index 0000000..3e48a4f
--- /dev/null
@@ -0,0 +1,16 @@
+Diese Erweiterung lagert oft aus der Datenbank geladenen Daten in
+externe Dateien aus. Damit konnte ich bei mir im Intranet die Anfragen
+um
+<strong>50 bis 66%</strong>
+reduzieren, was f&uuml;r Ihren Server bedeutet, dass er weniger belastet
+wird.
+<br />
+<br />
+<strong>Bitte l&ouml;schen Sie immer die Cache-Dateien aus dem
+Verzeichnis <U>/inc/cache/</U> vor Update/Neuinstallation der
+Erweiterung----!</strong>
+<br />
+<br />
+Bitte lesen Sie sich vor der Installation unbedingt die Anleitung
+<strong>DOCS/de/cache/README.txt</strong>
+durch----!
diff --git a/0.2.1/templates/de/html/ext/ext_country.tpl b/0.2.1/templates/de/html/ext/ext_country.tpl
new file mode 100644 (file)
index 0000000..b953407
--- /dev/null
@@ -0,0 +1,6 @@
+F&uuml;gen Sie weitere L&auml;ndercodes hinzu, um auch internationale
+Mitglieder in Ihren {!MT_WORD!} aufnehmen zu k&ouml;nnen. Das Eingeben
+des zweistelligen L&auml;ndercodes durch Ihre Mitglieder ist dann nicht
+mehr n&ouml;tig. Und generieren Sie mit dieser Erweiterung eine
+&uuml;bersichtliche L&auml;nderstatistik (Aufteilung Ihrer Mitglieder
+nach L&auml;nder und Postleitzahl) im Gastbereich!
diff --git a/0.2.1/templates/de/html/ext/ext_demo.tpl b/0.2.1/templates/de/html/ext/ext_demo.tpl
new file mode 100644 (file)
index 0000000..7676832
--- /dev/null
@@ -0,0 +1,11 @@
+Diese Erweiterung bietet Ihnen in Verbindung mit einem weiterem
+Admin-Account (dieses muss
+<strong>demo</strong>
+heissen und sollte vorher angelegt sein!) die M&ouml;glichkeit an, dass
+Ihre G&auml;ste sich Ihren Admin-Bereich ansehen k&ouml;nnen. Geben Sie
+Vollzugriff und sperren Sie dann wichtige Men&uuml;punkte, oder jeder
+kann Ihren {!MT_WORD!} (fast) komplett bedienen!
+<br />
+<br />
+<strong>SIE HANDELN DABEI AUF EIGENE GEFAHR HIN! VORSICHT
+ALPHA!</strong>
diff --git a/0.2.1/templates/de/html/ext/ext_doubler.tpl b/0.2.1/templates/de/html/ext/ext_doubler.tpl
new file mode 100644 (file)
index 0000000..a9525a8
--- /dev/null
@@ -0,0 +1,7 @@
+Lassen Sie Ihre Mitglieder ihre {!POINTS!} einfach immer und immer
+wieder verdoppeln! Und: Sie selber verdienen wegen der einstellbaren
+prozentuallen Geb&uuml;hr auch noch dran! Zudem k&ouml;nnen Ihre
+Mitglieder einen Verdoppler-Link benutzen, der mehr Referrals
+(Referral-Link ist mit eingebunden!) bringt. Spielen Refs mit dem
+Verdoppler, so bekommen die Werber ebenfalls einstellbare Prozente (eine
+Ebene) mit ab!
diff --git a/0.2.1/templates/de/html/ext/ext_holiday.tpl b/0.2.1/templates/de/html/ext/ext_holiday.tpl
new file mode 100644 (file)
index 0000000..cb456c4
--- /dev/null
@@ -0,0 +1,5 @@
+Diese Erweiterung bietet Ihren Mitgliedern die M&oumlg;lichkeit an, eine
+Urlaubsschaltung zu aktivieren. Dabei wird das betreffende Account
+gesperrt und Sie und das Mitglied erhalten dann eine Mail. Sobald der
+Urlaub vorbei ist, wird das Account automatisch wieder freigegeben. Sie
+k&ouml;nnen aber auch vorher das Urlaubsende aufheben.
diff --git a/0.2.1/templates/de/html/ext/ext_html_mail.tpl b/0.2.1/templates/de/html/ext/ext_html_mail.tpl
new file mode 100644 (file)
index 0000000..4a1e30b
--- /dev/null
@@ -0,0 +1,3 @@
+Mit dieser Erweiterung k&ouml;nnen Ihre Mitglieder HTML-Mails versenden.
+Dabei sind nat&uuml;rlich nicht alle HTML-Tags erlaubt! Diese werden in
+einem Datenfeld in der Erweiterungsdatei festgelegt.
diff --git a/0.2.1/templates/de/html/ext/ext_mailid.tpl b/0.2.1/templates/de/html/ext/ext_mailid.tpl
new file mode 100644 (file)
index 0000000..862ef36
--- /dev/null
@@ -0,0 +1,2 @@
+Platzhalter f&uuml;r sp&auml;tere Updates. Vorsicht! Sichern Sie zuerst
+Ihre ge&auml;nderten Templates ab!
diff --git a/0.2.1/templates/de/html/ext/ext_maintenance.tpl b/0.2.1/templates/de/html/ext/ext_maintenance.tpl
new file mode 100644 (file)
index 0000000..22e15a6
--- /dev/null
@@ -0,0 +1 @@
+Platzhalter f&uuml;r sp&auml;tere Updates.
diff --git a/0.2.1/templates/de/html/ext/ext_mediadata.tpl b/0.2.1/templates/de/html/ext/ext_mediadata.tpl
new file mode 100644 (file)
index 0000000..9237597
--- /dev/null
@@ -0,0 +1,2 @@
+Dies ist eine Erweiterung aus dem Basispaket und bietet Ihren
+G&auml;sten ausf&uuml;hrliche Mediendaten an.
diff --git a/0.2.1/templates/de/html/ext/ext_mods.tpl b/0.2.1/templates/de/html/ext/ext_mods.tpl
new file mode 100644 (file)
index 0000000..5535fdd
--- /dev/null
@@ -0,0 +1,2 @@
+Verwalten Sie hiermit alle Module (module=???): Der Titel ist hiermit
+auch &auml;nderbar, inklusive Statistik.
diff --git a/0.2.1/templates/de/html/ext/ext_mydata.tpl b/0.2.1/templates/de/html/ext/ext_mydata.tpl
new file mode 100644 (file)
index 0000000..955e791
--- /dev/null
@@ -0,0 +1,2 @@
+Ausgelagerter Link &quot;Profildaten &auml;ndern&quot; aus dem
+Mitgliedsbereich. Dient als Platzhalter f&uuml;r sp&auml;tere Versionen!
diff --git a/0.2.1/templates/de/html/ext/ext_newsletter.tpl b/0.2.1/templates/de/html/ext/ext_newsletter.tpl
new file mode 100644 (file)
index 0000000..5249113
--- /dev/null
@@ -0,0 +1,4 @@
+Diese Erweiterung ist fester Bestandteil des Grundscriptes und bietet
+Ihnen die M&ouml;glicheit, einen Newsletter an alle Ihre Mitglieder im
+{!MT_WORD!} zu versenden. Ihre Mitglieder k&ouml;nnen - gegen eine von
+Ihnen einstellbare Geb&uuml;hr - auch den Newsletter-Empfang abschalten.
diff --git a/0.2.1/templates/de/html/ext/ext_nickname.tpl b/0.2.1/templates/de/html/ext/ext_nickname.tpl
new file mode 100644 (file)
index 0000000..4202d1d
--- /dev/null
@@ -0,0 +1,4 @@
+Immer mit einer Zahl einloggen ist f&uuml;r Ihre Mitglieder auf Dauer
+gewiss langweilig! Wieso bieten Sie nicht Ihren Mitgliedern an, sich per
+selbst eingegebenem Nicknamen einzuloggen? Oben drauf erhalten Ihre
+Mitglieder dann noch einen Nickname-Reflink.
diff --git a/0.2.1/templates/de/html/ext/ext_online.tpl b/0.2.1/templates/de/html/ext/ext_online.tpl
new file mode 100644 (file)
index 0000000..dcdf1ad
--- /dev/null
@@ -0,0 +1,5 @@
+Diese Erweiterung bietet Ihnen die M&ouml;glichkeit an, weitere
+Datenbankanfragen einzusparen, indem sie die Online-Statistik
+deakiviert. Allerdings wird dann die Liste nicht mehr aktualisiert, in
+der aufgezeichnet wird, wer sich innerhalb eines bestimmten Timeouts wo
+befindet.
diff --git a/0.2.1/templates/de/html/ext/ext_optimize.tpl b/0.2.1/templates/de/html/ext/ext_optimize.tpl
new file mode 100644 (file)
index 0000000..9f21c86
--- /dev/null
@@ -0,0 +1,5 @@
+Die Datenbankdateien werden nach vielen L&ouml;sch- (DELETE) und
+Aktualisierungsvorg&auml;ngen (UPDATE) gr&ouml;szlig;er. Der Server muss
+also sich durch &uuml;bersch&uuml;ssige Datenmengen hindurcharbeiten.
+Optimieren Sie ab und also mal die Datenbank mit dieser Erweiterung, und
+Sie werden feststellen, dass teilweise sehr viel Platz gespart wird.
diff --git a/0.2.1/templates/de/html/ext/ext_order.tpl b/0.2.1/templates/de/html/ext/ext_order.tpl
new file mode 100644 (file)
index 0000000..da23b97
--- /dev/null
@@ -0,0 +1,3 @@
+Es kann nun eingestellt werden, wie viele Mailbuchungen erlaubt sind:
+Maximum bis alle Mitglieder nicht mehr empfangsbereits sind oder wie
+viel das Mitglied auf Empfang eingestellt hat.
diff --git a/0.2.1/templates/de/html/ext/ext_other.tpl b/0.2.1/templates/de/html/ext/ext_other.tpl
new file mode 100644 (file)
index 0000000..e6f90d3
--- /dev/null
@@ -0,0 +1,2 @@
+Andere Administrative Funktionen. Diese Erweiterung dient derzeit als
+Platzhalter, um das sp&auml;tere Patchen der Datenbank zu erleichtern.
diff --git a/0.2.1/templates/de/html/ext/ext_payout.tpl b/0.2.1/templates/de/html/ext/ext_payout.tpl
new file mode 100644 (file)
index 0000000..2e9506e
--- /dev/null
@@ -0,0 +1,3 @@
+Mit dieser Erweiterung k&ouml;nnen Sie Ihren Mitgliedern eine Auszahlung
+ihrer {!POINTS!} in jede beliebige W&auml;hrung (Tipp: Nicht direkte
+&euro;!) oder auch Bannerviews/-klicks an.
diff --git a/0.2.1/templates/de/html/ext/ext_profile.tpl b/0.2.1/templates/de/html/ext/ext_profile.tpl
new file mode 100644 (file)
index 0000000..15e78f0
--- /dev/null
@@ -0,0 +1,3 @@
+Ihre Mitglieder erhalten nach einem einstellbaren Zeitinterval
+Erinnerungsmails, ihre Profildaten aktuell zu halten (vielleicht ist ein
+Mitglied umgezogen und hat vergessen, seine Daten zu &auml;ndern?)
diff --git a/0.2.1/templates/de/html/ext/ext_rallye.tpl b/0.2.1/templates/de/html/ext/ext_rallye.tpl
new file mode 100644 (file)
index 0000000..dc11b03
--- /dev/null
@@ -0,0 +1,7 @@
+Starten Sie mit dieser Erweiterung vollautomatisierte Rallyes! Nun
+k&ouml;nnen Sie auch eine mindestens zu erreichende Mitgliederanzahl und
+Minimum zu belegender Pl&auml;ze angeben. Nur noch Einrichten und
+Freigeben m&uuml;ssen Sie die Rallye. Den Rest erledigt das Script
+f&uuml;r Sie.
+<strong>Vorsicht!</strong>
+Diese Erweiterung ist noch sehr instabil!
diff --git a/0.2.1/templates/de/html/ext/ext_register.tpl b/0.2.1/templates/de/html/ext/ext_register.tpl
new file mode 100644 (file)
index 0000000..e4a3689
--- /dev/null
@@ -0,0 +1,4 @@
+Platzhalter f&uuml;r sp&auml;tere Updates. Derzeit k&ouml;nnen Sie
+Pflichtfelder im Anmeldeformular (noch nicht im Mitgliedsbereich unter
+Profildaten &auml;ndern) vorgeben. Diese m&uuml;sen dann bei der
+Anmeldung eingegeben werden.
diff --git a/0.2.1/templates/de/html/ext/ext_repair.tpl b/0.2.1/templates/de/html/ext/ext_repair.tpl
new file mode 100644 (file)
index 0000000..b401916
--- /dev/null
@@ -0,0 +1,6 @@
+Mit dieser Erweiterung k&ouml;nnen Sie Ihre Datenbank reparieren lassen.
+Haben Sie beispielsweise gesehen, dass in einigen Kategorien mehr
+Mitglieder vorhanden sind, als dass Sie haben? Diese Erweiterung erzeugt
+Admin-Men&uuml;s, &uuml;ber die Sie dies beheben k&ouml;nnen. Mit dieser
+neuen Version k&ouml;nnen Sie auch die Gewichtung der drei
+Men&uuml;systeme reparieren.
diff --git a/0.2.1/templates/de/html/ext/ext_rewrite.tpl b/0.2.1/templates/de/html/ext/ext_rewrite.tpl
new file mode 100644 (file)
index 0000000..32bc8e8
--- /dev/null
@@ -0,0 +1,17 @@
+Mit dieser Erweiterung werden alle Links, die Ihrem {!MT_WORD!}
+angeh&ouml;hren, so umgeschrieben, dass diese von Suchmaschinen besser
+aufgerufen werden k&ouml;nnen. Wundern Sie sich also bitte nicht, wenn
+die Links etwas anders aussehen, als dass Sie es gew&ouml;hnt sind. :-)
+<br />
+<br />
+<strong>Vorsicht!</strong>
+Diese Erweiterung ist noch Alpha! Wenn Sie nicht funktionierende Links
+finden, melden Sie sich bitte
+<A href="http://www.mxchange.org/cms/index/wht/impressum"
+       target="_blank">bei mir direkt</A>
+(Mail bevorzugt, wegen besserer &Uuml;bertragung der fehlerhaften
+Links). Danke f&uuml;r Ihre Mithilfe! :-)
+<br />
+<br />
+Damit die Erweiterung auch (hoffentlich) funktioniert, m&uuml;ssen Sie
+sich die neusten Patches herunterladen!
diff --git a/0.2.1/templates/de/html/ext/ext_sql_patches.tpl b/0.2.1/templates/de/html/ext/ext_sql_patches.tpl
new file mode 100644 (file)
index 0000000..4b539e8
--- /dev/null
@@ -0,0 +1,3 @@
+Diese Erweiterung ist das, was ihr Name sagt: Datenbank-Updates (daher
+SQL_Upgrades) noch einfacher als mit dem upgrade.php Script einspielen!
+Somit wird auch dies zum Kinderspiel.
diff --git a/0.2.1/templates/de/html/ext/ext_support.tpl b/0.2.1/templates/de/html/ext/ext_support.tpl
new file mode 100644 (file)
index 0000000..995eff7
--- /dev/null
@@ -0,0 +1 @@
+Supportformular f&uuml;r Ihre Mitglieder.
diff --git a/0.2.1/templates/de/html/ext/ext_task.tpl b/0.2.1/templates/de/html/ext/ext_task.tpl
new file mode 100644 (file)
index 0000000..2942de3
--- /dev/null
@@ -0,0 +1,9 @@
+Stark verbessertes Task-Management und &uuml;bersichtlichere
+Willkommensseite im Admin-Bereich. Sie m&ouml;chten es sich ansehen?
+<br />
+<br />
+Loggen Sie sich hier ein:
+<A href="http://www.mxchange-demo.de/admin.php" target="_blank">http://www.mxchange-demo.de/admin.php</A>
+(Login und Password:
+<strong>demo</strong>
+)
diff --git a/0.2.1/templates/de/html/ext/ext_theme.tpl b/0.2.1/templates/de/html/ext/ext_theme.tpl
new file mode 100644 (file)
index 0000000..991dd56
--- /dev/null
@@ -0,0 +1,2 @@
+Theme-Support: Neue Themes auf MXChange.org suchen und bzw. Updates zu
+den Themes suchen.
diff --git a/0.2.1/templates/de/html/ext/ext_top10.tpl b/0.2.1/templates/de/html/ext/ext_top10.tpl
new file mode 100644 (file)
index 0000000..af3c866
--- /dev/null
@@ -0,0 +1,2 @@
+Diese Erweiterung stellt in Ihrem Besucher-Bereich drei TOP10-Listen zur
+Verf&uuml;gung: H&auml;ufigsten Einlogger, TOP-Verdiener und TOP-Werber.
diff --git a/0.2.1/templates/de/html/ext/ext_transfer.tpl b/0.2.1/templates/de/html/ext/ext_transfer.tpl
new file mode 100644 (file)
index 0000000..fbb41a6
--- /dev/null
@@ -0,0 +1,10 @@
+Mit dieser Erweiterung ist es m&ouml;glich, dass Ihre Mitglieder
+untereinander {!POINTS!} &uuml;berweisen k&ouml;nnen. Im
+Mitgliedsbereich erhalten sie eine &Uuml;bersicht aller ein- und
+ausgehenden &Uuml;berweisungen. als Admin haben Sie ebenfalls eine
+Gesamt&uuml;bersicht und k&ouml;nnen Eintr&auml;ge auch manuell
+l&ouml;schen. Zudem k&ouml;nnen Sie bestimmen, wie lang der Touring-Code
+(auch abschaltbar!) sein soll, wie viele Eintr&auml;ge maximal angezeigt
+werden soll und wie lange die Eintr&auml;ge g&uuml;ltig sind. Ist die
+<A href="{!URL!}/extensions/ext-autopurge.zip">AutoPurge-Erweiterung</A>
+installiert, werden um 00:00 Uhr veraltete Eintr&auml;ge entfernt.
diff --git a/0.2.1/templates/de/html/ext/ext_user.tpl b/0.2.1/templates/de/html/ext/ext_user.tpl
new file mode 100644 (file)
index 0000000..bf7eab7
--- /dev/null
@@ -0,0 +1,2 @@
+Erweiterte Mitglieder-Management: User werden seitenweise und pro
+Eintrag mit je 2 Zeilen angezeigt uvwm.
diff --git a/0.2.1/templates/de/html/ext/ext_wernis.tpl b/0.2.1/templates/de/html/ext/ext_wernis.tpl
new file mode 100644 (file)
index 0000000..e06711f
--- /dev/null
@@ -0,0 +1,11 @@
+Mit dieser Erweiterung k&ouml;nnen Sie Ihren Mitgliedern eine Auszahlung
+ihrer Internet-W&auml;hrung
+<A href="http://www.wds66.com/ref.php?refid=10438" target="_blank">Wernis</A>
+auf ihr WDS66-Hauptaccount &uuml;berweisen lassen. Sie als
+Wernis-Anbieter brauchen dazu selbstverst&auml;ndlich ein Wernis-Account
+mit einem API-Account. Mehr dazu auf
+<A href="http://www.wds66.com/ref.php?refid=10438" target="_blank">www.wds66.com</A>
+. Damit Ihr System einheitlicher ist, sollten Sie unter
+<A href="{!URL!}/modules.php?module=admin&amp;what=config_other"
+       target="_blank">Sonstige Einstellungen</A>
+die W&auml;hrung Ihres {!MT_WORD2!} auf Wernis umstellen.
diff --git a/0.2.1/templates/de/html/fatal_footer.tpl b/0.2.1/templates/de/html/fatal_footer.tpl
new file mode 100644 (file)
index 0000000..12ce70c
--- /dev/null
@@ -0,0 +1,4 @@
+
+<BR>
+<DIV class="fatal_footer">$content</DIV>
+</DIV>
diff --git a/0.2.1/templates/de/html/fatal_header.tpl b/0.2.1/templates/de/html/fatal_header.tpl
new file mode 100644 (file)
index 0000000..de3316e
--- /dev/null
@@ -0,0 +1 @@
+<DIV class="fatal_box">
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/.htaccess b/0.2.1/templates/de/html/guest/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/guest/guest_active_none_row.tpl b/0.2.1/templates/de/html/guest/guest_active_none_row.tpl
new file mode 100644 (file)
index 0000000..28ece55
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD colspan="3" align="center" class="bottom2">
+       <TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+               width="400" class="admin_done dashed">
+               <TR>
+                       <TD align="center" height="40"><STRONG>{--GUEST_ACTIVE_NO_MEMER_ONLINE_TODAY--}</STRONG>
+                       </TD>
+               </TR>
+       </TABLE>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_active_row.tpl b/0.2.1/templates/de/html/guest/guest_active_row.tpl
new file mode 100644 (file)
index 0000000..2169eb4
--- /dev/null
@@ -0,0 +1,5 @@
+<TR>
+       <TD class="active_row1 switch_sw$content[sw] bottom2 right2">&nbsp;$content[uid]&nbsp;($content[nick])</TD>
+       <TD class="active_row2 switch_sw$content[sw] bottom2 right2">&nbsp;$content[points]</TD>
+       <TD class="active_row3 switch_sw$content[sw] bottom2">&nbsp;$content[last]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_active_table.tpl b/0.2.1/templates/de/html/guest/guest_active_table.tpl
new file mode 100644 (file)
index 0000000..7c1c8e1
--- /dev/null
@@ -0,0 +1,22 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="guest_table dashed">
+       <TR>
+               <TD colspan="3" class="guest_title2 bottom2" height="30"><STRONG>{--GUEST_ACTIVE_HEADER--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--_UID--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOTAL_POINTS--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG>
+               </TD>
+       </TR>
+       {!__ACTIVE_ROWS!}
+       <TR>
+               <TD colspan="3" align="center" class="guest_footer" height="30">
+               <FONT class="member_note tiny">{--GUEST_ACTIVE_FOOTER--}</FONT></TD>
+       </TR>
+</TABLE>
+</DIV>
diff --git a/0.2.1/templates/de/html/guest/guest_advert.tpl b/0.2.1/templates/de/html/guest/guest_advert.tpl
new file mode 100644 (file)
index 0000000..a963c56
--- /dev/null
@@ -0,0 +1 @@
+<!-- Kleiner 88x31 Banner ... -->
diff --git a/0.2.1/templates/de/html/guest/guest_advert2.tpl b/0.2.1/templates/de/html/guest/guest_advert2.tpl
new file mode 100644 (file)
index 0000000..a963c56
--- /dev/null
@@ -0,0 +1 @@
+<!-- Kleiner 88x31 Banner ... -->
diff --git a/0.2.1/templates/de/html/guest/guest_beg.tpl b/0.2.1/templates/de/html/guest/guest_beg.tpl
new file mode 100644 (file)
index 0000000..e5fa5ad
--- /dev/null
@@ -0,0 +1,50 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="beg_table dashed" width="500">
+       <TR>
+               <TD width="10" rowspan="10" class="seperator">&nbsp;</TD>
+               <TD height="5" class="seperator">&nbsp;</TD>
+               <TD width="10" rowspan="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="beg_msg" height="60"><FONT class="big">{--BEG_GUEST_TRAILER--}</FONT><BR>
+               {!MAIN_TITLE!}</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="beg_msg seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="left" class="beg_msg">
+               <P>{--BEG_GUEST_EARN_1--} <STRONG>{!__BEG_POINTS!}
+               {!POINTS!}</STRONG> {--BEG_GUEST_EARN_2--} <STRONG>{!__BEG_POINTS_MAX!}
+               {!POINTS!}</STRONG> {--BEG_GUEST_EARN_3--}</P>
+               <P>{--BEG_GUEST_TIMEOUT_1--} <STRONG>{!__BEG_TIMEOUT!}</STRONG>
+               {--BEG_GUEST_TIMEOUT_2--}</P>
+               <P align="right">{--BEG_GUEST_HAVE_FUN--}</P>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="beg_msg seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="beg_msg seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" height="30" class="beg_msg"><A
+                       href="{!URL!}/ref.php?ref={!__BEG_UID!}">{--BEG_CONTINUE_REGISTER--}</A>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="beg_msg seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</DIV>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_cat_row.tpl b/0.2.1/templates/de/html/guest/guest_cat_row.tpl
new file mode 100644 (file)
index 0000000..75523d6
--- /dev/null
@@ -0,0 +1,14 @@
+<TR>
+       <TD width="10" class="switch_sw$content[sw]">&nbsp;</TD>
+       <TD class="register_right switch_sw$content[sw]">&nbsp;&nbsp;$content[cat]&nbsp;&nbsp;</TD>
+       <TD width="20" class="guest_normal switch_$content[sw]">
+       {--YES--}&nbsp;<INPUT type="radio" class="guest_normal"
+               name="cat[$content[id]]" value="Y"$content[def_y]></TD>
+       <TD width="20" class="guest_normal switch_$content[sw]">
+       {--NO--}&nbsp;<INPUT type="radio" class="guest_normal"
+               name="cat[$content[id]]" value="N"$content[def_n]></TD>
+       <TD width="10" class="switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="5" height="2"></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_cat_table.tpl b/0.2.1/templates/de/html/guest/guest_cat_table.tpl
new file mode 100644 (file)
index 0000000..4dca512
--- /dev/null
@@ -0,0 +1,4 @@
+<TABLE border="0" cellspacing="0" cellpadding="1"
+       class="list_categories">
+       {--__CAT_ROWS--}
+</TABLE>
diff --git a/0.2.1/templates/de/html/guest/guest_confirm_link.tpl b/0.2.1/templates/de/html/guest/guest_confirm_link.tpl
new file mode 100644 (file)
index 0000000..e46ebca
--- /dev/null
@@ -0,0 +1,34 @@
+<FORM action="{!URL!}/modules.php?module=index&amp;what=confirm"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="admin_table dashed">
+       <TR>
+               <TD align="center" colspan="3" class="admin_title bottom2" height="30">
+               <STRONG class="big">{--REQUEST_CONFIRM_LINK_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="6">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="3">{--GUEST_CONFIRM_LINK_NOTE--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="6">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="230">{--GUEST_ENTER_EMAIL--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="240"><INPUT type="text" name="email"
+                       class="guest_normal" size="30" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="6">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="3" class="admin_footer top2"><INPUT
+                       type="reset" class="guest_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="guest_submit"
+                       value="{--REQUEST_CONFIRM_LINK--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_confirm_table.tpl b/0.2.1/templates/de/html/guest/guest_confirm_table.tpl
new file mode 100644 (file)
index 0000000..573f43b
--- /dev/null
@@ -0,0 +1,7 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       width="400" class="guest_table dashed">
+       <TR>
+               <TD align="center" height="40"><STRONG class="guest_done">{--__CONFIRM_MSG--}</STRONG>
+               </TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_content_footer.tpl b/0.2.1/templates/de/html/guest/guest_content_footer.tpl
new file mode 100644 (file)
index 0000000..1ac77c9
--- /dev/null
@@ -0,0 +1,8 @@
+  </TD>
+  <TD valign="top" class="guest_content" width="120">
+       <!-- 120x600 may fit here -->
+  </TD>
+</TR>
+<TR>
+  <TD align="center" valign="top" class="guest_advert">
+<!-- Don't add your code here! -->
diff --git a/0.2.1/templates/de/html/guest/guest_doubler.tpl b/0.2.1/templates/de/html/guest/guest_doubler.tpl
new file mode 100644 (file)
index 0000000..a559300
--- /dev/null
@@ -0,0 +1,67 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="doubler_table dashed" width="520">
+       <TR>
+               <TD align="center" class="doubler_header bottom2"><STRONG
+                       class="big">{--DOUBLER_GENERAL_INFOS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="doubler_main bottom2"
+                       style="padding-left: 0px; padding-right: 10px; padding-top: 10px; padding-bottom: 10px">
+               <UL>
+
+                       <LI>{--DOUBLER_MINIMUM_IS--} <STRONG>{!__MIN_VALUE!}
+                       {!POINTS!}</STRONG> {--DOUBLER_MAXIMUM_IS--} <STRONG>{!__MAX_VALUE!}
+                       {!POINTS!}</STRONG></LI>
+                       <LI>{--DOUBLER_ALREADY_PAYED_1--} <STRONG>{!__TOTAL_VALUE!}
+                       {!POINTS!}</STRONG> {--DOUBLER_ALREADY_PAYED_2--}</LI>
+                       <LI>{--DOUBLER_POINTS_LEFT_1--} <STRONG>{!__LEFT_VALUE!}
+                       {!POINTS!}</STRONG> {--DOUBLER_POINTS_LEFT_2--}</LI>
+                       <LI>{--DOUBLER_USAGE_COUNTER_1--} <STRONG>{!__DOUBLER_COUNTER!}</STRONG>
+                       {--DOUBLER_USAGE_COUNTER_2--}</LI>
+                       <LI>{!DOUBLER_PAYOUT_TIME!}</LI>
+                       <LI><STRONG>{--DOUBLER_FULL_PAYOUT--}</STRONG></LI>
+                       <LI>{--DOUBLER_POINTS_1--} <STRONG>{!__CHARGE_VALUE!}%</STRONG>
+                       {--DOUBLER_POINTS_2--}</LI>
+                       <LI>{--DOUBLER_EXAMPLE_1--} <STRONG>500 {!POINTS!}</STRONG>
+                       --&gt; {--DOUBLER_EXAMPLE_2--} <STRONG>1000 {!POINTS!}</STRONG>{--DOUBLER_EXAMPLE_3--}</LI>
+                       <LI>{--DOUBLER_REFERRAL_1--} <STRONG>{!__REF_VALUE!}%</STRONG>
+                       {--DOUBLER_REFERRAL_2--} {--DOUBLER_REFERRAL_3--}
+                       {--DOUBLER_REFERRAL_4--}
+                       <LI>{--DOUBLER_REFERRAL_5--} <STRONG>100 {!POINTS!}</STRONG>
+                       {--DOUBLER_REFERRAL_6--} <STRONG>100 {!POINTS!}</STRONG>
+                       {--DOUBLER_REFERRAL_8--} <STRONG>300 {!POINTS!}</STRONG>
+                       {--DOUBLER_REFERRAL_8--}</LI>
+                       <LI>{--DOUBLER_REFERRAL_LINK--}</LI>
+                       <LI>{--DOUBLER_TIMEOUT_1--} <STRONG>{!__TIMEOUT_MARK!}</STRONG>
+                       {--DOUBLER_TIMEOUT_2--}</LI>
+                       <LI>{--DOUBLER_HAVE_FUN--}</LI>
+                       <LI><STRONG><A href="{!URL!}/doubler.php">{--DOUBLER_WANNA_TRY--}</A></STRONG></LI>
+                       </OL>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="doubler_header bottom2"><STRONG
+                       class="big">{--DOUBLER_REGISTER_ADVERT--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="doubler_main"
+                       style="padding-left: 0px; padding-right: 10px; padding-top: 10px; padding-bottom: 10px">
+               <UL>
+                       <LI>{--DOUBLER_NOT_YET_REGISTERED--} <A
+                               href="{!URL!}/ref.php?refid={!__REFID!}">{--DOUBLER_REGISTER_NOW--}</A></LI>
+                       <LI>{--DOUBLER_YOUR_ADVERTISING_HERE--} <A
+                               href="{!URL!}/modules.php?module=index&amp;what=impressum&amp;refid={!__REFID!}">{--DOUBLER_CONTACT_US--}</A></LI>
+                       </OL>
+               </TD>
+       </TR>
+</TABLE>
+</DIV>
+
+<P align="center"><STRONG class="big">{--DOUBLER_ALREADY_PAYOUT--}:</STRONG><BR>
+<BR>
+{!__DOUBLER_PAYOUT_HISTORY!}</P>
+
+<P align="center"><STRONG class="big">{--DOUBLER_NEXT_PAYOUT--}:</STRONG><BR>
+<BR>
+{!__DOUBLER_PAYOUT_NEXT!}</P>
diff --git a/0.2.1/templates/de/html/guest/guest_doubler_list.tpl b/0.2.1/templates/de/html/guest/guest_doubler_list.tpl
new file mode 100644 (file)
index 0000000..addb76a
--- /dev/null
@@ -0,0 +1,15 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="doubler_list dashed">
+       <TR>
+               <TD class="doubler_header bottom2 right2" align="center" width="100">
+               <STRONG>{--_UID--}</STRONG></TD>
+               <TD class="doubler_header bottom2 right2" align="center" width="160">
+               <STRONG>{!POINTS!}</STRONG></TD>
+               <TD class="doubler_header bottom2" align="center" width="160"><STRONG>{--DOUBLER_TIMEMARK--}</STRONG>
+               </TD>
+       </TR>
+       $content
+       <TR>
+               <TD colspan="3" align="center" class="doubler_footer">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_doubler_list_rows.tpl b/0.2.1/templates/de/html/guest/guest_doubler_list_rows.tpl
new file mode 100644 (file)
index 0000000..ee16749
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"
+               width="100">$content[uid]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"
+               width="160">$content[points]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center" width="160">
+       $content[stamp]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_footer.tpl b/0.2.1/templates/de/html/guest/guest_footer.tpl
new file mode 100644 (file)
index 0000000..89132e9
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD class="guest_advert" colspan="3" align="center">
+               <!-- Horizontal footer banner -->
+       </TD>
+</TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/guest/guest_frametester.tpl b/0.2.1/templates/de/html/guest/guest_frametester.tpl
new file mode 100644 (file)
index 0000000..bc589f0
--- /dev/null
@@ -0,0 +1,6 @@
+<FRAMESET rows="80,*" frameborder="no" border="0" framespacing="0">
+       <FRAME name="test_top"
+               src="{!URL!}/modules.php?module=frametester&frame=test_top"
+               frameborder="no" scrolling="no" noresize>
+       <FRAME name="url" src="{!__URL_VALUE!}" frameborder="no" noresize>
+</FRAMESET>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_goto_top.tpl b/0.2.1/templates/de/html/guest/guest_goto_top.tpl
new file mode 100644 (file)
index 0000000..6ea6a04
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD height="1%" align="center" class="guest_advert"><SMALL><A
+               href="#TOP">{--TOP--}</A></SMALL></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_header.tpl b/0.2.1/templates/de/html/guest/guest_header.tpl
new file mode 100644 (file)
index 0000000..ade72e0
--- /dev/null
@@ -0,0 +1,19 @@
+<!-- Gast-Tabelle - Anfang -->
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%"
+       class="guest">
+       <TR>
+               <TD colspan="3" align="center" valign="top" class="guest_title"><A
+                       name="TOP"></A> <!-- Ab hier Kopf! --> <STRONG><BIG>-&nbsp;-&nbsp;-
+               <A title="{!MAIN_TITLE!}"
+                       style="cursor: default; background: none; text-decoration: none"
+                       class="guest_header">{!MAIN_TITLE!}</A>&nbsp;-&nbsp;-&nbsp;-</BIG></STRONG><BR>
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="200"><FONT class="guest_header">&nbsp;&nbsp;Hallo
+                               $username!</FONT></TD>
+                               <TD align="center"><FONT class="guest_header">{!SLOGAN!}</FONT></TD>
+                               <TD width="200" align="right"><FONT class="guest_header">$date_time&nbsp;&nbsp;</FONT></TD>
+                       </TR>
+               </TABLE>
+               <!-- Bis hier Kopf! --></TD>
+       </TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_login.tpl b/0.2.1/templates/de/html/guest/guest_login.tpl
new file mode 100644 (file)
index 0000000..ce733ea
--- /dev/null
@@ -0,0 +1,123 @@
+<FORM action="{!URL!}/modules.php?module=index&amp;what=login"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="guest_login dashed" width="480">
+       <TR>
+               <TD colspan="9" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="7" align="center" class="guest_login_header"><STRONG>{--GUEST_WELCOME_MEMBER--}</STRONG>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="9" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="80" align="right">{--GUEST_ENTER_LOGIN--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="id" class="guest_normal" size="4"
+                       maxlength="9"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="80" align="right">{--GUEST_ENTER_PASSWORD--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="password" name="password" class="guest_normal"
+                       size="10" maxlength="255"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       {!LOGIN_FAILURE_MSG!}
+       <TR>
+               <TD colspan="9" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="3" align="right">{--GUEST_SELECT_LIFETIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="3"><SELECT name="lifetime" size="1"
+                       class="guest_select">
+                       <OPTION value="3600">1 {--LIFE_HOURS--}</OPTION>
+                       <OPTION value="7200">2 {--LIFE_HOURS--}</OPTION>
+                       <OPTION value="21600">6 {--LIFE_HOURS--}</OPTION>
+                       <OPTION value="43200">12 {--LIFE_HOURS--}</OPTION>
+                       <OPTION value="86400">1 {--LIFE_DAYS--}</OPTION>
+                       <OPTION value="172800">2 {--LIFE_DAYS--}</OPTION>
+                       <OPTION value="604800">1 {--LIFE_WEEKS--}</OPTION>
+                       <OPTION value="1209600">2 {--LIFE_WEEKS--}</OPTION>
+                       <OPTION value="2592000">1 {--LIFE_MONTHS--}</OPTION>
+                       <OPTION value="5184000">2 {--LIFE_MONTHS--}</OPTION>
+                       <OPTION value="15552000">6 {--LIFE_MONTHS--}</OPTION>
+                       <OPTION value="31536000">1 {--LIFE_YEARS--}</OPTION>
+                       <OPTION value="60">{--LIFE_CLOSE_BROWSER--}</OPTION>
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="9" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="7" align="center"><INPUT type="reset"
+                       class="guest_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="guest_submit"
+                       value="{--LOGIN_SUBMIT--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="9" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
+<BR>
+<FORM action="{!URL!}/modules.php?module=index&amp;what=login"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="guest_login dashed">
+       <TR>
+               <TD colspan="5" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="3" align="center" class="guest_login_header"><STRONG>{--GUEST_GET_NEW_PASS--}</STRONG>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="145" align="right">{--GUEST_ENTER_LOGIN--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="145"><INPUT type="text" name="id" class="guest_normal"
+                       size="4" maxlength="9">&nbsp;&nbsp;<STRONG>{--_OR--}</STRONG></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="145" align="right">{--GUEST_ENTER_EMAIL--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="145"><INPUT type="text" name="email"
+                       class="guest_normal" size="20" maxlength="255"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="9" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="7" align="center"><INPUT type="reset"
+                       class="guest_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="new_pass" class="guest_submit"
+                       value="{--NEW_PASSWD--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_menu_bottom.tpl b/0.2.1/templates/de/html/guest/guest_menu_bottom.tpl
new file mode 100644 (file)
index 0000000..700c71c
--- /dev/null
@@ -0,0 +1,3 @@
+<TR>
+       <TD class="guest_menu_bottom menu_$WHAT">$content</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_menu_content.tpl b/0.2.1/templates/de/html/guest/guest_menu_content.tpl
new file mode 100644 (file)
index 0000000..8da3410
--- /dev/null
@@ -0,0 +1,3 @@
+<!-- This HTML code goes between the left menu and the content on right side -->
+</TD>
+<TD valign="top" rowspan="3" class="guest_content">
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_menu_row.tpl b/0.2.1/templates/de/html/guest/guest_menu_row.tpl
new file mode 100644 (file)
index 0000000..af1c144
--- /dev/null
@@ -0,0 +1,3 @@
+<TR>
+       <TD class="guest_menu_row menu_$WHAT">$content</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_menu_td.tpl b/0.2.1/templates/de/html/guest/guest_menu_td.tpl
new file mode 100644 (file)
index 0000000..d1bcd97
--- /dev/null
@@ -0,0 +1,3 @@
+<!-- This code goes between header and left menu -->
+<TR>
+       <TD class="guest_menu">
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_menu_title.tpl b/0.2.1/templates/de/html/guest/guest_menu_title.tpl
new file mode 100644 (file)
index 0000000..518f4e5
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD align="center" colspan="2" class="guest_menu_title"><STRONG>:::&nbsp;$content&nbsp;:::</STRONG>
+       </TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_menu_whats.tpl b/0.2.1/templates/de/html/guest/guest_menu_whats.tpl
new file mode 100644 (file)
index 0000000..693c056
--- /dev/null
@@ -0,0 +1,3 @@
+<TR>
+       <TD class="guest_menu_whats">&nbsp;<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;&nbsp;$content</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_nickname_login.tpl b/0.2.1/templates/de/html/guest/guest_nickname_login.tpl
new file mode 100644 (file)
index 0000000..56b176f
--- /dev/null
@@ -0,0 +1,113 @@
+<FORM action="{!URL!}/modules.php?module=index&amp;what=login"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="guest_table dashed" width="540">
+       <TR>
+               <TD width="10" class="guest_title2 bottom2 seperator" height="30">&nbsp;</TD>
+               <TD colspan="8" class="guest_title2 bottom2"><STRONG>{--GUEST_WELCOME_MEMBER--}</STRONG>
+               </TD>
+               <TD width="10" class="guest_title2 bottom2 seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="9" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="180" align="right">{--GUEST_ENTER_LOGIN_NICKNAME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="id" class="guest_normal" size="10"
+                       maxlength="255"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="80" align="right">{--GUEST_ENTER_PASSWORD--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="password" name="password" class="guest_normal"
+                       size="10" maxlength="255"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       {!LOGIN_FAILURE_MSG!}
+       <TR>
+               <TD colspan="9" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="3" align="right">{--GUEST_SELECT_LIFETIME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="3"><SELECT name="lifetime" size="1"
+                       class="guest_select">
+                       <OPTION value="3600">1 {--LIFE_HOURS--}</OPTION>
+                       <OPTION value="8200">2 {--LIFE_HOURS--}</OPTION>
+                       <OPTION value="21600">6 {--LIFE_HOURS--}</OPTION>
+                       <OPTION value="43200">12 {--LIFE_HOURS--}</OPTION>
+                       <OPTION value="86400">1 {--LIFE_DAYS--}</OPTION>
+                       <OPTION value="182800">2 {--LIFE_DAYS--}</OPTION>
+                       <OPTION value="604800">1 {--LIFE_WEEKS--}</OPTION>
+                       <OPTION value="1209600">2 {--LIFE_WEEKS--}</OPTION>
+                       <OPTION value="2592000">1 {--LIFE_MONTHS--}</OPTION>
+                       <OPTION value="5184000">2 {--LIFE_MONTHS--}</OPTION>
+                       <OPTION value="15552000">6 {--LIFE_MONTHS--}</OPTION>
+                       <OPTION value="31536000">1 {--LIFE_YEARS--}</OPTION>
+                       <OPTION value="60">{--LIFE_CLOSE_BROWSER--}</OPTION>
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="9" height="3" class="bottom2 seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="guest_footer seperator">&nbsp;</TD>
+               <TD colspan="8" align="center" class="guest_footer"><INPUT
+                       type="reset" class="guest_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="guest_submit"
+                       value="{--LOGIN_SUBMIT--}"></TD>
+               <TD width="10" class="guest_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<BR>
+
+<FORM action="{!URL!}/modules.php?module=index&amp;what=login"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="guest_table dashed" width="540">
+       <TR>
+               <TD width="10" class="guest_title2 bottom2 seperator">&nbsp;</TD>
+               <TD colspan="3" class="guest_title2 bottom2" height="30"><STRONG>{--GUEST_GET_NEW_PASS--}</STRONG>
+               </TD>
+               <TD width="10" class="guest_title2 bottom2 seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="145" align="right">{--GUEST_ENTER_LOGIN_NICKNAME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="145"><INPUT type="text" name="id" class="guest_normal"
+                       size="10" maxlength="255">&nbsp;&nbsp;<STRONG>{--_OR--}</STRONG></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="145" align="right">{--GUEST_ENTER_EMAIL--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="145"><INPUT type="text" name="email"
+                       class="guest_normal" size="20" maxlength="255"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="3" class="bottom2 seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="guest_footer seperator">&nbsp;</TD>
+               <TD colspan="3" align="center" class="guest_footer"><INPUT
+                       type="reset" class="guest_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="new_pass" class="guest_submit"
+                       value="{--NEW_PASSWD--}"></TD>
+               <TD width="10" class="guest_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_no_rallyes.tpl b/0.2.1/templates/de/html/guest/guest_no_rallyes.tpl
new file mode 100644 (file)
index 0000000..7eca033
--- /dev/null
@@ -0,0 +1,23 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="400"
+       class="guest_table dashed">
+       <TR>
+               <TD class="guest_title2 bottom2" height="25"><STRONG>Keine
+               Referral-Rallyes aktiv!</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="bottom2">
+               <DIV
+                       style="margin-left: 5px; margin-right: 5px; margin-top: 3px; margin-bottom: 3px"
+                       align="center">Derzeit ist noch keine Rallye im Gange! Bitte
+               kommen Sie sp&auml;ter noch einmal wieder!</DIV>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2" height="25">
+               <DIV
+                       style="margin-left: 5px; margin-right: 5px; margin-top: 3px; margin-bottom: 3px"
+                       align="center">&nbsp;<!-- Platz fuer Links, etc., dann aber das &nbsp; entfernen! -->
+               </DIV>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/guest/guest_rallye_expired_footer.tpl b/0.2.1/templates/de/html/guest/guest_rallye_expired_footer.tpl
new file mode 100644 (file)
index 0000000..abf0326
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD colspan="4" class="guest_title2" height="25" align="center"><STRONG>{--RALLYE_HAPPY_WINNERS--}</STRONG>
+       </TD>
+</TR>
+</TABLE>
+</DIV>
diff --git a/0.2.1/templates/de/html/guest/guest_rallye_expired_header.tpl b/0.2.1/templates/de/html/guest/guest_rallye_expired_header.tpl
new file mode 100644 (file)
index 0000000..14ef11c
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="530"
+       class="guest_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2" width="80" height="25"><STRONG>{--_RALLYE_PRICE--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="50"><STRONG>{--_UID--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="200"><STRONG>{--RALLYE_GUEST_REFS--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="200"><STRONG>{--RALLYE_PRICE_IS--}</STRONG></TD>
+       </TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_rallye_footer.tpl b/0.2.1/templates/de/html/guest/guest_rallye_footer.tpl
new file mode 100644 (file)
index 0000000..cfc2877
--- /dev/null
@@ -0,0 +1,14 @@
+<TR>
+       <TD colspan="3" class="guest_title2" height="10"
+               style="padding-top: 5px; padding-bottom: 5px">
+       <UL>
+               <LI><FONT class="guest_note">Es werden nur aktive User
+               gewertet.</FONT></LI>
+               <LI><FONT class="guest_note">{--__RALLYE_MAX_USERS--}</FONT></LI>
+               <LI><FONT class="guest_note">{--__RALLYE_MIN_PRICES--}</FONT></LI>
+               <LI><FONT class="guest_note">Der Rechtsweg ist
+               ausgeschlossen.</FONT></LI>
+       </UL>
+       </TD>
+</TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/guest/guest_rallye_header.tpl b/0.2.1/templates/de/html/guest/guest_rallye_header.tpl
new file mode 100644 (file)
index 0000000..af9b835
--- /dev/null
@@ -0,0 +1,7 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="430"
+       class="guest_table dashed">
+       <TR>
+               <TD align="center" class="admin_title bottom2" width="80" height="25"><STRONG>{--_RALLYE_PRICE--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="50"><STRONG>{--_UID--}</STRONG></TD>
+               <TD align="center" class="admin_title bottom2" width="300"><STRONG>{--RALLYE_GUEST_REFS--}</STRONG></TD>
+       </TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_rallye_show.tpl b/0.2.1/templates/de/html/guest/guest_rallye_show.tpl
new file mode 100644 (file)
index 0000000..70b57d7
--- /dev/null
@@ -0,0 +1,62 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="guest_table dashed">
+       <TR>
+               <TD class="guest_title2 bottom2" height="25"><STRONG>Referal-Rallye
+               gestartet!</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="bottom2" align="center">
+               <DIV
+                       style="margin-left: 5px; margin-right: 5px; margin-top: 10px; margin-bottom: 10px"
+                       align="center">
+               <DIV align="left">
+               <UL>
+                       <LI>Titel: <STRONG>{--__RALLYE_TITLE--}</STRONG></LI>
+                       <LI>Start: <STRONG>{--__RALLYE_START--}</STRONG></LI>
+                       <LI>Ende : <STRONG>{--__RALLYE_END--}</STRONG></LI>
+               </UL>
+               </DIV>
+               </DIV>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2 bottom2" height="25"><STRONG>...::
+               {--__RALLYE_TITLE--} ::...</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="bottom2">
+               <DIV
+                       style="margin-left: 5px; margin-right: 5px; margin-top: 3px; margin-bottom: 3px">
+               {--__RALLYE_DESCR--}</DIV>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2 bottom2" height="25"><STRONG>{--__RALLYE_CAN_WIN_THIS--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="bottom2">
+               <DIV
+                       style="margin-left: 5px; margin-right: 5px; margin-top: 10px; margin-bottom: 10px">
+               {--__RALLYE_PRICES--}</DIV>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2 bottom2" height="25"><STRONG>Aktueller
+               Stand der Rallye:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="bottom2" align="center">
+               <DIV
+                       style="margin-left: 5px; margin-right: 5px; margin-top: 10px; margin-bottom: 10px"
+                       align="center">{--__RALLYE_TOP_USERS--}</DIV>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2" height="25">
+               <DIV align="center"
+                       style="margin-left: 5px; margin-right: 5px; margin-top: 3px; margin-bottom: 3px">
+               <STRONG>...:: {--__RALLYE_EXTRAS--} ::...</STRONG></DIV>
+               </TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_receive_table.tpl b/0.2.1/templates/de/html/guest/guest_receive_table.tpl
new file mode 100644 (file)
index 0000000..6c06c49
--- /dev/null
@@ -0,0 +1,11 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="440"
+       class="register_header dashed">
+       <TR>
+               <TD width="60%" align="right" height="40" class="register_left">
+               <STRONG>{--MAX_PER_DAY--}:</STRONG>&nbsp;&nbsp;</TD>
+               <TD width="40%" class="register_right"><SELECT name="max_mails"
+                       size="1" class="register_select">
+                       {!__MAX_RECEIVE_OPTIONS!}
+               </SELECT></TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_register.tpl b/0.2.1/templates/de/html/guest/guest_register.tpl
new file mode 100644 (file)
index 0000000..9d8f1e9
--- /dev/null
@@ -0,0 +1,164 @@
+<FORM
+       action="{!URL!}/modules.php?module=index&amp;what=register&refid=$REFID"
+       method="POST" name="register">
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="640"
+       class="guest_table dashed">
+       <TR>
+               <TD colspan="2" class="guest_title bottom2" height="70">
+               {!REGISTER_HEADER_CONTENT!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="guest_title2 bottom2" height="30">
+               {--REGISTER_PERSONAL_DATA--}:</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="50%" class="register_left">
+                               {--GUEST_SEX--}{!MUST_SEX!}:&nbsp;&nbsp;</TD>
+                               <TD width="50%" class="register_right"><SELECT name="sex"
+                                       size="1" class="guest_select">
+                                       <OPTION value="M">{--SEX_M--}</OPTION>
+                                       <OPTION value="F">{--SEX_F--}</OPTION>
+                                       <OPTION value="C">{--SEX_C--}</OPTION>
+                               </SELECT></TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD class="register_left">{--SURNAME--}{!MUST_SURNAME!},
+                               {--FAMILY_NAME--}{!MUST_FAMILY_NAME!}:&nbsp;&nbsp;</TD>
+                               <TD class="register_right"><INPUT type="text" name="surname"
+                                       class="guest_normal" size="15" maxlength="255"
+                                       value="{!__SURNAME!}">&nbsp; <INPUT type="text"
+                                       name="family_name" class="guest_normal" size="15" maxlength="255"
+                                       value="{!__FAMILY!}"></TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD class="register_left">
+                               {--STREET_NR--}{!MUST_STREET_NR!}:&nbsp;&nbsp;</TD>
+                               <TD class="register_right"><INPUT type="text" name="street_nr"
+                                       class="guest_normal" size="25" maxlength="255" value="{!__STREET!}">
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" width="50%" class="register_left">
+                               {--COUNTRY--}{!MUST_CNTRY!}, {--ZIP--}{!MUST_ZIP!},
+                               {--CITY--}{!MUST_CITY!}:&nbsp;&nbsp;</TD>
+                               <TD width="50%" class="register_right">
+                               {!__COUNTRY_CONTENT!}&nbsp; <INPUT type="text" name="zip"
+                                       class="guest_normal" size="5" maxlength="10" value="{!__ZIP!}">&nbsp;
+                               <INPUT type="text" name="city" class="guest_normal" size="20"
+                                       maxlength="255" value="{!__CITY!}"></TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" width="50%" class="register_left">
+                               {--ADDY--}{!MUST_ADDY!}:&nbsp;&nbsp;</TD>
+                               <TD width="50%" class="register_right"><INPUT type="text"
+                                       name="addy" class="guest_normal" size="30" maxlength="255"
+                                       value="{!__ADDY!}"></TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="right" width="50%" class="register_left">
+                               {--BIRTHDAY--}{!MUST_BIRTH!}:&nbsp;&nbsp;</TD>
+                               <TD width="50%" class="register_right">{!BIRTHDAY_SELECTION!}</TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD colspan="2" align="center"><STRONG class="guest_failed">{!MUST_MARKER!}&nbsp;:&nbsp;{--REGISTER_MUST_SET_NOTE--}</STRONG>
+                               </TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="guest_title2 bottom2" height="30">
+               {--REGISTER_CATEGORIES--}:</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="guest_title">
+               {--GUEST_SELECT_LEAST_CATS_1--}{!LEAST_CATS_VALUE!}{--GUEST_SELECT_LEAST_CATS_2--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="bottom2">{!CATEGORY_SELECTION!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="guest_title2 bottom2" height="30">
+               {--REGISTER_MISC--}:</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="60%" class="register_left">
+               {--PASS_1--}, {--PASS_2--}:&nbsp;&nbsp;</TD>
+               <TD width="40%" class="register_right"><INPUT type="password"
+                       name="pass1" class="guest_normal" size="10" maxlength="100">&nbsp;
+               <INPUT type="password" name="pass2" class="guest_normal" size="10"
+                       maxlength="100"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center">{!MAX_RECEIVE_LIST!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       {!REFID_CONTENT!}
+       <TR>
+               <TD colspan="2" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="guest_title2 bottom2" height="30">
+               {--TERMS_OF_USAGE--}:<BR>
+               <SPAN class="guest_failed">{--YOU_FINALIZE--}</SPAN></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="60%" class="register_left">
+               {--AGREE_TO_THIS--}:&nbsp;&nbsp;</TD>
+               <TD width="40%" class="register_right">{--YES--}: <INPUT
+                       type="radio" name="agree" class="guest_normal" value="Y">&nbsp;
+               {--NO--}: <INPUT type="radio" name="agree" class="guest_normal"
+                       value="N" checked></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="7" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="guest_footer" height="30"><INPUT
+                       type="reset" class="guest_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="guest_submit"
+                       value="{--SUBMIT_REGISTER--}"></TD>
+       </TR>
+</TABLE>
+</DIV>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/guest/guest_register_refid.tpl b/0.2.1/templates/de/html/guest/guest_register_refid.tpl
new file mode 100644 (file)
index 0000000..55fa291
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD align="right" width="50%" class="register_left">
+       {--REFID_BY--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="register_right"><INPUT type="text"
+               name="refid" class="register_normal" size="5" maxlength="10"
+               value="$content" /></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_register_refid_hide.tpl b/0.2.1/templates/de/html/guest/guest_register_refid_hide.tpl
new file mode 100644 (file)
index 0000000..dd3e841
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD align="right" width="50%" class="register_left">
+       {--REFID_BY--}:&nbsp;&nbsp;</TD>
+       <TD width="50%" class="register_right"><STRONG>$content</STRONG> <INPUT
+               type="hidden" name="refid" value="$content" /></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_stats_cats_row.tpl b/0.2.1/templates/de/html/guest/guest_stats_cats_row.tpl
new file mode 100644 (file)
index 0000000..38ff872
--- /dev/null
@@ -0,0 +1,5 @@
+<TR>
+       <TD class="switch_sw$content[sw] guest_stats_l bottom2" colspan="4">$content[cat]</TD>
+       <TD class="switch_sw$content[sw] guest_stats_m bottom2 right2">&nbsp;</TD>
+       <TD class="switch_sw$content[sw] guest_stats_r bottom2">$content[cnt]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_stats_member.tpl b/0.2.1/templates/de/html/guest/guest_stats_member.tpl
new file mode 100644 (file)
index 0000000..93d8c49
--- /dev/null
@@ -0,0 +1,51 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="guest_stats dashed">
+       <TR>
+               <TD align="center" class="guest_stats_title bottom2" colspan="6"><STRONG>{--GUEST_STATS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="guest_stats_l bottom2">{--USERS_TOTAL--}:</TD>
+               <TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+               <TD class="guest_stats_r bottom2 right2">{!__TOTAL_USERS!}</TD>
+               <TD class="guest_stats_l bottom2">{--UNCONFIRMED_USERIDS--}:</TD>
+               <TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+               <TD class="guest_stats_r bottom2">{!__UNCONFIRMED!}</TD>
+       </TR>
+       <TR>
+               <TD class="guest_stats_l bottom2">{--GUEST_STATS_MALES--}:</TD>
+               <TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+               <TD class="guest_stats_r bottom2 right2">{!__MALE_COUNT!}</TD>
+               <TD class="guest_stats_l bottom2">{--GUEST_STATS_FEMALES--}:</TD>
+               <TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+               <TD class="guest_stats_r bottom2">{!__FEMALE_COUNT!}</TD>
+       </TR>
+       <!--<TR>
+  <TD class="guest_stats_l bottom2">{--GUEST_STATS_TONLINE--}:</TD>
+  <TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+  <TD class="guest_stats_r bottom2 right2">{!__TMEM_COUNT!}</TD>
+  <TD class="guest_stats_l bottom2">{--GUEST_STATS_YONLINE--}:</TD>
+  <TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+  <TD class="guest_stats_r bottom2">{!__YMEM_COUNT!}</TD>
+</TR>//-->
+       <TR>
+               <TD class="guest_stats_l bottom2">{--GUEST_STATS_TREGISTER--}:</TD>
+               <TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+               <TD class="guest_stats_r bottom2 right2">{!__TREG_COUNT!}</TD>
+               <TD class="guest_stats_l bottom2">{--GUEST_STATS_YREGISTER--}:</TD>
+               <TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+               <TD class="guest_stats_r bottom2">{!__YREG_COUNT!}</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="guest_stats_title bottom2" colspan="6"><STRONG>{--GUEST_STATS_MONTHLY--}</STRONG></TD>
+       </TR>
+       {!__MONTH_STATS_ROWS!}
+       <TR>
+               <TD align="center" class="guest_stats_title bottom2" colspan="6"><STRONG>{--GUEST_STATS_CATS--}</STRONG></TD>
+       </TR>
+       {!__CATS_STATS_ROWS!}
+       <TR>
+               <TD align="center" class="guest_stats_footer" colspan="6"><A
+                       href="{!URL!}/modules.php?module=index&amp;what=stats&amp;mode={!__LMODE_VALUE!}">{!__LINK_TITLE!}</A>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/guest/guest_stats_month_row.tpl b/0.2.1/templates/de/html/guest/guest_stats_month_row.tpl
new file mode 100644 (file)
index 0000000..6d5ec4c
--- /dev/null
@@ -0,0 +1,4 @@
+<!-- VORSICHT----! KEINE <TR> UND </TR> HIERN EINSETZEN----! //-->
+<TD class="guest_stats_$content[l_class] bottom2">$content[m_descr]:</TD>
+<TD class="guest_stats_m bottom2 right2">&nbsp;</TD>
+<TD class="guest_stats_$content[r_class] bottom2$content[r2_class]">$content[cnt]</TD>
diff --git a/0.2.1/templates/de/html/guest/guest_top10.tpl b/0.2.1/templates/de/html/guest/guest_top10.tpl
new file mode 100644 (file)
index 0000000..1cb2b01
--- /dev/null
@@ -0,0 +1,83 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="guest_table dashed">
+       <TR>
+               <TD colspan="5" class="guest_title2 bottom2" height="30"><STRONG>{--GUEST_TOP10_LOGIN_HEADER_1--}{!__TOP10_MAX!}&nbsp;-&nbsp;{--GUEST_TOP10_LOGIN_HEADER_2--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOP10_RANKING--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--_UID--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOTAL_LOGINS--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOTAL_POINTS--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG>
+               </TD>
+       </TR>
+       {!__TOP_LOGINS_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="guest_footer" height="30">
+               <FONT class="member_note tiny">{--GUEST_TOP10_LOGIN_FOOTER--}</FONT></TD>
+       </TR>
+</TABLE>
+</DIV>
+
+<BR>
+
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="guest_table dashed">
+       <TR>
+               <TD colspan="4" class="guest_title2 bottom2" height="30"><STRONG>{--GUEST_TOP10_POINTS_HEADER_1--}{!__TOP10_MAX!}&nbsp;-&nbsp;{--GUEST_TOP10_POINTS_HEADER_2--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOP10_RANKING--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--_UID--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOTAL_POINTS--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG>
+               </TD>
+       </TR>
+       {!__TOP_POINTS_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="guest_footer" height="30">
+               <FONT class="member_note tiny">{--GUEST_TOP10_POINTS_FOOTER--}</FONT>
+               </TD>
+       </TR>
+</TABLE>
+</DIV>
+
+<BR>
+
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="guest_table dashed">
+       <TR>
+               <TD colspan="5" class="guest_title2 bottom2" height="30"><STRONG>{--GUEST_TOP10_REFS_HEADER_1--}{!__TOP10_MAX!}&nbsp;-&nbsp;{--GUEST_TOP10_REFS_HEADER_2--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOP10_RANKING--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--_UID--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOTAL_REFERRALS--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2 right2"><STRONG>{--TOTAL_POINTS--}:</STRONG>
+               </TD>
+               <TD class="guest_title2 bottom2"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG>
+               </TD>
+       </TR>
+       {!__TOP_REFERRAL_ROWS!}
+       <TR>
+               <TD colspan="5" align="center" class="guest_footer" height="30">
+               <FONT class="member_note tiny">{--GUEST_TOP10_REFS_FOOTER--}</FONT></TD>
+       </TR>
+</TABLE>
+</DIV>
diff --git a/0.2.1/templates/de/html/guest/guest_top10_empty4.tpl b/0.2.1/templates/de/html/guest/guest_top10_empty4.tpl
new file mode 100644 (file)
index 0000000..6b57ad9
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD class="top10_row1 switch_sw$content[sw] bottom2 right2"
+               align="center">$content[idx]</TD>
+       <TD class="top10_row2 switch_sw$content[sw] bottom2 right2">&nbsp;---</TD>
+       <TD class="top10_row3 switch_sw$content[sw] bottom2 right2">&nbsp;---</TD>
+       <TD class="top10_row4 switch_sw$content[sw] bottom2">&nbsp;---</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_top10_empty5.tpl b/0.2.1/templates/de/html/guest/guest_top10_empty5.tpl
new file mode 100644 (file)
index 0000000..06c3714
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD class="top10_row1 switch_sw$content[sw] bottom2 right2"
+               align="center">$content[idx]</TD>
+       <TD class="top10_row2 switch_sw$content[sw] bottom2 right2">&nbsp;---</TD>
+       <TD class="top10_row3 switch_sw$content[sw] bottom2 right2">&nbsp;---</TD>
+       <TD class="top10_row4 switch_sw$content[sw] bottom2 right2">&nbsp;---</TD>
+       <TD class="top10_row5 switch_sw$content[sw] bottom2">&nbsp;---</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_top10_row_earner.tpl b/0.2.1/templates/de/html/guest/guest_top10_row_earner.tpl
new file mode 100644 (file)
index 0000000..f2de621
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD class="top10_row1 switch_sw$content[sw] bottom2 right2"
+               align="center">$content[cnt]</TD>
+       <TD class="top10_row2 switch_sw$content[sw] bottom2 right2">&nbsp;$content[uid]&nbsp;($content[nick])</TD>
+       <TD class="top10_row3 switch_sw$content[sw] bottom2 right2">&nbsp;$content[points]</TD>
+       <TD class="top10_row5 switch_sw$content[sw] bottom2">&nbsp;$content[last]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_top10_row_login.tpl b/0.2.1/templates/de/html/guest/guest_top10_row_login.tpl
new file mode 100644 (file)
index 0000000..f803103
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD class="top10_row1 switch_sw$content[sw] bottom2 right2"
+               align="center">$content[cnt]</TD>
+       <TD class="top10_row2 switch_sw$content[sw] bottom2 right2">&nbsp;$content[uid]&nbsp;($content[nick])</TD>
+       <TD class="top10_row3 switch_sw$content[sw] bottom2 right2">&nbsp;$content[logins]</TD>
+       <TD class="top10_row4 switch_sw$content[sw] bottom2 right2">&nbsp;$content[points]</TD>
+       <TD class="top10_row5 switch_sw$content[sw] bottom2">&nbsp;$content[last]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/guest/guest_top10_row_refs.tpl b/0.2.1/templates/de/html/guest/guest_top10_row_refs.tpl
new file mode 100644 (file)
index 0000000..c7eab4f
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD class="top10_row1 switch_sw$content[sw] bottom2 right2"
+               align="center">$content[cnt]</TD>
+       <TD class="top10_row2 switch_sw$content[sw] bottom2 right2">&nbsp;$content[uid]&nbsp;($content[nick])</TD>
+       <TD class="top10_row3 switch_sw$content[sw] bottom2 right2">&nbsp;$content[refs]</TD>
+       <TD class="top10_row4 switch_sw$content[sw] bottom2 right2">&nbsp;$content[points]</TD>
+       <TD class="top10_row5 switch_sw$content[sw] bottom2">&nbsp;$content[last]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/header.tpl b/0.2.1/templates/de/html/header.tpl
new file mode 100644 (file)
index 0000000..9695817
--- /dev/null
@@ -0,0 +1,13 @@
+<script language="JavaScript" type="text/javascript">
+<!--
+function BlurLinks()
+{
+NavLinks=document.getElementsByName('menu');
+for(i=0; i<NavLinks.length; i++)
+{
+NavLinks[i].onfocus=new Function("if(this.blur)this.blur()");
+}
+}
+onload=BlurLinks;
+//-->
+</script>
diff --git a/0.2.1/templates/de/html/impressum.tpl b/0.2.1/templates/de/html/impressum.tpl
new file mode 100644 (file)
index 0000000..ad9ca8f
--- /dev/null
@@ -0,0 +1,27 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0">
+       <TR>
+               <TD colspan="3" class="impressum_header"><STRONG><U>Impressum</U></STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="impressum_body">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="impressum_body" width="5">&nbsp;</TD>
+               <TD class="impressum_body">Ihr Name hier!<BR>
+               Ihre Strasse<BR>
+               XX-12345 Demo-Dorf<BR>
+               <BR>
+               Tel.: +49(0)-123-456789<BR>
+               <BR>
+               Email: <A href="mailto:webmaster@blablabla.de">webmaster@blablabla.de</A><BR>
+               <BR>
+               <A href="http://www.disclaimer.de/disclaimer.htm">Disclaimer</A><BR>
+               </TD>
+               <TD class="impressum_body" width="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="impressum_body">&nbsp;</TD>
+       </TR>
+</TABLE>
+</DIV>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/index.tpl b/0.2.1/templates/de/html/index.tpl
new file mode 100644 (file)
index 0000000..585216f
--- /dev/null
@@ -0,0 +1,41 @@
+<A name="TOP"></A>
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%"
+       class="guest_table" height="100%">
+       <TR>
+               <TD align="center" height="65%">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD align="center"><A target="_parent"
+                                       href="{!URL!}/modules.php?module=index&amp;what=welcome$content">
+                               <!-- <IMG src="{!THEME_URL!}/images/index_logo.jpg" alt="{!MAIN_TITLE!}" title="{!MAIN_TITLE!}" border="0"> //-->
+                               <FONT class="big">{!MAIN_TITLE!}</FONT> </A></TD>
+                       </TR>
+                       <TR>
+                               <TD align="center" height="30" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center"><FONT class="medium">{!SLOGAN!}</FONT></TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" height="26%"><FONT class="big">[&nbsp;<A
+                       target="_parent"
+                       href="{!URL!}/modules.php?module=index&amp;what=welcome$content">Weiter...</A>&nbsp;]</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" valign="bottom" height="9%"><FONT class="tiny">
+               <STRONG><U>Impressum:</U></STRONG><BR>
+               <P>Ihr Name hier, Ihre Stra&szlig;e, X-12345 Demo-Stadt<BR>
+               Tel.: 01234-56789-0, Email: <A
+                       href="mailto:mail_NO_SPAM_@_NO_SPAM_provider.de">Webmaster</A></P>
+               <P>Weitere Angaben? ...</P>
+               <P>Gelinkte Seiten, die sich ausserhalb von {!URL!} befinden,
+               mache ich mich nicht mit verantwortlich und distanziere mich hiermit
+               ausdr&uuml;cklich von diesen und deren Inhalten! Bitte beachte den <A
+                       href="" target="_blank">Disclaimer</A>!<BR>
+               </FONT></TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/index_forward.tpl b/0.2.1/templates/de/html/index_forward.tpl
new file mode 100644 (file)
index 0000000..fa9085b
--- /dev/null
@@ -0,0 +1,10 @@
+<SCRIPT language="JavaScript" type="text/javascript">
+<!--
+function Load()
+{
+       window.location.href='{!URL!}/modules.php?module={!__MOD_VALUE!}';
+}
+
+window.setTimeout("Load()", {!__DELAY_VALUE!});
+//-->
+</SCRIPT>
diff --git a/0.2.1/templates/de/html/infos.tpl b/0.2.1/templates/de/html/infos.tpl
new file mode 100644 (file)
index 0000000..77f05bb
--- /dev/null
@@ -0,0 +1,3 @@
+Hier k&ouml;nnen Sie irgentwelche Infos zu Ihrem Dienst einf&uuml;gen.
+Wenn Sie z.B. in andere Internet-W&auml;hrungen auszahlen, dann
+k&ouml;nnen Sie dies hier ver&ouml;ffentlichen!
diff --git a/0.2.1/templates/de/html/install/.htaccess b/0.2.1/templates/de/html/install/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/install/install_fatal_row.tpl b/0.2.1/templates/de/html/install/install_fatal_row.tpl
new file mode 100644 (file)
index 0000000..eb91e9e
--- /dev/null
@@ -0,0 +1,2 @@
+<DIV class="install_fatalcontent"><STRONG>{--FATAL_NO--}$content[key]:</STRONG><BR>
+&nbsp;&nbsp;&nbsp;<STRONG>&middot;</STRONG>&nbsp;$content[value]</DIV>
diff --git a/0.2.1/templates/de/html/install/install_fatal_table.tpl b/0.2.1/templates/de/html/install/install_fatal_table.tpl
new file mode 100644 (file)
index 0000000..016f697
--- /dev/null
@@ -0,0 +1,5 @@
+<DIV align="center">
+<DIV class="install_fatal">
+<DIV class="fatal_title">{--INSTALL_PROBLEMS_DETECTED--}</DIV>
+$content</DIV>
+</DIV>
diff --git a/0.2.1/templates/de/html/install/install_footer.tpl b/0.2.1/templates/de/html/install/install_footer.tpl
new file mode 100644 (file)
index 0000000..84f3b49
--- /dev/null
@@ -0,0 +1,5 @@
+
+</DIV>
+</TD>
+</TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/install/install_header.tpl b/0.2.1/templates/de/html/install/install_header.tpl
new file mode 100644 (file)
index 0000000..561fe1a
--- /dev/null
@@ -0,0 +1,12 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" class="install_main"
+       width="100%">
+       <TR>
+               <TD align="center" class="install_header"><STRONG>: : :
+               {--INSTALLATION--} : : :</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="14" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">
+               <DIV align="center">
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/install/install_page1.tpl b/0.2.1/templates/de/html/install/install_page1.tpl
new file mode 100644 (file)
index 0000000..eeed08e
--- /dev/null
@@ -0,0 +1,70 @@
+<FORM action="{!__BURL_ACTION!}/install.php?page=2" method="POST"
+       target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="install_content">
+       <TR>
+               <TD colspan="3" align="center"><STRONG class="install">{--HEADER_TEXT_PAGE1--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" rowspan="12"></TD>
+               <TD colspan="2"><SPAN class="install_intro">
+               {--TEXT_PAGE_1--} </SPAN></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="install">{--SERVER_PATH--}&nbsp;:&nbsp;</TD>
+               <TD><INPUT type="text" name="spath" size="{!__PATH_LEN!}"
+                       value="{!PATH!}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="install">{--BASE_URL--}&nbsp;:&nbsp;
+               ({--BASE_URL_NOTE--})</TD>
+               <TD><INPUT type="text" name="burl" size="{!__BURL_LEN!}"
+                       value="{!__BURL_ACTION!}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="install">{--HP_TITLE--}&nbsp;:&nbsp;</TD>
+               <TD><INPUT type="text" name="title" size="{!__TITLE_LEN!}"
+                       maxlength="255" value="{!MAIN_TITLE!}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="install">{--HP_SLOGAN--}&nbsp;:&nbsp;</TD>
+               <TD><INPUT type="text" name="slogan" size="{!__SLOGAN_LEN!}"
+                       maxlength="255" value="{!SLOGAN!}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="install">{--HP_EMAIL--}&nbsp;:&nbsp;</TD>
+               <TD><INPUT type="text" name="email" size="{!__WEBMASTER_LEN!}"
+                       maxlength="255" value="{!WEBMASTER!}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><INPUT type="submit"
+                       class="admin_submit submit" value="{--NEXT_PAGE--}"
+                       class="install_submit"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/install/install_page2.tpl b/0.2.1/templates/de/html/install/install_page2.tpl
new file mode 100644 (file)
index 0000000..8627fd6
--- /dev/null
@@ -0,0 +1,80 @@
+<FORM action="{--__BURL_ACTION--}/install.php?page=5" method="POST"
+       target="_self">
+<TABLE border="0" cellspacing="0" cellpadding="0" class="install_table">
+       <TR>
+               <TD colspan="2" align="center"><STRONG class="install">{--HEADER_TEXT_PAGE2--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2"><SPAN class="install_intro">
+               {--TEXT_PAGE_2--} </SPAN></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right" class="install">{--MYSQL_HOST--}&nbsp;:&nbsp;</TD>
+               <TD width="50%"><INPUT type="text" name="mysql[host]" size="15"
+                       value="{--__MYSQL_HOST--}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right" class="install">{--MYSQL_DBASE--}&nbsp;:&nbsp;</TD>
+               <TD width="50%"><INPUT type="text" name="mysql[dbase]" size="15"
+                       value="{--__MYSQL_DBASE--}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right" class="install">{--MYSQL_PREFIX--}&nbsp;:&nbsp;</TD>
+               <TD width="50%"><INPUT type="text" name="mysql[prefix]" size="15"
+                       value="{--__MYSQL_PREFIX--}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right" class="install">{--MYSQL_LOGIN--}&nbsp;:&nbsp;</TD>
+               <TD width="50%"><INPUT type="text" name="mysql[login]" size="10"
+                       value="{--__MYSQL_LOGIN--}" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right" class="install">{--MYSQL_PASS1--}&nbsp;:&nbsp;</TD>
+               <TD width="50%"><INPUT type="password" name="mysql[pass1]"
+                       size="10" class="install_normal" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right" class="install">{--MYSQL_PASS2--}&nbsp;:&nbsp;</TD>
+               <TD width="50%"><INPUT type="password" name="mysql[pass2]"
+                       size="10" class="install_normal" class="install_normal"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center"><INPUT type="hidden" name="spath"
+                       value="{--__SPATH_VALUE--}"> <INPUT type="hidden" name="burl"
+                       value="{--__BURL_VALUE--}"> <INPUT type="hidden" name="title"
+                       value="{--__TITLE_VALUE--}"> <INPUT type="hidden"
+                       name="slogan" value="{--__SLOGAN_VALUE--}"> <INPUT
+                       type="hidden" name="email" value="{--__EMAIL_VALUE--}"> <INPUT
+                       type="submit" class="admin_submit submit" value="{--NEXT_PAGE--}"
+                       class="install_submit"></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/install/install_welcome.tpl b/0.2.1/templates/de/html/install/install_welcome.tpl
new file mode 100644 (file)
index 0000000..593c69f
--- /dev/null
@@ -0,0 +1,28 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="install_content">
+       <TR>
+               <TD colspan="2" align="center"><STRONG class="install_welcome">{--WELCOME_TEXT--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SPAN class="install_intro"> {--INTRO_TEXT--} </SPAN></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center">
+               <FORM action="install.php" method="GET" target="_self"><INPUT
+                       type="hidden" name="page" value="1"> <INPUT type="submit"
+                       class="admin_submit submit" value="{--NEXT_PAGE--}"
+                       class="install_submit"></FORM>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="21" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/lead_code.tpl b/0.2.1/templates/de/html/lead_code.tpl
new file mode 100644 (file)
index 0000000..8b73642
--- /dev/null
@@ -0,0 +1,14 @@
+<P align="center"><strong><big>Email-Adresse
+best&auml;tigt!</big></strong><br />
+<br />
+Vielen Dank f&uuml;r die Best&auml;tigung Ihrer Email-Adresse! Sie
+k&ouml;nnen jetzt unten fortfahren.</P>
+<!-- lead_uid und lead_email funktionieren //-->
+
+<!-- LEAD CODE AB HIER! //-->
+<!-- LEAD CODE BIS HIER! //-->
+
+<P align="center">[<A href="{--URL--}/modules.php?module=index">Weiter
+zur Eingangsseite</A>]&nbsp;|&nbsp;[<A
+       href="{--URL--}/modules.php?module=login">Weiter zum Loginbereich</A>]
+</P>
diff --git a/0.2.1/templates/de/html/loader.tpl b/0.2.1/templates/de/html/loader.tpl
new file mode 100644 (file)
index 0000000..5d8ef46
--- /dev/null
@@ -0,0 +1,20 @@
+<BIG><STRONG>D&nbsp;E&nbsp;R&nbsp;E&nbsp;F&nbsp;E&nbsp;R&nbsp;R&nbsp;E&nbsp;R&nbsp;&nbsp;-&nbsp;&nbsp;{!MAIN_TITLE!}</STRONG></BIG>
+<BR>
+<BR>
+<BR>
+<BR>
+<BR>
+{--LOADER_NOT_WORKING--} [
+<A href="{!__URL!}">{--LOADER_CLICK_HERE--}</A>
+]
+<SCRIPT language="JavaScript" type="text/javascript">
+<!--
+function Loader(URL)
+{
+       document.location.href = URL;
+       return false;
+}
+
+setTimeout("Loader('{!__URL!}')", 1000);
+//-->
+</SCRIPT>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/login_failed_js.tpl b/0.2.1/templates/de/html/login_failed_js.tpl
new file mode 100644 (file)
index 0000000..856534c
--- /dev/null
@@ -0,0 +1,11 @@
+<SCRIPT language="JavaScript" type="text/javascript">
+<!--
+function Loader()
+{
+       document.location.href = "{!URL!}/modules.php?module=index&amp;what=login&msg={--CODE_COOKIES_DISABLED--}";
+}
+
+window.setTimeout("Loader()", 2000);
+
+//-->
+</SCRIPT>
diff --git a/0.2.1/templates/de/html/mailid/.htaccess b/0.2.1/templates/de/html/mailid/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/mailid/mailid_banner.tpl b/0.2.1/templates/de/html/mailid/mailid_banner.tpl
new file mode 100644 (file)
index 0000000..40b3538
--- /dev/null
@@ -0,0 +1 @@
+<!-- Maximal 468x60 Banner ... -->
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_confirm_buttom.tpl b/0.2.1/templates/de/html/mailid/mailid_confirm_buttom.tpl
new file mode 100644 (file)
index 0000000..23deb22
--- /dev/null
@@ -0,0 +1,31 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_mailidtop">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="220" align="center">
+               <FORM
+                       action="{!URL!}/mailid_top.php?uid={!_UID_VALUE!}&amp;{!_TYPE_VALUE!}={!_DATA_VALUE!}&amp;mode=add&amp;code={!_CODE_VALUE!}"
+                       method="POST" style="margin-bottom: 0px">
+               {--MAILID_CLICK_BUTTON--}:<BR>
+               <INPUT type="hidden" name="gfx_check" value="{!__GFX_CODE!}">
+               <INPUT type="submit" class="member_submit" name="ok"
+                       value="{--SUBMIT_CODE--}"></FORM>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="member_banner dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">{--_TEMPLATE_BANNER--}</TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/mailid/mailid_enter_code.tpl b/0.2.1/templates/de/html/mailid/mailid_enter_code.tpl
new file mode 100644 (file)
index 0000000..444a79c
--- /dev/null
@@ -0,0 +1,31 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_mailidtop">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="220" align="center">
+               <FORM
+                       action="{!URL!}/mailid_top.php?uid={!_UID_VALUE!}&amp;{!_TYPE_VALUE!}={!_DATA_VALUE!}&amp;mode=add&amp;code={--_CODE_VALUE--}"
+                       method="POST" style="margin-bottom: 0px">{--ENTER_CODE--}:
+               {--_IMAGE_CODE--}<BR>
+               <INPUT type="text" name="gfx_check" class="member_normal" size="5"
+                       maxlength="45"> <INPUT type="submit" class="member_submit"
+                       name="ok" value="{--SUBMIT_CODE--}"></FORM>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="member_banner dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">{--_TEMPLATE_BANNER--}</TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_frames.tpl b/0.2.1/templates/de/html/mailid/mailid_frames.tpl
new file mode 100644 (file)
index 0000000..dff10bd
--- /dev/null
@@ -0,0 +1,6 @@
+<FRAMESET rows="120,*" frameborder="no" framespacing="0" border="0">
+       <FRAME
+               src="{!URL!}/mailid_top.php?uid={!_UID_VALUE!}&amp;{!_TYPE_VALUE!}={!_DATA_VALUE!}"
+               name="mailid_top">
+       <FRAME src="{--_URL_VALUE--}" name="mailid_url">
+</FRAMESET>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_frameset.tpl b/0.2.1/templates/de/html/mailid/mailid_frameset.tpl
new file mode 100644 (file)
index 0000000..9795fab
--- /dev/null
@@ -0,0 +1 @@
+<!-- OBSULETE!!! -->
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_points_done.tpl b/0.2.1/templates/de/html/mailid/mailid_points_done.tpl
new file mode 100644 (file)
index 0000000..d65e4b8
--- /dev/null
@@ -0,0 +1,26 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_mailidtop">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="220" align="center">{--THANX_POINTS_ADDED_1--}<STRONG
+                       class="member_done">{--_POINTS_VALUE--}</STRONG>&nbsp;{--THANX_POINTS_ADDED_2--}<BR>
+               {--MAILID_TOTAL_POINTS1--} <STRONG class="member_done">{!__TOTAL_POINTS!}
+               {!POINTS!}</STRONG> {--MAILID_TOTAL_POINTS2--}</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="member_banner dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">{--_TEMPLATE_BANNER--}</TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_points_done2.tpl b/0.2.1/templates/de/html/mailid/mailid_points_done2.tpl
new file mode 100644 (file)
index 0000000..ed8003a
--- /dev/null
@@ -0,0 +1,31 @@
+<!-- Template fuer Bestaetigung mit Turbo-Click Bonus -->
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_mailidtop">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="220" align="center"><FONT class="tiny">
+               {--THANX_POINTS_ADDED_1--}<STRONG class="member_done">{--_POINTS_VALUE--}</STRONG>&nbsp;{--THANX_POINTS_ADDED_2--}<BR>
+               {--MAILID_TOTAL_POINTS1--} <STRONG class="member_done">{!__TOTAL_POINTS!}
+               {!POINTS!}</STRONG> {--MAILID_TOTAL_POINTS2--}<BR>
+               <BR>
+               <A
+                       href="{!URL!}/show_bonus.php?uid={!_UID_VALUE!}&amp;t={!_TYPE_VALUE!}&amp;d={!_DATA_VALUE!}"
+                       target="_blank">{--BONUS_SHOW_TURBO_BONUS--} </FONT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="member_banner dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">{--_TEMPLATE_BANNER--}</TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_points_failed.tpl b/0.2.1/templates/de/html/mailid/mailid_points_failed.tpl
new file mode 100644 (file)
index 0000000..4e430af
--- /dev/null
@@ -0,0 +1,25 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_mailidtop">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="220" align="center">{--POINTS_NOT_ADDED_1--}<STRONG
+                       class="member_failed">{--_POINTS_VALUE--}</STRONG>&nbsp;{--POINTS_NOT_ADDED_2--}
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="member_banner dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">{--_TEMPLATE_BANNER--}</TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_points_lcoked2.tpl b/0.2.1/templates/de/html/mailid/mailid_points_lcoked2.tpl
new file mode 100644 (file)
index 0000000..0562e28
--- /dev/null
@@ -0,0 +1 @@
+DELETE ME!
diff --git a/0.2.1/templates/de/html/mailid/mailid_points_locked.tpl b/0.2.1/templates/de/html/mailid/mailid_points_locked.tpl
new file mode 100644 (file)
index 0000000..a296ad7
--- /dev/null
@@ -0,0 +1,25 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_mailidtop">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="220" align="center">{--THANX_POINTS_LOCKED_1--}<STRONG
+                       class="member_done">{--_POINTS_VALUE--}</STRONG>&nbsp;{--THANX_POINTS_LOCKED_2--}<BR>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="member_banner dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">{--_TEMPLATE_BANNER--}</TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_points_locked2.tpl b/0.2.1/templates/de/html/mailid/mailid_points_locked2.tpl
new file mode 100644 (file)
index 0000000..24d2ec0
--- /dev/null
@@ -0,0 +1,29 @@
+<!-- Template fuer Bestaetigung mit Turbo-Click Bonus -->
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_mailidtop">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="220" align="center"><FONT class="tiny">
+               {--THANX_POINTS_LOCKED_1--}<STRONG class="member_done">{--_POINTS_VALUE--}</STRONG>&nbsp;{--THANX_POINTS_LOCKED_2--}<BR>
+               <BR>
+               <A
+                       href="{!URL!}/show_bonus.php?uid={!_UID_VALUE!}&amp;t={!_TYPE_VALUE!}&amp;d={!_DATA_VALUE!}"
+                       target="_blank">{--BONUS_SHOW_TURBO_BONUS--} </FONT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="member_banner dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">{--_TEMPLATE_BANNER--}</TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/mailid/mailid_timer.tpl b/0.2.1/templates/de/html/mailid/mailid_timer.tpl
new file mode 100644 (file)
index 0000000..ef4fc90
--- /dev/null
@@ -0,0 +1,69 @@
+<SCRIPT language="JavaScript" type="text/javascript">
+<!--
+var Timer = "{--_TIME_VALUE--}";
+
+function Init()
+{
+       var Counter = window.setInterval("StartCounter()", 1000);
+}
+
+function StartCounter()
+{
+       Timer--;
+       document.confirm.counter.value = Timer;
+       if (Timer == 0)
+       {
+               document.location.href="{!URL!}/mailid_top.php?uid={!_UID_VALUE!}&{!_TYPE_VALUE!}={!_DATA_VALUE!}&mode=confirm&code={--_RAND_VALUE--}";
+               clearInterval(Counter);
+       }
+}
+//-->
+</SCRIPT>
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_mailidtop">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="220" align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="200"
+                       class="member_confirm dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">
+                               <FORM name="confirm" style="margin-top: 0px; margin-bottom: 0px">
+                               {--MEMBER_TIME_COUNTER_1--} <INPUT type="text" name="counter"
+                                       size="{--_TIM2_VALUE--}" readonly class="member_normal"
+                                       value="{--_TIME_VALUE--}">&nbsp;{--SECS--}
+                               {--MEMBER_TIME_COUNTER_2--}</FORM>
+                               </TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0"
+                       class="member_banner dashed">
+                       <TR>
+                               <TD height="3" class="seperator">&nbsp;</TD>
+                       </TR>
+                       <TR>
+                               <TD align="center">{--_TEMPLATE_BANNER--}</TD>
+                       </TR>
+                       <TR>
+                               <TD height="4" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+<SCRIPT language="JavaScript" type="text/javascript">
+<!--
+  document.confirm.counter.value = Timer;
+  Init();
+//-->
+</SCRIPT>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/main-welcome.tpl b/0.2.1/templates/de/html/main-welcome.tpl
new file mode 100644 (file)
index 0000000..92c349e
--- /dev/null
@@ -0,0 +1 @@
+Mailversand ist dezeit deaktiviert
diff --git a/0.2.1/templates/de/html/mediadata.tpl b/0.2.1/templates/de/html/mediadata.tpl
new file mode 100644 (file)
index 0000000..29e73da
--- /dev/null
@@ -0,0 +1,185 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="430"
+       class="mediadata dashed">
+       <TR>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+               <TD class="media_header bottom" colspan="3" align="center">{--MEDIA_DATA_GENERAL--}</TD>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom seperator" width="10" rowspan="2">&nbsp;</TD>
+               <TD class="bottom media_left" align="right">{--USER_MT_START--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__MT_START!}</TD>
+               <TD class="bottom seperator" width="10" rowspan="2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom medium" colspan="3" align="center">
+               {--USER_MT_PROJECTED_1--}{!__MT_PROJECTED!}
+               {--USER_MT_PROJECTED_2--}{!__MT_STAGE!} {--USER_MT_PROJECTED_3--}</TD>
+       </TR>
+       <TR>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+               <TD class="media_header bottom" colspan="3" align="center">{--MEDIA_DATA_MEMBERS--}</TD>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom seperator" width="10" rowspan="{!__ROWSPAN_USER!}">&nbsp;</TD>
+               <TD class="bottom media_left" align="right">{--USERS_TOTAL--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!user_count!}</TD>
+               <TD class="bottom seperator" width="10" rowspan="{!__ROWSPAN_USER!}">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_CONFIRMED--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!user_confirmed!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_UNCONFIRMED--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!user_unconfirmed!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_LOCKED--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!user_locked!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_MAX_MAILS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!user_max_mails!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_REC_PER_DAY--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!user_max_rec!}</TD>
+       </TR>
+       {!__USER_MEDIADATA!}
+       <TR>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+               <TD class="media_header bottom" colspan="3" align="center">{--MEDIA_DATA_MAIL--}</TD>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom seperator" width="10" rowspan="6">&nbsp;</TD>
+               <TD class="bottom media_left" align="right">{--USERS_STATS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!user_stats!}</TD>
+               <TD class="bottom seperator" width="10" rowspan="6">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_MAX_PER_DAY--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!max!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_MAX_REC--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!rec!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_SENT_MAILS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!sent!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--USERS_LINKS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!user_links!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--CLICK_RATE--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!_clr!}</TD>
+       </TR>
+       <TR>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+               <TD class="media_header bottom" colspan="3" align="center">{--MEDIA_DATA_POINTS--}</TD>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom seperator" width="10" rowspan="{!__ROWSPAN_POINTS!}">&nbsp;</TD>
+               <TD class="bottom media_left" align="right">{--JACKPOT_POINTS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!jackpot!}</TD>
+               <TD class="bottom seperator" width="10" rowspan="{!__ROWSPAN_POINTS!}">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--TOTAL_POINTS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__TOTAL_POINTS!}</TD>
+       </TR>
+       {!__POINTS_MEDIADATA!}
+       <TR>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+               <TD class="media_header bottom" colspan="3" align="center">{--MEDIA_DATA_REFBANNER--}</TD>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom seperator" width="10" rowspan="3">&nbsp;</TD>
+               <TD class="bottom media_left" align="right">{--TOTAL_REF_BANNER--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__REF_TOTAL!}</TD>
+               <TD class="bottom seperator" width="10" rowspan="3">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--TOTAL_REF_VIEWS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__REF_VIEWS!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--TOTAL_REF_CLICKS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__REF_CLICKS!}</TD>
+       </TR>
+       <TR>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+               <TD class="media_header bottom" colspan="3" align="center">{--MEDIA_DATA_MISC--}</TD>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom seperator" width="10" rowspan="{!__ROWSPAN_EXTRA!}">&nbsp;</TD>
+               <TD class="bottom media_left" align="right">{--TOTAL_REFCLICKS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__TOTAL_REFCLICKS!}</TD>
+               <TD class="bottom seperator" width="10" rowspan="{!__ROWSPAN_EXTRA!}">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--TOTAL_LOGINS--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__TOTAL_LOGINS!}</TD>
+       </TR>
+       {!__EXTRA_MEDIADATA!} {!__SPECIAL_MEDIADATA!}
+       <TR>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+               <TD class="media_header bottom" colspan="3" align="center">{--MEDIA_DATA_SCRIPT--}</TD>
+               <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom seperator" width="10" rowspan="4">&nbsp;</TD>
+               <TD class="bottom medium" align="center" colspan="3">
+               {--ENGINE_SOFTWARE--}:<BR>
+               <STRONG>{!TITLE!}</STRONG></TD>
+               <TD class="bottom seperator" width="10" rowspan="4z">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--ENGINE_VERSION--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!FULL_VERSION!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--ENGINE_PATCH_LEVEL--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__PATCH_LEVEL!}</TD>
+       </TR>
+       <TR>
+               <TD class="bottom media_left" align="right">{--ENGINE_PATCH_CTIME--}:</TD>
+               <TD class="bottom seperator" width="10">&nbsp;</TD>
+               <TD class="bottom media_right">{!__PATCH_CTIME!}</TD>
+       </TR>
+       <TR>
+               <TD class="media_header" colspan="5"><FONT class="tiny">[&nbsp;<STRONG><A
+                       href="{!URL!}/modules.php?module=index&amp;what=stats">{--CONTINUE_MEMBER_STATS--}</A></STRONG>&nbsp;]</FONT>
+               </TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/mediadata_extra_hrow.tpl b/0.2.1/templates/de/html/mediadata_extra_hrow.tpl
new file mode 100644 (file)
index 0000000..4b8b918
--- /dev/null
@@ -0,0 +1,5 @@
+<TR>
+       <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+       <TD class="media_header bottom" colspan="3" align="center">$content</TD>
+       <TD class="media_header bottom seperator" width="10">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/mediadata_extra_row.tpl b/0.2.1/templates/de/html/mediadata_extra_row.tpl
new file mode 100644 (file)
index 0000000..675f21d
--- /dev/null
@@ -0,0 +1,5 @@
+<TR>
+       <TD class="bottom media_left" align="right">$content[lang]:</TD>
+       <TD class="bottom seperator" width="10">&nbsp;</TD>
+       <TD class="bottom media_right">$content[value]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/mediadata_extra_row2.tpl b/0.2.1/templates/de/html/mediadata_extra_row2.tpl
new file mode 100644 (file)
index 0000000..48af74a
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD class="bottom seperator" width="10" rowspan="$content[rows]">&nbsp;</TD>
+       <TD class="bottom media_left" align="right">$content[lang]:</TD>
+       <TD class="bottom seperator" width="10">&nbsp;</TD>
+       <TD class="bottom media_right">$content[value]</TD>
+       <TD class="bottom seperator" width="10" rowspan="$content[rows]">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/.htaccess b/0.2.1/templates/de/html/member/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/de/html/member/member_advert.tpl b/0.2.1/templates/de/html/member/member_advert.tpl
new file mode 100644 (file)
index 0000000..f95e17b
--- /dev/null
@@ -0,0 +1 @@
+<!-- Kleiner 88x31 Banner ... -->
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_beg.tpl b/0.2.1/templates/de/html/member/member_beg.tpl
new file mode 100644 (file)
index 0000000..0c944bc
--- /dev/null
@@ -0,0 +1,44 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="beg_table dashed" width="500">
+       <TR>
+               <TD width="10" rowspan="9" class="seperator">&nbsp;</TD>
+               <TD height="5" class="seperator">&nbsp;</TD>
+               <TD width="10" rowspan="9" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="beg_msg" height="60">
+               {--BEG_MEMBER_YOUR_LINK--}:<BR>
+               <STRONG><A href="{!URL!}/beg.php?uid={!__BEG_UID!}">{!URL!}/beg.php?uid={!__BEG_UID!}</A></STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="beg_msg" height="60">
+               {--BEG_MEMBER_CLICKS_TOTAL--}:<BR>
+               <STRONG>{--__BEG_CLICKS--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="beg_msg seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="left" class="beg_msg">
+               <P>{--BEG_MEMBER_EARN_1--} <STRONG>{!__BEG_POINTS!}
+               {!POINTS!}</STRONG> {--BEG_MEMBER_EARN_2--} <STRONG>{!__BEG_POINTS_MAX!}
+               {!POINTS!}</STRONG> {--BEG_MEMBER_EARN_3--}</P>
+               <P>{--BEG_MEMBER_TIMEOUT_1--} <STRONG>{!__BEG_TIMEOUT!}</STRONG>
+               {--BEG_MEMBER_TIMEOUT_2--}</P>
+               <P align="right">{--BEG_MEMBER_HAVE_FUN--}</P>
+               </TD>
+       </TR>
+       <TR>
+               <TD height="5" class="beg_msg seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="5" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_beg_404.tpl b/0.2.1/templates/de/html/member/member_beg_404.tpl
new file mode 100644 (file)
index 0000000..7407237
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD colspan="4" align="center" class="member_data bottom2" height="40">
+       {--BEG_RALLYE_NO_ONE_JOINED--}</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_bonus.tpl b/0.2.1/templates/de/html/member/member_bonus.tpl
new file mode 100644 (file)
index 0000000..5ad30a9
--- /dev/null
@@ -0,0 +1,47 @@
+<P align="center"><STRONG>{--BONUS_MEMBER_HERE_IS_THE_LIST--}</STRONG><BR>
+<BR>
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="member_table dashed">
+       <TR>
+               <TD width="80" align="center" class="member_header bottom2"><STRONG>{--BONUS_RANK--}:</STRONG></TD>
+               <TD width="120" align="center" class="member_header bottom2"><STRONG>{--_UID--}:</STRONG></TD>
+
+               <TD width="100" align="center" class="member_header bottom2"><STRONG>{!POINTS!}:</STRONG></TD>
+               <TD width="220" align="center" class="member_header bottom2"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG></TD>
+       </TR>
+       {!__BONUS_ROWS!}
+       <TR>
+               <TD colspan="4" class="member_footer" align="center"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px">
+               <FONT class="tiny member_note">{--BONUS_RALLYE_NOTE--}</FONT></TD>
+       </TR>
+</TABLE>
+<BR>
+
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="member_table dashed">
+       <TR>
+               <TD class="member_header bottom2"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px"
+                       align="center"><STRONG>{--BONUS_RALLYE_CONDITIONS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="member_note bottom2"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px">
+               <OL align="left">
+                       <LI class="tiny">{--BONUS_RALLYE_CONDITION_1--}</LI>
+                       <LI class="tiny">{--BONUS_RALLYE_CONDITION_2--}</LI>
+                       <LI class="tiny">{--BONUS_RALLYE_CONDITION_3--}</LI>
+                       <LI class="tiny">{--BONUS_RALLYE_CONDITION_4--}</LI>
+                       <LI class="tiny">{--BONUS_RALLYE_CONDITION_5--}</LI>
+               </OL>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="4" class="member_footer" align="center"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px">
+               <A href="{!URL!}/modules.php?module=login&amp;what=unconfirmed">{--BONUS_START_CONFIRMING_MAILS--}</A>
+               </TD>
+       </TR>
+</TABLE>
+</P>
diff --git a/0.2.1/templates/de/html/member/member_bonus_404.tpl b/0.2.1/templates/de/html/member/member_bonus_404.tpl
new file mode 100644 (file)
index 0000000..dfe9220
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD colspan="4" align="center" class="member_data bottom2" height="40">
+       {--BONUS_RALLYE_NO_ONE_JOINED--}</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_bonus_row.tpl b/0.2.1/templates/de/html/member/member_bonus_row.tpl
new file mode 100644 (file)
index 0000000..e611879
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[cnt]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[uid]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[points]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[last]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_cat_row.tpl b/0.2.1/templates/de/html/member/member_cat_row.tpl
new file mode 100644 (file)
index 0000000..87c470b
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD align="right" height="20" class="switch_sw$content[sw]">$content[cat]&nbsp;&nbsp;</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD align="center" class="switch_sw$content[sw]">{--YES--} <INPUT
+               type="radio" name="cat[$content[id]]" class="member_normal" value="Y"$content[jy]>&nbsp;
+       {--NO--} <INPUT type="radio" name="cat[$content[id]]"
+               class="member_normal" value="N"$content[jn]></TD>
+</TR>
+<TR>
+       <TD colspan="3" height="2" class="seperator"></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_cats_footer.tpl b/0.2.1/templates/de/html/member/member_cats_footer.tpl
new file mode 100644 (file)
index 0000000..40809c7
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD colspan="3" align="center" height="30" class="member_footer">
+       <INPUT type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*
+       <INPUT type="submit" name="ok" class="member_submit"
+               value="{--SUBMIT_CHANGES--}"></TD>
+</TR>
+</TABLE>
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_cats_header.tpl b/0.2.1/templates/de/html/member/member_cats_header.tpl
new file mode 100644 (file)
index 0000000..4d6e497
--- /dev/null
@@ -0,0 +1,17 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=categories"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       align="center" class="member_main dashed">
+       <TR>
+               <TD colspan="5" height="5" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD width="5" class="seperator" rowspan="{!__ROWS!}">&nbsp;</TD>
+               <TD align="center" class="member_header" width="408"><STRONG>{--CATNAME--}</STRONG></TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD align="center" class="member_header" width="180"><STRONG>{--SELECT_CAT--}</STRONG></TD>
+               <TD width="5" class="seperator" rowspan="{!__ROWS!}">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator"></TD>
+       </TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_doubler.tpl b/0.2.1/templates/de/html/member/member_doubler.tpl
new file mode 100644 (file)
index 0000000..1ffe3f9
--- /dev/null
@@ -0,0 +1,71 @@
+<DIV align="center">{--DOUBLER_MEMBER_YOUR_LINK--}:<BR>
+<STRONG><A href="{!URL!}/doubler.php?refid={--__USERID--}">{!URL!}/doubler.php?refid={--__USERID--}</A></STRONG><BR>
+<BR>
+{--DOUBLER_MEMBER_LINK_NOTE--}</DIV>
+
+<P align="center"><STRONG class="big">{--DOUBLER_MEMBER_ALREADY_PAYOUT--}:</STRONG><BR>
+<BR>
+{!__DOUBLER_PAYOUT_HISTORY!}</P>
+
+<P align="center"><STRONG class="big">{--DOUBLER_MEMBER_NEXT_PAYOUT--}:</STRONG><BR>
+<BR>
+{!__DOUBLER_PAYOUT_NEXT!}</P>
+
+<P align="center"><STRONG class="big">{--DOUBLER_MEMBER_REF_PAYOUT--}:</STRONG><BR>
+<BR>
+{--__DOUBLER_PAYOUT_REF--}</P>
+
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="doubler_table dashed" width="520">
+       <TR>
+               <TD align="center" class="doubler_header bottom2"><STRONG
+                       class="big">{--DOUBLER_GENERAL_INFOS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="doubler_main bottom2"
+                       style="padding-left: 0px; padding-right: 10px; padding-top: 10px; padding-bottom: 10px">
+               <UL>
+
+                       <LI>{--DOUBLER_MINIMUM_IS--} <STRONG>{!__MIN_VALUE!}
+                       {!POINTS!}</STRONG> {--DOUBLER_MAXIMUM_IS--} <STRONG>{!__MAX_VALUE!}
+                       {!POINTS!}</STRONG></LI>
+                       <LI>{--DOUBLER_ALREADY_PAYED_1--} <STRONG>{!__TOTAL_VALUE!}
+                       {!POINTS!}</STRONG> {--DOUBLER_ALREADY_PAYED_2--}</LI>
+                       <LI>{--DOUBLER_POINTS_LEFT_1--} <STRONG>{!__LEFT_VALUE!}
+                       {!POINTS!}</STRONG> {--DOUBLER_POINTS_LEFT_2--}</LI>
+                       <LI>{--DOUBLER_USAGE_COUNTER_1--} <STRONG>{!__DOUBLER_COUNTER!}</STRONG>
+                       {--DOUBLER_USAGE_COUNTER_2--}</LI>
+                       <LI>{!DOUBLER_PAYOUT_TIME!}</LI>
+                       <LI><STRONG>{--DOUBLER_FULL_PAYOUT--}</STRONG></LI>
+                       <LI>{--DOUBLER_POINTS_1--} <STRONG>{!__CHARGE_VALUE!}%</STRONG>
+                       {--DOUBLER_POINTS_2--}</LI>
+                       <LI>{--DOUBLER_EXAMPLE_1--} <STRONG>500 {!POINTS!}</STRONG>
+                       --&gt; {--DOUBLER_EXAMPLE_2--} <STRONG>1000 {!POINTS!}</STRONG>{--DOUBLER_EXAMPLE_3--}</LI>
+                       <LI>{--DOUBLER_REFERRAL_1--} <STRONG>{!__REF_VALUE!}%</STRONG>
+                       {--DOUBLER_REFERRAL_2--} {--DOUBLER_REFERRAL_3--}
+                       {--DOUBLER_REFERRAL_4--}
+                       <LI>{--DOUBLER_REFERRAL_5--} <STRONG>100 {!POINTS!}</STRONG>
+                       {--DOUBLER_REFERRAL_6--} <STRONG>100 {!POINTS!}</STRONG>
+                       {--DOUBLER_REFERRAL_8--} <STRONG>300 {!POINTS!}</STRONG>
+                       {--DOUBLER_REFERRAL_8--}</LI>
+                       <LI>{--DOUBLER_REFERRAL_LINK--}</LI>
+                       <LI>{--DOUBLER_TIMEOUT_1--} <STRONG>{!__TIMEOUT_MARK!}</STRONG>
+                       {--DOUBLER_TIMEOUT_2--}</LI>
+                       <LI>{--DOUBLER_HAVE_FUN--}</LI>
+                       </OL>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="doubler_header bottom2"><STRONG
+                       class="big">{--DOUBLER_REGISTER_ADVERT--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="doubler_main"
+                       style="padding-left: 10px; padding-right: 10px; padding-top: 10px; padding-bottom: 10px">
+               {--DOUBLER_YOUR_ADVERTISING_HERE--} <STRONG><A
+                       href="{!URL!}/modules.php?module=index&amp;what=impressum"
+                       target="_blank">{--DOUBLER_CONTACT_US--}</A></STRONG></TD>
+       </TR>
+</TABLE>
+</DIV>
diff --git a/0.2.1/templates/de/html/member/member_doubler_list.tpl b/0.2.1/templates/de/html/member/member_doubler_list.tpl
new file mode 100644 (file)
index 0000000..2bab633
--- /dev/null
@@ -0,0 +1,17 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="doubler_list dashed">
+       <TR>
+               <TD class="doubler_header bottom2 right2" align="center" width="100">
+               <STRONG>{--_UID--}</STRONG></TD>
+               <TD class="doubler_header bottom2 right2" align="center" width="100">
+               <STRONG>{--REF_UID--}</STRONG></TD>
+               <TD class="doubler_header bottom2 right2" align="center" width="160">
+               <STRONG>{!POINTS!}</STRONG></TD>
+               <TD class="doubler_header bottom2" align="center" width="160"><STRONG>{--DOUBLER_TIMEMARK--}</STRONG>
+               </TD>
+       </TR>
+       $content
+       <TR>
+               <TD colspan="4" align="center" class="doubler_footer">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_doubler_list_rows.tpl b/0.2.1/templates/de/html/member/member_doubler_list_rows.tpl
new file mode 100644 (file)
index 0000000..d8a9447
--- /dev/null
@@ -0,0 +1,10 @@
+<TR>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"
+               width="100">$content[uid]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"
+               width="100">$content[rid]</TD>
+       <TD class="switch_sw$content[sw] bottom2 right2" align="center"
+               width="160">$content[points]</TD>
+       <TD class="switch_sw$content[sw] bottom2" align="center" width="160">
+       $content[stamp]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_footer.tpl b/0.2.1/templates/de/html/member/member_footer.tpl
new file mode 100644 (file)
index 0000000..0eed77d
--- /dev/null
@@ -0,0 +1,2 @@
+</TABLE>
+<!-- Fuss unterhalb des Mitgliederbereiches -->
diff --git a/0.2.1/templates/de/html/member/member_goto_top.tpl b/0.2.1/templates/de/html/member/member_goto_top.tpl
new file mode 100644 (file)
index 0000000..6ea6a04
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD height="1%" align="center" class="guest_advert"><SMALL><A
+               href="#TOP">{--TOP--}</A></SMALL></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_header.tpl b/0.2.1/templates/de/html/member/member_header.tpl
new file mode 100644 (file)
index 0000000..d469e34
--- /dev/null
@@ -0,0 +1,22 @@
+<A name="TOP"></A>
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%" class="member_main">
+<TR>
+       <TD colspan="2" align="center" valign="top" class="member_title">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%" class="guest">
+               <TR>
+                       <TD colspan="3" align="center">
+                               <STRONG><BIG>-&nbsp;-&nbsp;- <A title="{!MAIN_TITLE!}"
+                                       style="cursor: default; background: none; text-decoration: none"
+                                       class="member_header">{!MAIN_TITLE!}</A>&nbsp;-&nbsp;-&nbsp;-</BIG></STRONG>
+                               <BR>
+                       </TD>
+               </TR>
+               <TR>
+                       <TD width="200"><FONT class="guest_header">&nbsp;&nbsp;Hallo
+                       $username!</FONT></TD>
+                       <TD align="center"><FONT class="guest_header">{!SLOGAN!}</FONT></TD>
+                       <TD width="200" align="right"><FONT class="guest_header">$date_time&nbsp;&nbsp;</FONT></TD>
+               </TR>
+               </TABLE>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_holiday_deactivate.tpl b/0.2.1/templates/de/html/member/member_holiday_deactivate.tpl
new file mode 100644 (file)
index 0000000..8566985
--- /dev/null
@@ -0,0 +1,54 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=holiday"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="member_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="bottom member_title2"
+                       height="30"><STRONG>{--HOLIDAY_MEMBER_DEACTIVATE_TITLE--}</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right" width="50%">{--HOLIDAY_MEMBER_TSTART--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center" width="50%">{--__HOLIDAY_START--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--HOLIDAY_MEMBER_TEND--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--__HOLIDAY_END--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--HOLIDAY_MEMBER_TLOCK--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--__HOLIDAY_LOCK--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><FONT class="member_note">{--HOLIDAY_DEACTIVATE_NOTES--}</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="member_footer"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="stop" class="member_submit"
+                       value="{--HOLIDAY_STOP--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_holiday_form.tpl b/0.2.1/templates/de/html/member/member_holiday_form.tpl
new file mode 100644 (file)
index 0000000..d0aa7aa
--- /dev/null
@@ -0,0 +1,68 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=holiday"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="600"
+       class="member_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="bottom member_title2"
+                       height="30"><STRONG>{--HOLIDAY_MEMBER_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--HOLIDAY_MEMBER_TSTART--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--_START_DAY--}. {--_START_MONTH--}.
+               {--_START_YEAR--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--HOLIDAY_MEMBER_TEND--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="center">{--_END_DAY--}. {--_END_MONTH--}.
+               {--_END_YEAR--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><FONT class="member_note">{--HOLIDAY_MAX_DAYS_1--}<STRONG>{--__HOLIDAY_MAX--}</STRONG>{--HOLIDAY_MAX_DAYS_2--}
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center">{--HOLIDAY_COMMENTS--}:<BR>
+               <TEXTAREA name="comments" class="member_normal" cols="50" rows="6"></TEXTAREA>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><FONT class="member_note">{--HOLIDAY_NOTES--}</FONT>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" class="seperator bottom" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="member_footer"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="member_submit"
+                       value="{--HOLIDAY_ADD--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_html_mail_settings.tpl b/0.2.1/templates/de/html/member/member_html_mail_settings.tpl
new file mode 100644 (file)
index 0000000..b19c5c0
--- /dev/null
@@ -0,0 +1,34 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=html_mail"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="580"
+       class="member_table dashed">
+       <TR>
+               <TD align="center" colspan="2" class="member_title2 bottom2"
+                       height="30"><STRONG>{--MEMBER_HTML_INTRO--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2">{--MEMBER_HTML_TEXT--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="50%" align="right">{--YES--}:&nbsp;<INPUT type="radio"
+                       name="html" class="member_normal" value="Y"{!HTML_Y!}>&nbsp;&nbsp;</TD>
+               <TD width="50%" align="left">&nbsp;&nbsp;{--NO--}:&nbsp;<INPUT
+                       type="radio" name="html" class="member_normal" value="N"{!HTML_N!}></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="member_footer"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="member_submit"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_list_beg.tpl b/0.2.1/templates/de/html/member/member_list_beg.tpl
new file mode 100644 (file)
index 0000000..95731f3
--- /dev/null
@@ -0,0 +1,45 @@
+<P align="center"><STRONG>{--BEG_MEMBER_HERE_IS_THE_LIST--}</STRONG><BR>
+<BR>
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="member_table dashed">
+       <TR>
+               <TD width="80" align="center" class="member_header bottom2"><STRONG>{--BEG_RANK--}:</STRONG></TD>
+               <TD width="120" align="center" class="member_header bottom2"><STRONG>{--_UID--}:</STRONG></TD>
+               <TD width="100" align="center" class="member_header bottom2"><STRONG>{--BEG_POINTS--}:</STRONG></TD>
+               <TD width="220" align="center" class="member_header bottom2"><STRONG>{--ADMIN_LAST_ONLINE--}:</STRONG></TD>
+       </TR>
+       {--__BEG_ROWS--}
+       <TR>
+               <TD colspan="4" class="member_footer" align="center"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px">
+               <FONT class="tiny member_note">{--BEG_RALLYE_NOTE--}</FONT></TD>
+       </TR>
+</TABLE>
+<BR>
+
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="member_table dashed">
+       <TR>
+               <TD class="member_header bottom2"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px"
+                       align="center"><STRONG>{--BEG_RALLYE_CONDITIONS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD class="member_note bottom2"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px">
+               <OL align="left">
+                       <LI class="tiny">{--BEG_RALLYE_CONDITION_1--}</LI>
+                       <LI class="tiny">{--BEG_RALLYE_CONDITION_2--}</LI>
+                       <LI class="tiny">{--BEG_RALLYE_CONDITION_3--}</LI>
+                       <LI class="tiny">{--BEG_RALLYE_CONDITION_4--}</LI>
+               </OL>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="4" class="member_footer" align="center"
+                       style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px">
+               <A href="{!URL!}/modules.php?module=login&amp;what=beg">{--BEG_LINK_HERE--}</A>
+               </TD>
+       </TR>
+</TABLE>
+</P>
diff --git a/0.2.1/templates/de/html/member/member_list_beg_row.tpl b/0.2.1/templates/de/html/member/member_list_beg_row.tpl
new file mode 100644 (file)
index 0000000..e611879
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[cnt]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[uid]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[points]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[last]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_login_js.tpl b/0.2.1/templates/de/html/member/member_login_js.tpl
new file mode 100644 (file)
index 0000000..e065ede
--- /dev/null
@@ -0,0 +1,11 @@
+<SCRIPT language="JavaScript" type="text/javascript">
+<!--
+function Loader()
+{
+       document.location.href = "{!URL!}/modules.php?module=login";
+}
+
+window.setTimeout("Loader()", 2000);
+
+//-->
+</SCRIPT>
diff --git a/0.2.1/templates/de/html/member/member_menu_bottom.tpl b/0.2.1/templates/de/html/member/member_menu_bottom.tpl
new file mode 100644 (file)
index 0000000..17830d5
--- /dev/null
@@ -0,0 +1,3 @@
+<TR>
+       <TD class="member_menu_bottom menu_$WHAT">$content</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_menu_row.tpl b/0.2.1/templates/de/html/member/member_menu_row.tpl
new file mode 100644 (file)
index 0000000..c0ee533
--- /dev/null
@@ -0,0 +1,3 @@
+<TR>
+       <TD class="member_menu_row menu_$WHAT">$content</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_menu_title.tpl b/0.2.1/templates/de/html/member/member_menu_title.tpl
new file mode 100644 (file)
index 0000000..4836b9f
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD align="center" colspan="2" class="member_menu_title"><STRONG>:::&nbsp;$content&nbsp;:::</STRONG>
+       </TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_menu_whats.tpl b/0.2.1/templates/de/html/member/member_menu_whats.tpl
new file mode 100644 (file)
index 0000000..3c90564
--- /dev/null
@@ -0,0 +1,3 @@
+<TR>
+       <TD class="member_menu_whats">&nbsp;<STRONG><BIG>&middot;</BIG></STRONG>&nbsp;&nbsp;$content</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_mydata_button.tpl b/0.2.1/templates/de/html/member/member_mydata_button.tpl
new file mode 100644 (file)
index 0000000..d4d11ab
--- /dev/null
@@ -0,0 +1,4 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=mydata"
+       method="POST" style="margin-bottom: 0px"><INPUT type="submit"
+       name="edit" class="member_reset" value="{--MEMBER_EDIT_PROFILE--}">
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_mydata_edit.tpl b/0.2.1/templates/de/html/member/member_mydata_edit.tpl
new file mode 100644 (file)
index 0000000..24f4857
--- /dev/null
@@ -0,0 +1,125 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=mydata"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="530"
+       class="member_main dashed" align="center">
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" rowspan="25">&nbsp;</TD>
+               <TD width="225" align="right">{--YOUR_LOGIN--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="225"><STRONG>{!UID_VALUE!}</STRONG></TD>
+               <TD width="10" rowspan="25">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--SEX--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SELECT name="sex" size="1" class="member_select">
+                       <OPTION value="M"{--M_DEFAULT--}>{--SEX_M--}</OPTION>
+                       <OPTION value="F"{--F_DEFAULT--}>{--SEX_F--}</OPTION>
+                       <OPTION value="C"{--C_DEFAULT--}>{--SEX_C--}</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--SURNAME--}, {--FAMILY_NAME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="surname" class="member_normal"
+                       size="15" maxlength="255" value="$DATA[0]">&nbsp; <INPUT
+                       type="text" name="family_name" class="member_normal" size="15"
+                       maxlength="255" value="$DATA[1]"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--STREET_NR--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="street_nr" class="member_normal"
+                       size="25" maxlength="255" value="$DATA[2]"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--COUNTRY--}, {--ZIP--}, {--CITY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{!__COUNTRY_CONTENT!}&nbsp; <INPUT type="text" name="zip"
+                       class="member_normal" size="5" maxlength="10" value="$DATA[4]">&nbsp;
+               <INPUT type="text" name="city" class="member_normal" size="20"
+                       maxlength="255" value="$DATA[5]"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADDY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="addy" class="member_normal"
+                       size="30" maxlength="255" value="$DATA[6]"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--BIRTHDAY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD>{!DOB!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="3">{--MAX_REC_LIST--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator member_note_bg">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="member_note_bg"><SPAN
+                       class="member_note">{--MYDATA_NOTE--}</SPAN></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator member_note_bg">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--PASS_1--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="password" name="pass1" class="member_normal"
+                       size="25" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--PASS_2--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="password" name="pass2" class="member_normal"
+                       size="25" maxlength="255"></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center"><INPUT type="reset"
+                       class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="save" class="member_submit"
+                       value="{--SAVE_CHANGES--}"></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_mydata_locked.tpl b/0.2.1/templates/de/html/member/member_mydata_locked.tpl
new file mode 100644 (file)
index 0000000..8c04c98
--- /dev/null
@@ -0,0 +1,12 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="member_main dashed" align="center">
+       <TR>
+               <TD height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center">{--MEMBER_PROFILE_LOCKED_1.$DATA[13].MEMBER_PROFILE_LOCKED_2--}</TD>
+       </TR>
+       <TR>
+               <TD height="7" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_mydata_overview.tpl b/0.2.1/templates/de/html/member/member_mydata_overview.tpl
new file mode 100644 (file)
index 0000000..4ed6250
--- /dev/null
@@ -0,0 +1,117 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480"
+       class="member_main dashed" align="center">
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" rowspan="27" class="seperator">&nbsp;</TD>
+               <TD colspan="3" align="center">{!CHANGE!}</TD>
+               <TD width="10" rowspan="27" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="225" align="right">{--YOUR_LOGIN--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="225"><STRONG>{!UID_VALUE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="225" align="right">{--SEX--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="225"><STRONG>$DATA[10]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="225" align="right">{--SURNAME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="225"><STRONG>$DATA[0]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--FAMILY_NAME--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>$DATA[1]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--STREET_NR--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>$DATA[2]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--COUNTRY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>$DATA[3]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ZIP--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>$DATA[4]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--CITY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>$DATA[5]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--ADDY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>$DATA[6]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--BIRTHDAY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>{!DOB!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--MAILS_PER_DAY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>$DATA[11]</STRONG>&nbsp;({--TODAY--}: <STRONG>$DATA[12]</STRONG>)
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="right">{--PROFILE_LAST_CHANGE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><STRONG>$DATA[13]</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center">{!CHANGE!}</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_newsletter.tpl b/0.2.1/templates/de/html/member/member_newsletter.tpl
new file mode 100644 (file)
index 0000000..7499eff
--- /dev/null
@@ -0,0 +1,29 @@
+<DIV align="center">
+<FORM action="{!URL!}/modules.php?module=login&amp;what=newsletter"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="member_table dashed">
+       <TR>
+               <TD class="member_header bottom2" colspan="2"><STRONG>{--NL_MEMBER_TITLE--}:</STRONG>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="right" height="30" width="320">
+               {--NL_MEMBER_RECEIVE_STATUS--}:</TD>
+               <TD width="200">&nbsp;<STRONG>{--__STATUS_VALUE--}</STRONG><BR>
+               <FONT class="tiny">{--__UNTIL_VALUE--}</FONT></TD>
+       </TR>
+       <TR>
+               <TD class="bottom2" colspan="2" align="center"
+                       style="padding-top: 10px; padding-bottom: 10px"><FONT
+                       class="member_note">{--NL_MEMBER_NOTE--}</FONT></TD>
+       </TR>
+       <TR>
+               <TD class="member_footer" colspan="2" align="center"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="member_submit"
+                       value="{--NL_SUBMIT--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+</DIV>
diff --git a/0.2.1/templates/de/html/member/member_newsletter_note.tpl b/0.2.1/templates/de/html/member/member_newsletter_note.tpl
new file mode 100644 (file)
index 0000000..a7d696c
--- /dev/null
@@ -0,0 +1,17 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="480">
+       <TR>
+               <TD>Unseren {!MT_WORD!} <STRONG>{!MAIN_TITLE!}</STRONG>
+               finanzieren wir zum Teil durch Werbung, die Sie ohne Verg&uuml;tung
+               von uns ab und an in Form von Newslettern bekommen.<BR>
+               <BR>
+               Damit wir unseren Service weiterhin <STRONG>kostenlos</STRONG> Ihnen
+               anbieten k&ouml;nnen, aber gleichzeitig auch die Kosten des durch Sie
+               verursachten Transfervolumens wieder reinbekommen, m&ouml;chten wir
+               Sie um eine kleine Spende bitten, die wir
+               &quot;Abbestellgeb&uuml;hr&quot; nennen.<BR>
+               <BR>
+               Sie finden diese weiter oben. Sollten Sie damit dennoch nicht
+               einverstanden sein, k&ouml;nnen wir gerne Ihren Account l&ouml;schen.
+               Sie erhalten dann auch keine weiteren Mails mehr von uns.</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/member/member_nickname_form.tpl b/0.2.1/templates/de/html/member/member_nickname_form.tpl
new file mode 100644 (file)
index 0000000..56a5822
--- /dev/null
@@ -0,0 +1,48 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=nickname"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="member_table dashed">
+       <TR>
+               <TD colspan="5" align="center" class="member_title2 bottom2"
+                       height="30"><STRONG>{--NICKNAME_CHANGE_NICKNAME_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="5" class="seperator">&nbsp;</TD>
+               <TD colspan="3">{--NICKNAME_CHANGE_NICKNAME_INTRO--}</TD>
+               <TD width="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="5" class="seperator">&nbsp;</TD>
+               <TD align="right">{--NICKNAME_ENTER_NICKNAME--}:</TD>
+               <TD width="5" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="nickname" class="member_normal"
+                       size="30" maxlength="30" value="{--__NICKNAME--}"></TD>
+               <TD width="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" class="seperator" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="5" class="seperator">&nbsp;</TD>
+               <TD colspan="3" align="center">{--NICKNAME_ALLOWED_CHARS--}</TD>
+               <TD width="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="5" class="member_footer seperator">&nbsp;</TD>
+               <TD colspan="3" class="member_footer" align="center"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="member_submit"
+                       value="{--NICKNAME_SUBMIT--}"></TD>
+               <TD width="5" class="member_footer seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_order-back.tpl b/0.2.1/templates/de/html/member/member_order-back.tpl
new file mode 100644 (file)
index 0000000..3f2812e
--- /dev/null
@@ -0,0 +1,8 @@
+<FORM action="{!URL!}/modules.php" method="GET"><INPUT
+       type="hidden" name="module" value="login"> <INPUT type="hidden"
+       name="what" value="order"> <STRONG><SPAN
+       class="member_done">{--MEMBER_THANX_ORDER--}</SPAN></STRONG><BR>
+<BR>
+<BR>
+<INPUT type="submit" class="member_reset"
+       value="{--MEMBER_CONTINUE_AREA--}"></FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_order-html_ext.tpl b/0.2.1/templates/de/html/member/member_order-html_ext.tpl
new file mode 100644 (file)
index 0000000..b7ed4cb
--- /dev/null
@@ -0,0 +1,9 @@
+<TR>
+       <TD width="10" class="top2 bottom2 seperator">&nbsp;</TD>
+       <TD class="top2 bottom2" colspan="3" align="center"><STRONG>{--MEMBER_HTML_VALID_TAGS--}:</STRONG><BR>
+       $content <INPUT type="hidden" name="html" value="Y"></TD>
+       <TD width="10" class="top2 bottom2 seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="5" class="seperator" height="5">&nbsp;</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_order-html_intro.tpl b/0.2.1/templates/de/html/member/member_order-html_intro.tpl
new file mode 100644 (file)
index 0000000..639087a
--- /dev/null
@@ -0,0 +1,13 @@
+<TR>
+       <TD colspan="2" class="member_title2 bottom2" height="30"
+               align="center"><STRONG>{--MEMBER_HTML_ORDER_INTRO--}</STRONG></TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator" height="5">&nbsp;</TD>
+</TR>
+<TR>
+       <TD valign="top" height="20" align="right">{--MEMBER_HTML_MSG--}:&nbsp;<INPUT
+               type="radio" name="html" class="member_normal" value="Y">&nbsp;&nbsp;</TD>
+       <TD valign="top">&nbsp;&nbsp;{--MEMBER_NORMAL_MSG--}:&nbsp;<INPUT
+               type="radio" name="html" class="member_normal" value="N" checked></TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_order-zip1.tpl b/0.2.1/templates/de/html/member/member_order-zip1.tpl
new file mode 100644 (file)
index 0000000..34623ed
--- /dev/null
@@ -0,0 +1,32 @@
+<TR>
+       <TD colspan="2" align="center" class="member_title2 bottom2"
+               height="30"><STRONG>{--MEMBER_ORDER_PAGE1_INTRO--}</STRONG></TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator" height="5">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="2" align="center">Geben Sie hier die ersten ein bis
+       drei Stellen der Postleitzahl ein, in der gesendet werden soll.<BR>
+       <BR>
+       Beispiele:
+       <UL>
+               <LI><STRONG>1</STRONG> : Sendet nur an Mitglieder, deren
+               Postleitzahl mit 1 anf&auml;ngt.</LI>
+               <LI><STRONG>12</STRONG> : Sendet nur an Mitglieder, deren
+               Postleitzahl mit 12 anf&auml;ngt.</LI>
+               <LI><STRONG>123</STRONG> : Sendet nur an Mitglieder, deren
+               Postleitzahl mit 123 anf&auml;ngt.</LI>
+       </UL>
+       <BR>
+       Oder geben Sie nichts ein, wenn Sie diese Option nicht w&uuml;nschen.</TD>
+</TR>
+<TR>
+       <TD colspan="2" class="seperator" height="5">&nbsp;</TD>
+</TR>
+<TR>
+       <TD width="50%" align="right">{--MEMBER_ENTER_ZIP_CODE--}:&nbsp;&nbsp;</TD>
+       <TD width="50%"><INPUT type="text" name="zip"
+               class="member_normal" size="5" maxlength="6" value="$content[zip]"></TD>
+</TR>
+$content[add]
diff --git a/0.2.1/templates/de/html/member/member_order-zip2.tpl b/0.2.1/templates/de/html/member/member_order-zip2.tpl
new file mode 100644 (file)
index 0000000..5a50282
--- /dev/null
@@ -0,0 +1,24 @@
+<TR>
+       <TD colspan="5" align="center" class="member_title2 bottom2"
+               height="30"><STRONG>{--MEMBER_ORDER_PAGE2_INTRO--}</STRONG></TD>
+</TR>
+<TR>
+       <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+</TR>
+<TR>
+       <TD width="10" class="seperator">&nbsp;</TD>
+       <TD align="center" colspan="3">
+       <TABLE border="0" cellspacing="0" cellpadding="0"
+               class="member_main dashed" height="30">
+               <TR>
+                       <TD width="10" class="seperator">&nbsp;</TD>
+                       <TD align="right">{--MEMBER_ENTER_ZIP_CODE--}</TD>
+                       <TD width="10" class="seperator">&nbsp;</TD>
+                       <TD><INPUT type="text" name="zip" class="member_normal" size="5"
+                               maxlength="6" value="$content">
+                       <TD width="10" class="seperator">&nbsp;</TD>
+               </TR>
+       </TABLE>
+       </TD>
+       <TD width="10" class="seperator">&nbsp;</TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_order_back.tpl b/0.2.1/templates/de/html/member/member_order_back.tpl
new file mode 100644 (file)
index 0000000..4b825ed
--- /dev/null
@@ -0,0 +1,5 @@
+<FORM action="{!URL!}/modules.php" method="GET" target="_parent">
+<INPUT type="hidden" name="module" value="login"> <INPUT
+       type="hidden" name="what" value="order"> <INPUT type="hidden"
+       name="order" value="$content"> <INPUT type="submit"
+       class="member_reset" value="{--MEMBER_GO_BACK--}"></FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_order_frametester.tpl b/0.2.1/templates/de/html/member/member_order_frametester.tpl
new file mode 100644 (file)
index 0000000..e7527af
--- /dev/null
@@ -0,0 +1,9 @@
+<FRAMESET rows="80,*,80" frameborder="no" border="0" framespacing="0">
+       <FRAME name="back"
+               src="{!URL!}/modules.php?module=frametester&frame=back&order={!__ORDER_VALUE!}"
+               frameborder="no" scrolling="no" noresize>
+       <FRAME name="url" src="{!__URL_VALUE!}" frameborder="no" noresize>
+       <FRAME name="send"
+               src="{!URL!}/modules.php?module=frametester&frame=send&order={!__ORDER_VALUE!}"
+               frameborder="no" scrolling="no" noresize>
+</FRAMESET>
diff --git a/0.2.1/templates/de/html/member/member_order_page1.tpl b/0.2.1/templates/de/html/member/member_order_page1.tpl
new file mode 100644 (file)
index 0000000..d7ea035
--- /dev/null
@@ -0,0 +1,16 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=order"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="member_table dashed" align="center">
+       {--MEMBER_ZIP_CONTENT--} {--MEMBER_HTML_EXTENSION--}
+       <TR>
+               <TD colspan="2" class="seperator bottom2" height="5">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center" class="member_footer"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="data" class="member_submit"
+                       value="{--ORDER_PAGE_2--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_order_page2.tpl b/0.2.1/templates/de/html/member/member_order_page2.tpl
new file mode 100644 (file)
index 0000000..5bbf785
--- /dev/null
@@ -0,0 +1,127 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=order"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="660"
+       class="member_table dashed" align="center">
+       {--ZIP_OUTPUT--}
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--SELECT_MAIL_TYPE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SELECT name="type" size="1" class="member_select">
+                       <OPTION value="" disabled>{--PLEASE_SELECT--}</OPTION>
+                       {--TYPE_SELECTION--}
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--SELECT_CATEGORY--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><SELECT name="cat" size="1" class="member_select">
+                       <OPTION value="" disabled>{--PLEASE_SELECT--}</OPTION>
+                       {!CATEGORY_SELECTION!}
+               </SELECT></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ENTER_RECEIVER--}: {--MEMBER_MIN_RECS_1--} <STRONG>{!__MIN_VALUE!}</STRONG>{--MEMBER_MIN_RECS_2--}
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="receiver" class="member_normal"
+                       size="4" maxlength="5" value="{--TARGET--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ENTER_SUBJECT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><INPUT type="text" name="subject" class="member_normal"
+                       size="30" maxlength="150" value="{--SUBJECT--}"></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       {--MEMBER_HTML_EXTENSION--}
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD align="right">{--ENTER_TEXT--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD><TEXTAREA name="text" class="member_normal" rows="10"
+                       cols="50">{--TEXT--}</TEXTAREA></TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="3" align="center" class="member_note"><STRONG>{--MEMBER_PLEASE_NOTE--}</STRONG><BR>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD colspan="3" align="center" class="member_note">
+               <DIV align="left">
+               <OL>
+                       <LI>Bitte pr&uuml;fen Sie <STRONG>unbedingt vor</STRONG> dem
+                       Absenden die Verf&uuml;gbarkeit und <STRONG><U>Framekiller-Freiheit</U></STRONG>
+                       ihrer beworbenen Adresse!</LI>
+                       <LI>Unsere AGBs vergessen? <STRONG>[<A
+                               href="{!URL!}/agb.php" target="_blank">Hier sind sie nochmal</A>]</STRONG>.</LI>
+                       <LI>Gesperrte URLs k&ouml;nnen nicht ein zweites Mal beworben
+                       werden.</LI>
+                       <LI>Ihre Seite wird vor dem entg&uuml;ltigem Absenden auf
+                       Framekiller hin automatisch <U>doppelt</U> gepr&uuml;ft. Sollten Sie
+                       also nur Ihre beworbene Seite sehen, enth&auml;lt diese einen
+                       Frame-Killer.</LI>
+                       <LI>Ist Sponsor-Mail ausgew&auml;hlt, wird die beworbene Seite
+                       nicht geladen, sondern eine neutrale Seite mit unseren
+                       Sponsor-Bannern!</LI>
+                       <LI>Fremde {!MT_WORD2!} d&uuml;rfen w&auml;hrend der gesamten
+                       Startphase (bis 100 aktive Mitglieder) nicht mehr beworben werden und
+                       werden von uns abgelehnt!</LI>
+               </OL>
+               </DIV>
+               </TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="5" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator member_footer">&nbsp;</TD>
+               <TD class="member_footer" align="right">{--MEMBER_ENTER_URL--}:</TD>
+               <TD width="10" class="seperator member_footer">&nbsp;</TD>
+               <TD class="member_footer"><INPUT type="text" name="url"
+                       class="member_normal" size="60" maxlength="350" value="{--T_URL--}">
+               </TD>
+               <TD width="10" class="seperator member_footer">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="10" class="seperator member_footer">&nbsp;</TD>
+               <TD class="member_footer" colspan="3" align="center"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="frametester" class="member_submit"
+                       value="{--CONTINUE_FRAMETESTER--}"></TD>
+               <TD width="10" class="seperator member_footer">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_order_points.tpl b/0.2.1/templates/de/html/member/member_order_points.tpl
new file mode 100644 (file)
index 0000000..595a2d1
--- /dev/null
@@ -0,0 +1,19 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       class="member_main dashed" align="center">
+       <TR>
+               <TD align="center" height="50" class="member_main"
+                       style="padding-left: 5px; padding-right: 5px">
+               {--MEMBER_POINTS_LEFT--}:<BR>
+               <SPAN class="member_done"><STRONG>$content</STRONG> {!POINTS!}</SPAN>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" height="50" class="member_main"
+                       style="padding-left: 5px; padding-right: 5px">
+               {--MEMBER_ORDER_MAX_ALLOWED--}:<BR>
+               <SPAN class="member_done">{--ORDER_MAX_VALUE--}</SPAN></TD>
+       </TR>
+</TABLE>
+</DIV>
+<BR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_order_send.tpl b/0.2.1/templates/de/html/member/member_order_send.tpl
new file mode 100644 (file)
index 0000000..b869a7c
--- /dev/null
@@ -0,0 +1,4 @@
+<FORM action="{!URL!}/modules.php?module=order&amp;order=$content"
+       method="POST" target="_parent"><INPUT type="submit"
+       class="member_submit" name="ok" value="{--MEMBER_DO_ORDER--}">
+</FORM>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_payout.tpl b/0.2.1/templates/de/html/member/member_payout.tpl
new file mode 100644 (file)
index 0000000..73d9d85
--- /dev/null
@@ -0,0 +1,18 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="680"
+       class="member_table dashed" align="center">
+       <TR>
+               <TD colspan="5" align="center" class="member_title2" height="30">
+               <STRONG>{--PAYOUT_MEMBER_LIST_PAYOUTS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="180" align="center" class="member_title2 bottom2 right2"><STRONG>{--PAYOUT_TOTAL_PAYOUT--}</STRONG></TD>
+               <TD width="130" align="center" class="member_title2 bottom2 right2"><STRONG>{--PAYOUT_TARGET_ACCOUNT2--}</STRONG></TD>
+               <TD width="100" align="center" class="member_title2 bottom2 right2"><STRONG>{--PAYOUT_TARGET_BANK2--}</STRONG></TD>
+               <TD width="150" align="center" class="member_title2 bottom2 right2"><STRONG>{--PAYOUT_TIMESTAMP--}</STRONG></TD>
+               <TD width="120" align="center" class="member_title2 bottom2"><STRONG>{--PAYOUT_MEMBER_STATUS--}</STRONG></TD>
+       </TR>
+       {--__PAYOUT_ROWS--}
+       <TR>
+               <TD colspan="5" class="seperator member_footer" height="10">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/member/member_payout_form.tpl b/0.2.1/templates/de/html/member/member_payout_form.tpl
new file mode 100644 (file)
index 0000000..80a1fb8
--- /dev/null
@@ -0,0 +1,61 @@
+<FORM
+       action="{!URL!}/modules.php?module=login&amp;what=payout&amp;payout=$_GET[payout]"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="440"
+       class="member_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="member_title2 bottom2"
+                       height="30"><STRONG>{--PAYOUT_NOW_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="215" height="20" align="right">{--PAYOUT_SELECTED_TYPE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="215"><STRONG>{--PAYOUT_TYPE_VALUE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_MAX_PAYOUT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><STRONG>{--PAYOUT_MAX_VALUE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_WANT_PAYOUT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="payout" class="member_normal"
+                       size="10" maxlength="255" value="{--PAYOUT_MAX_VALUE--}"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_TARGET_ACCOUNT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="account" class="member_normal"
+                       size="20" maxlength="255"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_TARGET_BANK--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="bank" class="member_normal"
+                       size="20" maxlength="255"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_OPTIONAL_PASSWORD--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="password" name="pass" class="member_normal"
+                       size="10" maxlength="255"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="member_footer"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="member_submit"
+                       value="{--PAYOUT_SEND_NOW--}"></TD>
+       </TR>
+</TABLE>
+<BR>
+<STRONG class="member_note"> {--PAYOUT_MEMBER_NOTE--}<BR>
+<BR>
+<A href="{!URL!}/agb.php" target="_blank">{--PAYOUT_REMEMBER_TERMS--}</A>
+</STRONG></FORM>
diff --git a/0.2.1/templates/de/html/member/member_payout_form_banner.tpl b/0.2.1/templates/de/html/member/member_payout_form_banner.tpl
new file mode 100644 (file)
index 0000000..1ed040d
--- /dev/null
@@ -0,0 +1,61 @@
+<FORM
+       action="{!URL!}/modules.php?module=login&amp;what=payout&amp;payout=$_GET[payout]"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="440"
+       class="member_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="member_title2 bottom2"
+                       height="30"><STRONG>{--PAYOUT_NOW_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD width="215" height="20" align="right">{--PAYOUT_SELECTED_TYPE--}:</TD>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD width="215"><STRONG>{--PAYOUT_TYPE_VALUE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_MAX_PAYOUT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><STRONG>{--PAYOUT_MAX_VALUE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_WANT_PAYOUT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="payout" class="member_normal"
+                       size="10" maxlength="255" value="{--PAYOUT_MAX_VALUE--}"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_TARGET_URL--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="turl" class="member_normal"
+                       size="20" maxlength="500" value="http://"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_ALTERNATE_TEXT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="alt" class="member_normal" size="10"
+                       maxlength="30"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--PAYOUT_OPTIONAL_BANNER--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="banner" class="member_normal"
+                       size="20" maxlength="500"></STRONG>&nbsp;(*)</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="member_footer"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="member_submit"
+                       value="{--PAYOUT_SEND_NOW--}"></TD>
+       </TR>
+</TABLE>
+<BR>
+<!-- Hinweise zur "Auszahlung" in Bannerviews, Textlinkklicks, etc. -->
+<STRONG class="member_note">(*):&nbsp;{--PAYOUT_BANNER_NOTE--}</STRONG>
+<!-- Hinweise zur "Auszahlung" in Bannerviews, Textlinkklicks, etc. -->
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_payout_row.tpl b/0.2.1/templates/de/html/member/member_payout_row.tpl
new file mode 100644 (file)
index 0000000..b8f537f
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[points]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[acc]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[bank]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[stamp]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[status]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_points.tpl b/0.2.1/templates/de/html/member/member_points.tpl
new file mode 100644 (file)
index 0000000..f8112ba
--- /dev/null
@@ -0,0 +1,99 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_main dashed" align="center">
+       <TR>
+               <TD colspan="5" height="3" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD width="10" rowspan="{!__ROWS_VALUE!}"></TD>
+               <TD align="center" width="228" class="member_header"><STRONG>{--REF_LEVEL--}</STRONG></TD>
+               <TD width="2" class="member_header"></TD>
+               <TD align="center" width="228" class="member_header"><STRONG>{!POINTS!}</STRONG></TD>
+               <TD width="2" class="member_header"></TD>
+               <TD align="center" width="120" class="member_header"><STRONG>{--REFERRALS--}</STRONG></TD>
+               <TD width="10" rowspan="{!__ROWS_VALUE!}"></TD>
+       </TR>
+       {!__REF_LEVEL_ROWS!}
+       <TR>
+               <TD colspan="3" height="5" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD class="member_data">&nbsp;&nbsp;{--POINTS_USED--}</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;&nbsp;{!__USED_VALUE!} {!POINTS!}</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="1" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD class="member_data">&nbsp;&nbsp;<STRONG>{--POINTS_SUM--}</STRONG></TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;&nbsp;<STRONG>{!__TPTS_VALUE!}
+               {!POINTS!}</STRONG></TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;&nbsp;<STRONG>{!__TREF_VALUE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="5" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD class="member_data">&nbsp;&nbsp;{--POINTS_LOCKED--}</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;&nbsp;{!__TLOCK_VALUE!} {!POINTS!}</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;</TD>
+       </TR>
+       {!__SPECIAL_ROWS!}
+       <TR>
+               <TD colspan="3" height="2" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD colspan="5" class="member_header">
+               <DIV align="center"><STRONG>{--CLICK_STATISTICS--}</STRONG></DIV>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="2" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD class="member_data">&nbsp;&nbsp;{--RECEIVED_MAILS--}:</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;&nbsp;{!__RECEIVE_VALUE!}</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="1" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD class="member_data">&nbsp;&nbsp;{--UNCONFIRMED_LOCKED--}:</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;&nbsp;{!__PAY_VALUE!}</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="1" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD class="member_data">&nbsp;&nbsp;{--CONFIRMED_MAILS--}:</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;&nbsp;{!__CONFIRMED_VALUE!}</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="1" class="seperator"></TD>
+       </TR>
+       <TR>
+               <TD class="member_data">&nbsp;&nbsp;{--SENT_MAILS--}:</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;&nbsp;{!__SENT_VALUE!}</TD>
+               <TD width="2" class="seperator">&nbsp;</TD>
+               <TD class="member_data">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="5" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_points_bonus_disabled.tpl b/0.2.1/templates/de/html/member/member_points_bonus_disabled.tpl
new file mode 100644 (file)
index 0000000..42d083d
--- /dev/null
@@ -0,0 +1,7 @@
+<TR>
+       <TD colspan="3" height="2" class="seperator"></TD>
+</TR>
+<TR>
+       <TD colspan="5" align="center" class="member_header"><STRONG>{--BONUS_POINTS_DISABLED--}</STRONG>
+       </TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_points_bonus_rows.tpl b/0.2.1/templates/de/html/member/member_points_bonus_rows.tpl
new file mode 100644 (file)
index 0000000..ab3cc10
--- /dev/null
@@ -0,0 +1,76 @@
+<TR>
+       <TD colspan="3" height="2" class="seperator"></TD>
+</TR>
+<TR>
+       <TD colspan="5" align="center" class="member_header"><STRONG>{--BONUS_POINTS_TITLE--}</STRONG>
+       </TD>
+</TR>
+<TR>
+       <TD colspan="3" height="2" class="seperator"></TD>
+</TR>
+<TR>
+       <TD colspan="5" class="member_data">
+       <DIV align="center" class="member_note">{--BONUS_LOGIN_TURBO_NOTE--}</DIV>
+       </TD>
+</TR>
+<TR>
+       <TD colspan="3" height="5" class="seperator"></TD>
+</TR>
+<TR>
+       <TD class="member_data">&nbsp;&nbsp;{--BONUS_LOGIN_TOTAL--}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;&nbsp;{!__LOGIN_VALUE!} {!POINTS!}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" height="1" class="seperator"></TD>
+</TR>
+<TR>
+       <TD class="member_data">&nbsp;&nbsp;{--BONUS_TURBO_TOTAL--}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;&nbsp;{!__TURBO_VALUE!} {!POINTS!}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" height="1" class="seperator"></TD>
+</TR>
+<TR>
+       <TD class="member_data">&nbsp;&nbsp;{--BONUS_REF_TOTAL--}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;&nbsp;{!__REF_VALUE!} {!POINTS!}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" height="1" class="seperator"></TD>
+</TR>
+<TR>
+       <TD class="member_data">&nbsp;&nbsp;{--BONUS_ORDER_TOTAL--}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;&nbsp;{!__ORDER_VALUE!} {!POINTS!}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" height="1" class="seperator"></TD>
+</TR>
+<TR>
+       <TD class="member_data">&nbsp;&nbsp;{--BONUS_STATS_TOTAL--}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;&nbsp;{!__STATS_VALUE!} {!POINTS!}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" height="5" class="seperator"></TD>
+</TR>
+<TR>
+       <TD class="member_data">&nbsp;&nbsp;<STRONG>{--BONUS_TOTAL--}</STRONG></TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;&nbsp;<STRONG>{!__TTOTAL_VALUE!}
+       {!POINTS!}</STRONG></TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_points_row.tpl b/0.2.1/templates/de/html/member/member_points_row.tpl
new file mode 100644 (file)
index 0000000..f9c36e5
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD colspan="3" height="1" class="seperator"></TD>
+</TR>
+<TR>
+       <TD class="member_data">&nbsp;&nbsp;$content[lvl] {--REF_LEVEL--}
+       ($content[per]%)</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;&nbsp;$content[points] {!POINTS!}</TD>
+       <TD width="2" class="seperator">&nbsp;</TD>
+       <TD class="member_data">&nbsp;&nbsp;$content[refs]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_points_upgrade.tpl b/0.2.1/templates/de/html/member/member_points_upgrade.tpl
new file mode 100644 (file)
index 0000000..ddc36d1
--- /dev/null
@@ -0,0 +1,8 @@
+<TR>
+       <TD colspan="3" height="5" class="seperator"></TD>
+</TR>
+<TR>
+       <TD colspan="5" align="center" class="member_data"><STRONG
+               class="admin_note">{--BONUS_EXTENSION_UPGRADE_1--} <STRONG>v0.2.2</STRONG>
+       {--BONUS_EXTENSION_UPGRADE_2--}</STRONG></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_receive_table.tpl b/0.2.1/templates/de/html/member/member_receive_table.tpl
new file mode 100644 (file)
index 0000000..064b7a7
--- /dev/null
@@ -0,0 +1,11 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="400"
+       class="register_header dashed">
+       <TR>
+               <TD align="right" height="40" class="register_left"><STRONG>{--MAX_PER_DAY--}:</STRONG>&nbsp;&nbsp;
+               </TD>
+               <TD class="register_right"><SELECT name="max_mails" size="1"
+                       class="register_select">
+                       {!__MAX_RECEIVE_OPTIONS!}
+               </SELECT></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/member/member_reflinks_row.tpl b/0.2.1/templates/de/html/member/member_reflinks_row.tpl
new file mode 100644 (file)
index 0000000..b48bdb4
--- /dev/null
@@ -0,0 +1,25 @@
+<TR>
+       <TD width="10" class="member_refbanner switch_sw$content[sw]">&nbsp;</TD>
+       <TD align="center" class="member_refbanner switch_sw$content[sw]">
+       <IMG src="$content[url]" alt="$content[alt]" title="$content[alt]"
+               border="0"><BR>
+       <FONT class="tiny">{--REFBANNER_TOTALS--}: <STRONG>$content[cnt]</STRONG>{--REF_VIEWS--}
+       / <STRONG>$content[cks]</STRONG>{--REF_CLIX--}</FONT></TD>
+       <TD width="10" class="member_refbanner switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" height="10"
+               class="seperator member_refbanner switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD width="10" class="member_refbanner switch_sw$content[sw]">&nbsp;</TD>
+       <TD align="center" class="member_refbanner switch_sw$content[sw]">
+       <PRE>&lt;A href=&quot;{!URL!}/click.php?user=$content[uid]&amp;banner=$content[id]&quot;
+ target=&quot;_blank&quot;&gt;&lt;IMG src=&quot;{!URL!}/view.php?user=$content[uid]&amp;banner=$content[id]&quot;
+ alt=&quot;$content[alt]&quot; title=&quot;$content[alt]&quot; border=&quot;0&quot;&gt;&lt;/A&gt;</PRE>
+       </TD>
+       <TD width="10" class="member_refbanner switch_sw$content[sw]">&nbsp;</TD>
+</TR>
+<TR>
+       <TD colspan="3" height="10" class="seperator member_refbanner">&nbsp;</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_reflinks_table.tpl b/0.2.1/templates/de/html/member/member_reflinks_table.tpl
new file mode 100644 (file)
index 0000000..39e5898
--- /dev/null
@@ -0,0 +1,9 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center">
+       <TR>
+               <TD colspan="3" height="10" class="seperator member_refbanner">&nbsp;</TD>
+       </TR>
+       {--__REFLINKS_ROWS--}
+</TABLE>
+</DIV>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_stats_row.tpl b/0.2.1/templates/de/html/member/member_stats_row.tpl
new file mode 100644 (file)
index 0000000..b925988
--- /dev/null
@@ -0,0 +1,36 @@
+<TR>
+       <TD class="switch_mem$content[sw] top2 right" width="46%" colspan="2"
+               align="center">{--EMAIL_SUBJECT--}:<BR>
+       <STRONG>$content[subj]</STRONG></TD>
+       <TD class="switch_mem$content[sw] top2" width="54%" align="center">
+       {--EMAIL_TIMESTAMP--}:<BR>
+       <STRONG>$content[stamp]</STRONG></TD>
+</TR>
+<TR>
+       <TD colspan="2" align="center" class="switch_mem$content[sw] top right">
+       {--EMAIL_PAYMENT--}:<BR>
+       <STRONG>$content[pay]</STRONG></TD>
+       <TD align="center" class="switch_mem$content[sw] top">
+       {--EMAIL_CATEGORY--}:<BR>
+       <STRONG>$content[cat]</STRONG></TD>
+</TR>
+<TR>
+       <TD colspan="2" align="center" class="switch_mem$content[sw] top right">
+       {--EMAIL_URL--}:<BR>
+       <STRONG><A href="$content[url]" target="_blank">{--MEMBER_TEST_URL--}</A></STRONG>
+       </TD>
+       <TD align="center" class="switch_mem$content[sw] top">
+       {--EMAIL_END_SEND--}:<BR>
+       <STRONG>$content[sent]</STRONG></TD>
+</TR>
+<TR>
+       <TD align="center" class="switch_mem$content[sw] top right" width="23%">
+       {--EMAIL_RECEIVERS--}:<BR>
+       <STRONG>$content[recs]</STRONG></TD>
+       <TD align="center" class="switch_mem$content[sw] top right" width="23%">
+       {--EMAIL_CONFIRMED--}:<BR>
+       <STRONG>$content[clix]</STRONG></TD>
+       <TD align="center" class="switch_mem$content[sw] top">
+       {--EMAIL_PERCENT--}:<BR>
+       <STRONG>$content[perc]</STRONG></TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_stats_table.tpl b/0.2.1/templates/de/html/member/member_stats_table.tpl
new file mode 100644 (file)
index 0000000..b497a52
--- /dev/null
@@ -0,0 +1,8 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" align="center"
+       class="member_misc dashed" width="600">
+       <TR>
+               <TD colspan="3" align="center" height="25" class="member_header">
+               <STRONG class="member_done">{--MEMBER_POOL_CONTENT--}</STRONG></TD>
+       </TR>
+       {--__STATS_ROWS--}
+</TABLE>
diff --git a/0.2.1/templates/de/html/member/member_support_contacted.tpl b/0.2.1/templates/de/html/member/member_support_contacted.tpl
new file mode 100644 (file)
index 0000000..05fb519
--- /dev/null
@@ -0,0 +1,20 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="member_header">
+       <TR>
+               <TD style="height: 10px" class="seperator top2 left2 right2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="left2 right2"><BIG><B
+                       class="large">Vielen Dank, dass Sie uns kontaktiert haben!</STRONG></BIG></TD>
+       </TR>
+       <TR>
+               <TD style="height: 5px" colspan="2" class="seperator left2 right2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="left2 right2">Einer unserer
+               Mitarbeiter wird sich um Ihr Anliegen k&uuml;mmern.</TD>
+       </TR>
+       <TR>
+               <TD style="height: 10px" class="seperator bottom2 left2 right2">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/member/member_support_contcted.tpl b/0.2.1/templates/de/html/member/member_support_contcted.tpl
new file mode 100644 (file)
index 0000000..05fb519
--- /dev/null
@@ -0,0 +1,20 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="member_header">
+       <TR>
+               <TD style="height: 10px" class="seperator top2 left2 right2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="left2 right2"><BIG><B
+                       class="large">Vielen Dank, dass Sie uns kontaktiert haben!</STRONG></BIG></TD>
+       </TR>
+       <TR>
+               <TD style="height: 5px" colspan="2" class="seperator left2 right2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="left2 right2">Einer unserer
+               Mitarbeiter wird sich um Ihr Anliegen k&uuml;mmern.</TD>
+       </TR>
+       <TR>
+               <TD style="height: 10px" class="seperator bottom2 left2 right2">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/member/member_support_form.tpl b/0.2.1/templates/de/html/member/member_support_form.tpl
new file mode 100644 (file)
index 0000000..fc79d8d
--- /dev/null
@@ -0,0 +1,49 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=support"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="500"
+       align="center" class="member_header">
+       <TR>
+               <TD height="5" colspan="2" class="seperator top2 left2 right2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="left2 right2"><STRONG>Sie
+               haben eine Frage an unseren Support?</STRONG><BR>
+               <HR noshade width="400">
+               <DIV align="left"><PRE style="margin-bottom: 0px">Hallo Support-Team,<BR>
+  Meine ID bei Ihrem {!MT_WORD!} lautet: $ID
+</PRE></DIV>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="center" class="left2 right2">
+               <DIV align="left"><PRE style="margin-bottom: 5px">Ich habe eine Frage zu folgendem:</PRE></DIV>
+               <SELECT name="qsummary" size="1" class="member_select">
+                       <OPTION value="" disabled>- - - Bitte ausw&auml;hlen! - - -</OPTION>
+                       <OPTION value="ordr">Alles rund um die Mailbuchung</OPTION>
+                       <OPTION value="unconfirmed">Nicht best&auml;tigte Mails</OPTION>
+                       <OPTION value="reflink">Referral-Link (und Werbebanner)</OPTION>
+               </SELECT></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="left2 right2">
+               <DIV align="left"><PRE style="margin-bottom: 5px">Ich m&ouml;chte es genauer beschreiben:</PRE></DIV>
+               <TEXTAREA name="qdetails" rows="5" cols="35" class="member_normal"></TEXTAREA><BR>
+               <FONT class="tiny member_note"> (Bitte halten Sie den Text kurz
+               und knapp, damit Ihre<BR>
+               Support-Anfrage schnell beantwortet werden kann!) </FONT></TD>
+       </TR>
+       <TR>
+               <TD align="center" class="left2 right2">
+               <DIV align="left"><PRE style="margin-bottom: 5px">Mit freundlichem Gruss,
+    Ihr $username
+</PRE></DIV>
+               <HR noshade width="400">
+               <INPUT type="reset" class="member_reset" value="Nochmal eingeben"><BIG>&nbsp;*</BIG>
+               <INPUT type="submit" class="member_submit" name="ok"
+                       value="Abschicken"></TD>
+       </TR>
+       <TR>
+               <TD height="5" colspan="2" class="seperator bottom2 left2 right2">&nbsp;</TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_themes.tpl b/0.2.1/templates/de/html/member/member_themes.tpl
new file mode 100644 (file)
index 0000000..acab691
--- /dev/null
@@ -0,0 +1,28 @@
+<DIV align="center">
+
+<P>{--MEMBER_THEME_LIST_USAGE--}</P>
+
+<FORM action="{!URL!}/modules.php?module=login&amp;what=themes"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="99%"
+       class="admin_table dashed">
+       <TR>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_UNIX--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_NAME--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_AUTHOR--}</TD>
+               <TD class="admin_title2 bottom2 right2" align="center">{--THEME_URL--}</TD>
+               <TD class="admin_title2 bottom2" align="center">{--THEME_VERSION--}</TD>
+       </TR>
+       {--__THEME_LIST--}
+       <TR>
+               <TD colspan="5" class="admin_footer" align="center"><INPUT
+                       type="reset" class="member_reset" value="{--UNDO_SELECTIONS--}">&nbsp;*
+               <INPUT type="submit" name="ok" class="member_submit"
+                       value="{--MEMBER_SAVE_THEME--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<P><FONT class="admin_note">{--MEMBER_THEME_LIST_NOTE--}</FONT></P>
+
+</DIV>
diff --git a/0.2.1/templates/de/html/member/member_transfer_list.tpl b/0.2.1/templates/de/html/member/member_transfer_list.tpl
new file mode 100644 (file)
index 0000000..0d63617
--- /dev/null
@@ -0,0 +1,28 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="620"
+       class="member_table dashed">
+       <TR>
+               <TD colspan="5" align="center" class="member_title2 bottom2"
+                       height="30"><STRONG>{--__TRANSFER_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="80" align="center" class="member_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_ID--}</STRONG></TD>
+               <TD width="120" align="center" class="member_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_STAMP--}</STRONG></TD>
+               <TD width="120" align="center" class="member_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_PARTY--}</STRONG></TD>
+               <TD width="230" align="center" class="member_title2 bottom2 right2">
+               <STRONG>{--TRANSFER_POINTS_REASON--}</STRONG></TD>
+               <TD width="80" align="center" class="member_title2 bottom2"><STRONG>{!POINTS!}</STRONG>
+               </TD>
+       </TR>
+       {--__TRANSFER_ROWS--}
+       <TR>
+               <TD colspan="4" align="right" class="member_footer right2">
+               {--__TRANSFER_SUM--} ({!POINTS!}):&nbsp;</TD>
+               <TD width="80" align="center" class="member_footer"><STRONG>{--__TRANSFER_TOTAL_VALUE--}</STRONG>
+               </TD>
+       </TR>
+</TABLE>
+</DIV>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_transfer_new.tpl b/0.2.1/templates/de/html/member/member_transfer_new.tpl
new file mode 100644 (file)
index 0000000..ade3b3e
--- /dev/null
@@ -0,0 +1,64 @@
+<FORM
+       action="{!URL!}/modules.php?module=login&amp;what=transfer&amp;mode=new"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="guest_table dashed">
+       <TR>
+               <TD align="right" width="220" class="bottom2" height="40"><STRONG>{--TRANSFER_SELECT_TARGET_UID--}:</STRONG>
+               </TD>
+               <TD width="10" class="bottom2 right2 seperator">&nbsp;</TD>
+               <TD width="10" class="bottom2 seperator">&nbsp;</TD>
+               <TD align="center" width="280" class="bottom2">
+               {--__TRANSFER_USERID_SELECTION--}</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="bottom2" height="40"><STRONG>{--TRANSFER_POINTS_MAXIMUM--}:</STRONG>
+               </TD>
+               <TD width="10" class="bottom2 right2 seperator">&nbsp;</TD>
+               <TD width="10" class="bottom2 seperator">&nbsp;</TD>
+               <TD class="bottom2">{--__TRANSFER_MAX_VALUE--} {!POINTS!}</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="bottom2" height="40"><STRONG>{--TRANSFER_POINTS_AMOUNT--}:</STRONG>
+               </TD>
+               <TD width="10" class="bottom2 right2 seperator">&nbsp;</TD>
+               <TD width="10" class="bottom2 seperator">&nbsp;</TD>
+               <TD class="bottom2"><INPUT type="text" name="points"
+                       class="member_normal" size="5" maxlength="10"
+                       value="{--__TRANSFER_POINTS_VALUE--}"{--__TRANSFER_TO_DISABLED--}>
+               {!POINTS!}</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="bottom2" height="40"><STRONG>{--TRANSFER_POINTS_REASON--}:</STRONG>
+               </TD>
+               <TD width="10" class="bottom2 right2 seperator">&nbsp;</TD>
+               <TD width="10" class="bottom2 seperator">&nbsp;</TD>
+               <TD class="bottom2"><INPUT type="text" name="reason"
+                       class="member_normal" size="30" maxlength="255"
+                       value="{--__TRANSFER_REASON_VALUE--}"{--__TRANSFER_TO_DISABLED--}>
+               </TD>
+       </TR>
+       <TR>
+               <TD align="right" class="bottom2" height="40"><STRONG>{--TRANSFER_POINTS_SECURITY_CODE--}:</STRONG>
+               </TD>
+               <TD width="10" class="bottom2 right2 seperator">&nbsp;</TD>
+               <TD width="10" class="bottom2 seperator">&nbsp;</TD>
+               <TD class="bottom2">{--__TRANSFER_IMAGE_INPUT--}</TD>
+       </TR>
+       <TR>
+               <TD align="right" class="bottom2" height="40"><STRONG>{--TRANSFER_ENTER_PASSWORD--}:</STRONG>
+               </TD>
+               <TD width="10" class="bottom2 right2 seperator">&nbsp;</TD>
+               <TD width="10" class="bottom2 seperator">&nbsp;</TD>
+               <TD class="bottom2"><INPUT type="password" name="password"
+                       class="member_normal" size="10" maxlength="255"{--__TRANSFER_TO_DISABLED--}>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="4" align="center" class="member_footer"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}"{--__TRANSFER_TO_DISABLED--}>&nbsp;*
+               <INPUT type="submit" name="ok" class="member_submit"
+                       value="{--TRANSFER_ADD_NEW--}"{--__TRANSFER_TO_DISABLED--}></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_transfer_overview.tpl b/0.2.1/templates/de/html/member/member_transfer_overview.tpl
new file mode 100644 (file)
index 0000000..bd6cfcb
--- /dev/null
@@ -0,0 +1,32 @@
+<DIV align="center">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="520"
+       class="member_table dashed">
+       <TR>
+               <TD align="center" width="260" class="bottom2 right2" height="40">
+               {--TRANSFER_LIST_INCOMING--}:<BR>
+               <STRONG>{--__TRANSFER_IN_LINK--}</STRONG></TD>
+               <TD align="center" width="260" class="bottom2">
+               {--TRANSFER_LIST_OUTGOING--}:<BR>
+               <STRONG>{--__TRANSFER_OUT_LINK--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" height="40" class="bottom2">
+               {--TRANSFER_LIST_ALL--}:<BR>
+               <STRONG>{--__TRANSFER_ALL_LINK--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" height="40" class="bottom2"><STRONG>{--TRANSFER_TO_MEMBER_NOW--}:</STRONG><BR>
+               {--__TRANSFER_NEW_LINK--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="member_main seperator" height="10">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" class="member_main">
+               {--__TRANSFER_SETTINGS_CONTENT--}</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="member_main seperator" height="10">&nbsp;</TD>
+       </TR>
+</TABLE>
+</DIV>
diff --git a/0.2.1/templates/de/html/member/member_transfer_settings.tpl b/0.2.1/templates/de/html/member/member_transfer_settings.tpl
new file mode 100644 (file)
index 0000000..f3805c4
--- /dev/null
@@ -0,0 +1,21 @@
+<FORM action="{!URL!}/modules.php?module=login&amp;what=transfer"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="420"
+       class="member_table dashed">
+       <TR>
+               <TD align="center" width="260" class="admin_title bottom2" height="50">
+               {--TRANSFER_ALLOW_OPT_IN--}</TD>
+               <TD align="center" width="160" class="admin_title bottom2" height="50">
+               {--YES--}:&nbsp;<INPUT type="radio" name="opt_in"
+                       class="member_normal" value="Y"{--__TRANSFER_ALLOW_Y--}>
+               {--NO--}:&nbsp;<INPUT type="radio" name="opt_in" class="member_normal"
+                       value="N"{--__TRANSFER_ALLOW_N--}></TD>
+       </TR>
+       <TR>
+               <TD align="center" colspan="2" height="40"><INPUT type="reset"
+                       class="member_reset" value="{--CLEAR_FORM--}">&nbsp;* <INPUT
+                       type="submit" class="member_submit" name="ok"
+                       value="{--SAVE_SETTINGS--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
diff --git a/0.2.1/templates/de/html/member/member_unconfirmed_404.tpl b/0.2.1/templates/de/html/member/member_unconfirmed_404.tpl
new file mode 100644 (file)
index 0000000..ffd7720
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] top" colspan="6">
+       <B class="member_failed large">$content[probl]:</STRONG>$content[data] </TD>
+</TR>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_unconfirmed_row.tpl b/0.2.1/templates/de/html/member/member_unconfirmed_row.tpl
new file mode 100644 (file)
index 0000000..2d43be3
--- /dev/null
@@ -0,0 +1,11 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] top right">$content[data]</TD>
+       <TD align="center" class="switch_sw$content[sw] top right"><A
+               href="{!URL!}/mailid.php?uid=$content[uid]&amp;$content[type]=$content[data]"
+               target="_blank" title="$content[subj]">$content[subj]</A></TD>
+       <TD align="center" class="switch_sw$content[sw] top right">$content[text]</TD>
+       <TD align="center" class="switch_sw$content[sw] top right">$content[stamp]</TD>
+       <TD align="center" class="switch_sw$content[sw] top right">$content[cat]</TD>
+       <TD align="center" class="switch_sw$content[sw] top">$content[points]
+       {!POINTS!}</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/member/member_unconfirmed_table.tpl b/0.2.1/templates/de/html/member/member_unconfirmed_table.tpl
new file mode 100644 (file)
index 0000000..eb22b15
--- /dev/null
@@ -0,0 +1,17 @@
+<TABLE border="0" cellspacing="0" cellpadding="0"
+       class="member_unconfirmed dashed">
+       <TR>
+               <TD class="member_header member_done" align="center" width="30"><STRONG>{--MEMBER_SID--}:</STRONG></TD>
+               <TD class="member_header member_done" align="center" width="145"><STRONG>{--CONFIRM_LINK--}:</STRONG></TD>
+               <TD class="member_header member_done" align="center" width="200"><STRONG>{--EMAIL_TEXT--}:</STRONG></TD>
+               <TD class="member_header member_done" align="center" width="130"><STRONG>{--EMAIL_TIMESTAMP--}:</STRONG></TD>
+               <TD class="member_header member_done" align="center" width="130"><STRONG>{--EMAIL_CATEGORY--}:</STRONG></TD>
+               <TD class="member_header member_done" align="center" width="120"><STRONG>{--EMAIL_POINTS--}:</STRONG></TD>
+       </TR>
+       {--__UNCONFIRMED_ROWS--}
+       <TR>
+               <TD align="right" class="top right" colspan="5"><STRONG>{--POINTS_SUM--}:</STRONG>&nbsp;&nbsp;</TD>
+               <TD align="center" class="top"><STRONG>{!__TOTAL_POINTS!}
+               {!POINTS!}</STRONG></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/member/member_welcome.tpl b/0.2.1/templates/de/html/member/member_welcome.tpl
new file mode 100644 (file)
index 0000000..89ec2ec
--- /dev/null
@@ -0,0 +1,2 @@
+Hier k&ouml;nnten Ihre News stehen. Das Template finden Sie unter
+<EM>{!PATH!}/templates/de/html/member/member_welcome.tpl</EM>
diff --git a/0.2.1/templates/de/html/member/member_welcome_footer.tpl b/0.2.1/templates/de/html/member/member_welcome_footer.tpl
new file mode 100644 (file)
index 0000000..485d616
--- /dev/null
@@ -0,0 +1,4 @@
+
+</TD>
+</TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_welcome_header.tpl b/0.2.1/templates/de/html/member/member_welcome_header.tpl
new file mode 100644 (file)
index 0000000..74381b4
--- /dev/null
@@ -0,0 +1,11 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+       <TR>
+               <TD width="10" class="seperator">&nbsp;</TD>
+               <TD class="member_content">{--LAST_ONLINE--}: <STRONG>{!_LAST_ONLINE_VALUE!}</STRONG><BR>
+               {--LAST_MODULE--}: <STRONG>{!_LAST_MODULE_VALUE!}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="7" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" align="center" class="member_content">
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/member/member_wernis.tpl b/0.2.1/templates/de/html/member/member_wernis.tpl
new file mode 100644 (file)
index 0000000..3aa203d
--- /dev/null
@@ -0,0 +1,17 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="680"
+       class="member_table dashed" align="center">
+       <TR>
+               <TD colspan="4" align="center" class="member_title2" height="30">
+               <STRONG>{--WERNIS_MEMBER_LIST_WERNIS--}:</STRONG></TD>
+       </TR>
+       <TR>
+               <TD width="180" align="center" class="member_title2 bottom2 right2"><STRONG>{--WERNIS_TOTAL_WERNIS--}</STRONG></TD>
+               <TD width="130" align="center" class="member_title2 bottom2 right2"><STRONG>{--WERNIS_TARGET_ACCOUNT2--}</STRONG></TD>
+               <TD width="150" align="center" class="member_title2 bottom2 right2"><STRONG>{--WERNIS_TIMESTAMP--}</STRONG></TD>
+               <TD width="120" align="center" class="member_title2 bottom2"><STRONG>{--WERNIS_MEMBER_STATUS--}</STRONG></TD>
+       </TR>
+       {--__WERNIS_ROWS--}
+       <TR>
+               <TD colspan="4" class="seperator member_footer" height="10">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/member/member_wernis_form.tpl b/0.2.1/templates/de/html/member/member_wernis_form.tpl
new file mode 100644 (file)
index 0000000..20941e9
--- /dev/null
@@ -0,0 +1,51 @@
+<FORM
+       action="{!URL!}/modules.php?module=login&amp;what=wernis&amp;wernis=$_GET[wernis]"
+       method="POST" style="margin-bottom: 0px">
+<TABLE border="0" cellspacing="0" cellpadding="0" width="440"
+       class="member_table dashed">
+       <TR>
+               <TD colspan="3" align="center" class="member_title2 bottom2"
+                       height="30"><STRONG>{--WERNIS_NOW_TITLE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--WERNIS_MAX_WERNIS--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><STRONG>{--WERNIS_MAX_VALUE--}</STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--WERNIS_WANT_WERNIS--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="wernis" class="member_normal"
+                       size="10" maxlength="255" value="{--WERNIS_MAX_VALUE--}"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--WERNIS_TARGET_ACCOUNT--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="text" name="account" class="member_normal"
+                       size="20" maxlength="255"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD height="25" align="right">{--WERNIS_OPTIONAL_PASSWORD--}:</TD>
+               <TD class="seperator" width="10">&nbsp;</TD>
+               <TD><INPUT type="password" name="pass" class="member_normal"
+                       size="10" maxlength="255"></STRONG></TD>
+       </TR>
+       <TR>
+               <TD colspan="3" height="3" class="seperator bottom2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="3" align="center" class="member_footer"><INPUT
+                       type="reset" class="member_reset" value="{--CLEAR_FORM--}">&nbsp;*&nbsp;<INPUT
+                       type="submit" name="ok" class="member_submit"
+                       value="{--WERNIS_SEND_NOW--}"></TD>
+       </TR>
+</TABLE>
+</FORM>
+
+<DIV class="member_note">{--WERNIS_MEMBER_NOTE--}<BR>
+<BR>
+<A href="{!URL!}/agb.php" target="_blank">{--WERNIS_REMEMBER_TERMS--}</A>
+</DIV>
diff --git a/0.2.1/templates/de/html/member/member_wernis_mode_choose.tpl b/0.2.1/templates/de/html/member/member_wernis_mode_choose.tpl
new file mode 100644 (file)
index 0000000..7fbeda6
--- /dev/null
@@ -0,0 +1,19 @@
+<table border="0" cellspacing="0" cellpadding="0"
+       class="member_table dashed">
+       <tr>
+               <td class="member_title2 bottom2" style="padding: 5px" colspan="2">
+               {--MEMBER_WERNIS_MODE_CHOOSE--}</td>
+       </tr>
+       <tr>
+               <td width="50%" align="center" class="right2" height="40>"<a
+                       class="menu_blur" style="height: 40px"
+                       href="{!URL!}/modules.php?module=login&amp;what=wernis&amp;mode=widthdraw">
+               <div style="padding-top: 10px">{--MEMBER_WERNIS_MODE_WITHDRAW--}</div>
+               </a></td>
+               <td width="50%" align="center"><a class="menu_blur"
+                       style="height: 40px"
+                       href="{!URL!}/modules.php?module=login&amp;what=wernis&amp;mode=payout">
+               <div style="padding-top: 3px">{--MEMBER_WERNIS_MODE_PAYOUT--}</div>
+               </a></td>
+       </tr>
+</table>
diff --git a/0.2.1/templates/de/html/member/member_wernis_row.tpl b/0.2.1/templates/de/html/member/member_wernis_row.tpl
new file mode 100644 (file)
index 0000000..05b21a8
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[points]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[acc]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2 right2">$content[stamp]</TD>
+       <TD align="center" class="switch_sw$content[sw] bottom2">$content[status]</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/message.tpl b/0.2.1/templates/de/html/message.tpl
new file mode 100644 (file)
index 0000000..c1e6e60
--- /dev/null
@@ -0,0 +1,4 @@
+<TR>
+       <TD colspan="2" align="center" valign="middle" class="guest"
+               height="30">$content</TD>
+</TR>
diff --git a/0.2.1/templates/de/html/metadata.tpl b/0.2.1/templates/de/html/metadata.tpl
new file mode 100644 (file)
index 0000000..c8ff9cf
--- /dev/null
@@ -0,0 +1,10 @@
+
+<META name="author" content="Roland H&auml;der">
+<META name="publisher" content="Ihr Name nochmal">
+<META name="keywords"
+       content="mailtausch, mailversand, kostenlos, kostenloser, mailexchange, werbemail, werbemailversand, exchange, werbepunkte, punkte, auktion, auktionen, umsonst, sms kostenlos, produkte, produktproben, gewinn, gewinnspiel, gratis sms, promotion, besucher, werbung, linkliste, geldverdienen, verdienen, traffic, hits">
+<META name="robots" content="index,follow">
+<META http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+<META http-equiv="content-style-type" content="text/css">
+<META http-equiv="content-script-type" content="text/javascript">
+<META http-equiv="language" content="de">
diff --git a/0.2.1/templates/de/html/online_now.tpl b/0.2.1/templates/de/html/online_now.tpl
new file mode 100644 (file)
index 0000000..6cb6b7b
--- /dev/null
@@ -0,0 +1,35 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+       <TR>
+               <TD class="guest_menu_row">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="10%" align="center" valign="top"><STRONG><FONT
+                                       class="medium">{!GUESTS_ONLINE_CNT!}</FONT></STRONG></TD>
+                               <TD width="90%">{--GUESTS_ONLINE--}</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_menu_row">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="10%" align="center" valign="top"><STRONG><FONT
+                                       class="medium">{!MEMBERS_ONLINE_CNT!}</FONT></STRONG></TD>
+                               <TD width="90%">{--MEMBERS_ONLINE--}</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD class="guest_menu_bottom">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%">
+                       <TR>
+                               <TD width="10%" align="center" valign="top"><STRONG><FONT
+                                       class="medium">{!ADMINS_ONLINE_CNT!}</FONT></STRONG></TD>
+                               <TD width="90%">{--ADMINS_ONLINE--}</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/page_body.tpl b/0.2.1/templates/de/html/page_body.tpl
new file mode 100644 (file)
index 0000000..e8c2001
--- /dev/null
@@ -0,0 +1,5 @@
+<BODY>
+<TABLE border="0" cellspacing="0" cellpadding="0" id="master">
+       <TR>
+               <TD class="masterbox" align="center">
+               <DIV class="masterbox">
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/page_footer.tpl b/0.2.1/templates/de/html/page_footer.tpl
new file mode 100644 (file)
index 0000000..f546bf0
--- /dev/null
@@ -0,0 +1,6 @@
+
+</DIV>
+</TD>
+</TR>
+</TABLE>
+</BODY>
diff --git a/0.2.1/templates/de/html/page_header.tpl b/0.2.1/templates/de/html/page_header.tpl
new file mode 100644 (file)
index 0000000..fa6d226
--- /dev/null
@@ -0,0 +1,4 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<title>{!__PAGE_TITLE!}</title>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/profile-update.tpl b/0.2.1/templates/de/html/profile-update.tpl
new file mode 100644 (file)
index 0000000..71eb603
--- /dev/null
@@ -0,0 +1,51 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="90%"
+       class="member_update">
+       <TR>
+               <TD colspan="2" height="10" class="seperator top2 left2 right2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD colspan="2" class="left2 right2" align="center">
+               <TABLE border="0" cellspacing="0" cellpadding="0" width="100%"
+                       class="member_update" align="center">
+                       <TR>
+                               <TD width="10" class="seperator">&nbsp;</TD>
+                               <TD align="left">
+                               <DIV align="center"><STRONG>Vielen Dank, dass Sie uns
+                               auf dem Laufenden halten wollen!</STRONG></DIV>
+                               <BR>
+                               Wenn Sie jetzt Ihr Profil aktualisieren wollen, klicken Sie einfach
+                               unten auf den Button. War unsere Benachrichtigung ein Irrtum, so
+                               k&ouml;nnen Sie mit einem Klick die Benachrichtigung abschalten. Sie
+                               werden dann f&uuml;r l&auml;ngere Zeit von unserem System keine
+                               Benachrichtigungen erhalten.<BR>
+                               <BR>
+                               Bitte haben Sie nochmals f&uuml;r diese Massnahme Verst&auml;ndnis.
+                               Auch wir m&ouml;chten aktuelle Daten haben, damit wir unseren
+                               {!MT_WORD!} reibungslos betreiben k&ouml;nnen und es kommt auch
+                               unseren Werbekunden zugute.</TD>
+                               <TD width="10" class="seperator">&nbsp;</TD>
+                       </TR>
+               </TABLE>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="2" height="10" class="seperator left2 right2">&nbsp;</TD>
+       </TR>
+       <TR>
+               <TD align="center" class="left2" width="50%">
+               <FORM action="{!URL!}/modules.php?module=login&amp;what=mydata"
+                       method="POST" style="margin-top: 0px"><INPUT type="submit"
+                       name="notify" class="member_reset"
+                       value="Benachrichtigung abschalten"></FORM>
+               </TD>
+               <TD align="center" class="right2" width="50%">
+               <FORM action="{!URL!}/modules.php?module=login&amp;what=mydata"
+                       method="POST" style="margin-top: 0px"><INPUT type="submit"
+                       name="edit" class="member_reset" value="Profildaten &auml;ndern">
+               </FORM>
+               </TD>
+       </TR>
+       <TR>
+               <TD colspan="4" height="10" class="seperator left2 bottom2 right2">&nbsp;</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/rallye_test.tpl b/0.2.1/templates/de/html/rallye_test.tpl
new file mode 100644 (file)
index 0000000..9814383
--- /dev/null
@@ -0,0 +1,6 @@
+Dieses Template heisst rallye_test.tpl.de, das Sie gerne weiter
+verwenden k&ouml;nnen:
+<BR>
+<BR>
+Speichern Sie eine Textdatei ab, die rallye_?????.tpl.de heissen muss.
+Anstelle der ? dann den Namen!
diff --git a/0.2.1/templates/de/html/register_header.tpl b/0.2.1/templates/de/html/register_header.tpl
new file mode 100644 (file)
index 0000000..b92c7e7
--- /dev/null
@@ -0,0 +1,3 @@
+Anmeldeformular zum {!MT_WORD!}
+<STRONG>{!MAIN_TITLE!}</STRONG>
+:
diff --git a/0.2.1/templates/de/html/runtime_fatal_row.tpl b/0.2.1/templates/de/html/runtime_fatal_row.tpl
new file mode 100644 (file)
index 0000000..104a244
--- /dev/null
@@ -0,0 +1,2 @@
+<DIV class="runtime_fatalcontent"><STRONG>{--FATAL_NO--}$content[key]:</STRONG><BR>
+&nbsp;&nbsp;&nbsp;<STRONG>&middot;</STRONG>&nbsp;$content[value]</DIV>
diff --git a/0.2.1/templates/de/html/runtime_fatal_table.tpl b/0.2.1/templates/de/html/runtime_fatal_table.tpl
new file mode 100644 (file)
index 0000000..973e2ca
--- /dev/null
@@ -0,0 +1,5 @@
+<DIV align="center">
+<DIV class="runtime_fatal">
+<DIV class="fatal_title">{--RUNTIME_PROBLEMS_DETECTED--}</DIV>
+$content</DIV>
+</DIV>
diff --git a/0.2.1/templates/de/html/show_bonus.tpl b/0.2.1/templates/de/html/show_bonus.tpl
new file mode 100644 (file)
index 0000000..6bf687a
--- /dev/null
@@ -0,0 +1,12 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="100%"
+       style="height: 100%">
+       <TR>
+               <TD height="10%" align="center">{--__BONUS_HEADER--}</TD>
+       </TR>
+       <TR>
+               <TD height="80%" align="center">{--__BONUS_MSG--}</TD>
+       </TR>
+       <TR>
+               <TD height="10%" align="center">{--__BONUS_FOOTER--}</TD>
+       </TR>
+</TABLE>
\ No newline at end of file
diff --git a/0.2.1/templates/de/html/show_bonus_footer.tpl b/0.2.1/templates/de/html/show_bonus_footer.tpl
new file mode 100644 (file)
index 0000000..ac34f32
--- /dev/null
@@ -0,0 +1,3 @@
+Dieser Text steht im Template
+<STRONG>show_bonus_footer.tpl</STRONG>
+!
diff --git a/0.2.1/templates/de/html/show_bonus_header.tpl b/0.2.1/templates/de/html/show_bonus_header.tpl
new file mode 100644 (file)
index 0000000..42d4c11
--- /dev/null
@@ -0,0 +1,3 @@
+Dieser Text steht im Template
+<STRONG>show_bonus_header.tpl</STRONG>
+!
diff --git a/0.2.1/templates/de/html/show_bonus_msg.tpl b/0.2.1/templates/de/html/show_bonus_msg.tpl
new file mode 100644 (file)
index 0000000..c45e8bb
--- /dev/null
@@ -0,0 +1,28 @@
+{--HELLO--} {!__SALUT!} {!__SNAME!} {!__FNAME!}!
+<BR>
+<BR>
+{--BONUS_SHOW_HEADER_LINE_1--}
+<STRONG>{!POINTS!}</STRONG>
+{--BONUS_SHOW_HEADER_LINE_2--}
+<STRONG>{--__MAILID--}</STRONG>
+{--BONUS_SHOW_HEADER_LINE_3--}:
+<BR>
+<BR>
+<TABLE border="0" cellspacing="0" cellpadding="0" width="300"
+       class="member_table dashed">
+       <TR>
+               <TD width="80" align="center" class="member_header bottom2"><STRONG>{--BONUS_RANK--}:</STRONG></TD>
+               <TD width="120" align="center" class="member_header bottom2"><STRONG>{--_UID--}:</STRONG></TD>
+               <TD width="100" align="center" class="member_header bottom2"><STRONG>{!POINTS!}:</STRONG></TD>
+       </TR>
+       {--__RANK_ROWS--}
+       <TR>
+               <TD colspan="3" class="member_footer" align="center"><FONT
+                       class="tiny member_note">&nbsp;</FONT></TD>
+       </TR>
+</TABLE>
+
+<P>{--__YOUR_RANKING_LINE--}</P>
+
+<P><FONT class="member_note"> {--BONUS_SHOW_FOOTER_NOTE_1--}<BR>
+{--BONUS_SHOW_FOOTER_NOTE_2--} </FONT></P>
diff --git a/0.2.1/templates/de/html/show_bonus_yr.tpl b/0.2.1/templates/de/html/show_bonus_yr.tpl
new file mode 100644 (file)
index 0000000..48c01fa
--- /dev/null
@@ -0,0 +1,9 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" width="300"
+       class="member_table">
+       <TR>
+               <TD align="center">{--BONUS_SHOW_YOU_HAVE_CONFIRMED--} <STRONG
+                       class="nobr">{--__YR_TMARK--}</STRONG> {--_ON--} <STRONG>{--__YR_LEVEL--}.</STRONG>
+               {--BONUS_SHOW_CONFIRMED_BONUS_IS--}:&nbsp;<STRONG class="nobr">{--__YR_POINTS--}
+               {!POINTS!}</STRONG></TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/theme_one.tpl b/0.2.1/templates/de/html/theme_one.tpl
new file mode 100644 (file)
index 0000000..fc69573
--- /dev/null
@@ -0,0 +1,5 @@
+{--CURR_THEME_IS_1--}
+<BR>
+<FONT class="theme_note">{--__THEME_NAME--}</FONT>
+<BR>
+{--CURR_THEME_IS_2--}
diff --git a/0.2.1/templates/de/html/theme_select_box.tpl b/0.2.1/templates/de/html/theme_select_box.tpl
new file mode 100644 (file)
index 0000000..958c7af
--- /dev/null
@@ -0,0 +1,6 @@
+<TABLE border="0" cellspacing="0" cellpadding="0" class="theme_box">
+       <TR>
+               <TD align="center" class="theme_content">
+               {!__THEME_SELECTION_CONTENT!}</TD>
+       </TR>
+</TABLE>
diff --git a/0.2.1/templates/de/html/theme_select_form.tpl b/0.2.1/templates/de/html/theme_select_form.tpl
new file mode 100644 (file)
index 0000000..51d2d1f
--- /dev/null
@@ -0,0 +1,6 @@
+<FORM action="{!__FORM_VALUE!}" method="POST" style="margin-bottom: 0px">
+<SELECT name="new_theme" class="guest_select">
+       {!__THEME_SELECTION_OPTIONS!}
+</SELECT> <BR />
+<INPUT type="submit" name="ok" class="guest_submit"
+       value="{--CHANGE_THEME--}" /></FORM>
diff --git a/0.2.1/templates/de/html/welcome.tpl b/0.2.1/templates/de/html/welcome.tpl
new file mode 100644 (file)
index 0000000..418edce
--- /dev/null
@@ -0,0 +1,29 @@
+<DIV align="center"><STRONG>Willkommen zu unserem
+{!MT_WORD!}!</STRONG></DIV>
+<BR>
+Nach der Anmeldung bei uns, bekommen Sie in regelm&auml;&szlig;igen
+Abst&auml;nden Webtipps und Produktinformationen per Email zugesendet.
+Nachdem Sie die Mails gelesen haben, k&ouml;nnen Sie diese
+best&auml;tigen. Das erfolgt &uuml;ber einen Link der in der Email
+vorhanden ist. Das System schreibt Ihnen danach {!POINTS!} auf Ihrem
+Guthaben-Konto bei uns gut. Diese {!POINTS!} k&ouml;nnen Sie dann
+sp&auml;ter in Mails tauschen und verschiedene Mails mit Ihrer Werbung
+(zum Beispiel Werbung f&uuml;r Ihre Homepage, f&uuml;r ein anderes
+Projekt oder Produkt Ihrer Wahl) an andere User senden. Die Teilnahme
+ist selbstverst&auml;ndlich kostenlos und verpflichtet Sie zu nichts !
+<BR>
+<BR>
+Als Startguthaben erhalten Sie von uns f&uuml;r Ihre kostenlose
+Anmeldung derzeit
+<BR>
+<BR>
+<DIV align="center"><BIG><BIG>2000</BIG>&nbsp;{!POINTS!}!</BIG></DIV>
+<BR>
+F&uuml;r jeden User, den Sie geworben haben erhalten Sie
+<STRONG>200</STRONG>
+&nbsp;{!POINTS!} plus prozentualen Verdienst &uuml;ber 5 Referral-Ebenen
+hinweg!
+<BR>
+<BR>
+Angesammelte {!POINTS!} k&ouml;nnen Versteigert oder Verkauft werden Der
+K&auml;ufer muss dabei jedoch Mitglied bei uns sein oder werden..
diff --git a/0.2.1/templates/en/html/admin/admin_welcome.tpl b/0.2.1/templates/en/html/admin/admin_welcome.tpl
new file mode 100644 (file)
index 0000000..5a00be0
--- /dev/null
@@ -0,0 +1,3 @@
+<STRONG>: : : Welcome to the administration&#39;s area : : :</STRONG>
+<BR>
+<DIV align="left" class="tiny">Hello $username !</DIV>
\ No newline at end of file
diff --git a/0.2.1/templates/en/html/impressum.tpl b/0.2.1/templates/en/html/impressum.tpl
new file mode 100644 (file)
index 0000000..ce23cb7
--- /dev/null
@@ -0,0 +1,13 @@
+<STRONG><U>Impressum</U></STRONG>
+<BR>
+<BR>
+Your name here!
+<BR>
+Your street
+<BR>
+XX-12345 Demo Village
+<BR>
+<BR>
+Phone: +49(0)-123-456789
+<BR>
+Additional informations?
diff --git a/0.2.1/templates/en/html/mailid/.htaccess b/0.2.1/templates/en/html/mailid/.htaccess
new file mode 100644 (file)
index 0000000..03688ee
--- /dev/null
@@ -0,0 +1 @@
+Deny from all\r
diff --git a/0.2.1/templates/en/html/register_header.tpl b/0.2.1/templates/en/html/register_header.tpl
new file mode 100644 (file)
index 0000000..d052a72
--- /dev/null
@@ -0,0 +1,3 @@
+Registration form to our mail-exchange
+<STRONG>{!MAIN_TITLE!}</STRONG>
+:
diff --git a/0.2.1/templates/en/html/welcome.tpl b/0.2.1/templates/en/html/welcome.tpl
new file mode 100644 (file)
index 0000000..69315c2
--- /dev/null
@@ -0,0 +1 @@
+<STRONG>Welcome to our mail exchange!</STRONG>
\ No newline at end of file
diff --git a/0.2.1/theme/business/css/active.css b/0.2.1/theme/business/css/active.css
new file mode 100644 (file)
index 0000000..55b8687
--- /dev/null
@@ -0,0 +1,9 @@
+.active_row1, .active_row2, .active_row3 {
+       text-align    : center;
+       padding-left  : 5px;
+       padding-right : 5px;
+}
+
+.active_row2 {
+       text-align : left;
+}
diff --git a/0.2.1/theme/business/css/beg.css b/0.2.1/theme/business/css/beg.css
new file mode 100644 (file)
index 0000000..807629b
--- /dev/null
@@ -0,0 +1,9 @@
+.beg_table {
+       background-color: #FFFFFF;
+}
+
+.beg_msg {
+       background-color: #EEEEFF;
+       padding-left: 10px;
+       padding-right: 10px;
+}
diff --git a/0.2.1/theme/business/css/bonus.css b/0.2.1/theme/business/css/bonus.css
new file mode 100644 (file)
index 0000000..66f7b6f
--- /dev/null
@@ -0,0 +1,13 @@
+.bonus_rank_1 {
+       font-weight : bold;
+       font-size   : 22px;
+}
+
+.bonus_rank_2 {
+       font-weight : bold;
+       font-size   : 18px;
+}
+
+.bonus_rank_3 {
+       font-weight : bold;
+}
diff --git a/0.2.1/theme/business/css/doubler.css b/0.2.1/theme/business/css/doubler.css
new file mode 100644 (file)
index 0000000..8d81723
--- /dev/null
@@ -0,0 +1,25 @@
+.doubler_table {
+}
+
+.doubler_main {
+}
+
+.doubler_error {
+       font-weight     : bold;
+       color           : #AA0000;
+}
+
+.doubler_big_row {
+       height          : 70px;
+}
+
+.doubler_header {
+     text-align          : center;
+     height              : 24px;
+     background-color    : #EEEEFF;
+}
+
+.doubler_footer {
+     height              : 24px;
+     background-color    : #EEEEFF;
+}
diff --git a/0.2.1/theme/business/css/general.css b/0.2.1/theme/business/css/general.css
new file mode 100644 (file)
index 0000000..b448661
--- /dev/null
@@ -0,0 +1,635 @@
+body {
+       background-color        : #FFFFFF;
+       color                           : #000000;
+       font-family                     : Verdana, Arial, Geneva, Helvetica, sans-serif;
+       font-size                       : 12px;
+       letter-spacing      : 1px;
+
+       margin                          : 0px;
+       margin-left                     : 0px;
+       margin-right            : 0px;
+       margin-top                      : 0px;
+       margin-bottom           : 0px;
+}
+
+table {
+       table-layout            : auto;
+       border-spacing          : 0px;
+       overflow                        : auto;
+}
+
+A {
+       font-style              : normal;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+       text-decoration : none;
+}
+
+A:link {
+       color                   : #000000;
+}
+
+A:visited {
+       color                   : #000000;
+}
+
+A:active {
+       color                   : #000088;
+       background-color        : transparent;
+}
+
+A:hover {
+       background-color        : transparent;
+}
+
+input, textarea, select, option {
+       color                           : #000000;
+       background-color        : #FFFFFF;
+       border                          : 1px solid #000000;
+       text-decoration         : none;
+}
+
+ul, ol {
+       margin-top              : 0px;
+       margin-bottom           : 0px;
+}
+
+.admin_reset, .guest_reset, .member_reset {
+       border-style            : groove;
+       border                  : solid 1px #000000;
+       color                   : #000000;
+}
+
+.admin_submit, .guest_submit, .member_submit {
+       color                   : #000000;
+       border-color            : #000000;
+}
+
+.admin_submit_reject {
+       border-style            : groove;
+       color                   : #000000;
+       border-color            : #000000;
+}
+
+.runtime_fatal, .runtime_fatalcontent {
+       color                   : #000000;
+       background-color        : #FFFFFF;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+}
+
+.runtime_fatal {
+       color                   : #000000;
+}
+
+.runtime_fatalcontent {
+       text-align              : left;
+       font-size                       : 12px;
+}
+
+.admin {
+       color                   : #000000;
+       background-color        : #FFFFFF;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+}
+
+.admin_note {
+       color                   : #000000;
+       font-size                       : 12px;
+}
+
+DIV.admin_note {
+       padding-top         : 10px;
+       padding-right       : 10px;
+       padding-left        : 10px;
+}
+
+.admin_fatal {
+       color                   : #000000;
+       font-size                       : 18px;
+}
+
+.admin_edit, .member_confirm {
+       background-color        : #FFFFFF;
+}
+
+.member_banner {
+       background-color        : #FFFFFF;
+       width                   : 488px;
+}
+
+.admin_error {
+       background-color        : #FFFFFF;
+       color                   : #000000;
+       font-size                       : 10px;
+}
+
+.admin_select, .guest_select, .member_select {
+       border                  : solid 1px;
+       border-color            : #000000;
+       background-color        : #EEEEFF;
+}
+
+.admin_register, .admin_desc_header, .admin_done, .admin_title, .member_title2, .guest_title2, .admin_message {
+       background-color        : #EEEEFF;
+       color                   : #000000;
+       text-align              : center;
+}
+
+.admin_title2 {
+       background-color        : #EEEEFF;
+       color                   : #000000;
+       text-align              : center;
+       height                  : 25px;
+       font-size                       : 14px;
+}
+
+.member_done, .guest_done {
+       color                   : #000000;
+}
+
+.member_misc {
+       background-color        : #FFFFFF;
+}
+
+.admin_misc, .member_misc {
+       color                   : #000000;
+}
+
+.admin_done2 {
+       color                   : #000000;
+}
+
+.admin_green, .admin_no {
+       color                   : #000000;
+}
+
+.admin_welcome {
+       background-color        : #EEEEFF;
+       color                   : #000000;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 50px;
+}
+
+.admin_header {
+       background-color        : #EEEEFF;
+}
+
+.admin_menu {
+       background-color        : #EEEEFF;
+       color                   : #000000;
+       width                   : 230px;
+}
+
+.admin_logout {
+       background-color        : #DDDDFF;
+       color                   : #000000;
+}
+
+.admin_desc_cont {
+       text-align          : left;
+       background-color    : #FFFFFF;
+}
+
+.admin_table, .member_table {
+       background-color        : #FFFFFF;
+}
+
+.admin_editmenu {
+       min-width                       : 500px;
+       max-width                       : 90%;
+}
+
+.admin_form_header {
+       text-align          : center;
+       height                  : 36px;
+       background-color        : #EEEEFF;
+       color                   : #000000;
+}
+
+.member_header {
+       text-align          : center;
+       height                  : 28px;
+       background-color        : #EEEEFF;
+}
+
+.admin_failed, .guest_failed, .member_failed, .member_note {
+       color                   : #000000;
+}
+
+.member_note_bg {
+       background-color        : #FFFFFF;
+}
+
+.member_data {
+       background-color        : #FFFFFF;
+       color                   : #000000;
+       height                  : 20px;
+}
+
+.admin_header_b1 {
+       border-bottom           : 1px solid #000000;
+       background-color        : #EEEEFF;
+       height                  : 22px;
+}
+
+.admin_snote {
+       font-size                       : 12px;
+}
+
+.admin_normal, .guest_normal, .member_normal {
+       border-style            : solid;
+       border                  : solid 1px;
+       border-color            : #000000;
+       background-color        : #EEEEFF;
+}
+
+.admin_alpha {
+       text-align      : center;
+       height          : 40px;
+       vertical-align  : middle;
+}
+
+.admin_sortlinks {
+       text-align      : center;
+       height          : 20px;
+       vertical-align  : middle;
+}
+
+.member_stats {
+       vertical-align          : top;
+       font-weight             : bold;
+       height                  : 23px;
+       font-size                       : 16px;
+       border-style            : none;
+       border                  : 0px;
+       background          : #FFFFFF;
+       color                   : #000000;
+       margin-top              : -4px;
+       margin-bottom           : 1px;
+       cursor                  : default;
+}
+
+.normal {
+       border-style            : groove;
+}
+
+.member_main {
+       background-color        : #FFFFFF;
+}
+
+.guest_title, .member_title {
+       text-align              : center;
+       color                   : #000000;
+       vertical-align          : middle;
+       background-color        : #EEEEFF;
+       height                  : 60px;
+}
+
+.guest_login_header {
+       color                   : #000000;
+       vertical-align          : middle;
+       background-color        : #EEEEFF;
+}
+
+.guest_menu, .member_menu {
+       width                   : 220px;
+       background-color        : #FFFFFF;
+       vertical-align          : top;
+}
+
+.guest_menu_title, .member_menu_title {
+       background-color        : #EEEEFF;
+       color                   : #000000;
+       height                  : 25px;
+       width                   : 200px;
+       border                  : 1px solid #000000;
+}
+
+.guest_menu_row, .guest_menu_bottom, .member_menu_row, .member_menu_bottom {
+       border                  : 1px solid #000000;
+       border-top              : 0px;
+       background-color        : #FFFFFF;
+       height                  : 22px;
+       text-align              : left;
+}
+
+.guest_menu_seperator, .member_menu_seperator {
+       height                  : 15px;
+}
+
+.guest_content, .member_content {
+       background-color        : #FFFFFF;
+       width                   : 99%;
+       padding-left            : 2px;
+       padding-right           : 2px;
+       margin-left             : 5px;
+       margin-right            : 5px;
+}
+
+.guest_advert, .guest_login, .member_advert, .member_login {
+       background-color        : #FFFFFF;
+       vertical-align          : top;
+       margin-top              : 10px;
+}
+
+.guest_footer {
+       height              : 30px;
+       background-color    : #EEEEFF;
+}
+
+#master {
+       width                   : 100%;
+       height                  : 100%;
+       min-height              : 90%;
+       max-height              : 100%;
+       vertical-align  : top;
+}
+
+.masterbox {
+       text-align              : center;
+       align                   : center;
+}
+
+.footer_lines {
+       vertical-align      : bottom;
+       font-size           : 10px;
+       width                   : 380px;
+       vertical-align          : middle;
+       background-color        : #FFFFFF;
+       height                  : 40px;
+}
+
+.dashed {
+       border                  : solid 1px;
+       border-color            : #000000;
+}
+
+.switch_sw1, .switch_mem1 {
+       background-color        : #FFFFFF;
+}
+
+.switch_sw2, .switch_mem2 {
+       background-color        : #FFFFFF;
+}
+
+.impressum {
+       font-size                       : 12px;
+       width                   : 320px;
+       vertical-align          : middle;
+       background-color        : #FFFFFF;
+       height                  : 70px;
+}
+
+.mediadata {
+       background-color        : #FFFFFF;
+}
+
+.media_header, .impressum_header {
+       background-color        : #EEEEFF;
+       text-align              : center;
+       color                   : #000000;
+       height                  : 26px;
+       font-weight             : bold;
+       font-size                       : 20px;
+}
+
+.media_left {
+       font-size                       : 14px;
+       width                   : 200px;
+}
+
+.media_right {
+       color                   : #000000;
+       font-weight             : bold;
+       font-size                       : 14px;
+       width                   : 70px;
+}
+
+.admin_sep_footer {
+       background-color        : #EEEEFF;
+       font-size           : 1px;
+}
+
+.admin_sep_footer2 {
+       background-color        : #EEEEFF;
+       font-size           : 1px;
+}
+
+.admin_footer, .member_refbanner, .member_update, .admin_del_link {
+       background-color        : #EEEEFF;
+}
+
+.member_footer {
+       height                  : 30px;
+       background-color        : #EEEEFF;
+}
+
+.admin_footer {
+       height                  : 30px
+}
+
+.admin_task_header {
+       background-color        : #EEEEFF;
+       color                   : #000000;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 35px;
+}
+
+.seperator {
+       font-size                       : 1px
+}
+
+.tab1 {
+       text-align              : center
+}
+
+.admin_delete, .admin_yes {
+       border-style            : groove;
+       border                  : solid 1px #000000;
+       background-color        : #000000;
+       color                   : #FFFFFF;
+}
+
+.guest_stats {
+       background-color        : #FFFFFF;
+       width                   : 460px;
+}
+
+.guest_stats_title {
+       color                   : #000000;
+       vertical-align          : middle;
+       background-color        : #EEEEFF;
+       height                  : 30px;
+}
+
+.guest_stats_l {
+       width                   : 344px;
+       text-align              : right;
+}
+
+.guest_stats_m {
+       width                   : 2px;
+}
+
+.guest_stats_r, .guest_stats_lr, .guest_stats_rr {
+       color                   : #000000;
+       width                   : 28px;
+       font-weight             : bold;
+       text-align              : center;
+}
+
+.guest_stats_ll, .guest_stats_rl {
+       width                   : 192px;
+       text-align              : right;
+}
+
+.guest_stats_footer {
+       color                   : #000000;
+       vertical-align          : middle;
+       background-color        : #EEEEFF;
+       height                  : 20px;
+}
+
+.task_pre {
+       font-weight             : bold;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 10px;
+       margin-bottom           : 10px;
+}
+
+.impressum_body {
+       background-color        : #FFFFFF;
+}
+
+.guest_content_align, .member_content_align, .admin_content_align {
+       text-align              : center;
+       vertical-align          : top;
+}
+
+.member_mailidtop {
+       background-color        : #FFFFFF;
+       width                   : 100%;
+       height                  : 100%;
+}
+
+.list_categories, .admin_action_header, .admin_main, .admin_menu_main, .admin_menu_sub {
+       text-align              : left;
+       width                   : 100%;
+}
+
+.member_unconfirmed {
+       background-color        : #FFFFFF;
+       width                   : 100%;
+       text-align              : center;
+}
+
+.you_are_here {
+       white-space             : nowrap;
+       font-size                       : 14px;
+       text-align              : left;
+}
+
+.tiny   { font-size            : 12px; }
+.medium { font-size            : 14px; }
+.big    { font-size            : 20px; }
+
+.top    { border-top   : 1px solid #000000; }
+.bottom { border-bottom        : 1px solid #000000; }
+.left   { border-left  : 1px solid #000000; }
+.right  { border-right : 1px solid #000000; }
+
+.top2    { border-top  : 1px solid #000000; }
+.bottom2 { border-bottom       : 1px solid #000000; }
+.left2   { border-left : 1px solid #000000; }
+.right2  { border-right        : 1px solid #000000; }
+
+.nobr {
+       white-space             : nowrap;
+}
+
+.guest_table {
+       background-color    : #FFFFFF;
+}
+
+.main {
+       height                  : 99%;
+       vertical-align  : top;
+}
+
+.footer {
+       height                  : 1%
+       vertical-align          : bottom;
+}
+
+.menu_blur {
+       display                 : block;
+}
+
+.menu_blur:hover {
+       background-color        : #EEEEFF;
+}
+
+.disabled {
+       border-style            : groove;
+       background-color        : #660000;
+       color                   : #FFFFFF;
+}
+
+.mini_select {
+     border              : solid 1px;
+     border-color        : #000000;
+     background-color    : #EEEEFF;
+     font-size           : 10px;
+}
+
+.theme_box {
+     border              : 1px solid #000000;
+     border-top          : 0px;
+       width               : 100%;
+       height              : 70px;
+     background-color    : #FFFFFF;
+}
+
+.theme_note {
+       font-size           : 12px;
+       font-weight         : bold;
+}
+
+.theme_content {
+       color               : #000000;
+}
+
+.guest {
+       width                   : 100%;
+}
+
+.agb_box {
+       text-align      : left;
+}
+
+.agb_title, .fatal_title {
+       font-size               : 16px;
+       text-align      : center;
+       height          : 40px;
+       font-weight     : bold;
+}
+
+.agb_para {
+       text-indent     : 8px;
+       text-align      : left;
+       margin-left     : 5px;
+       margin-right    : 5px;
+       margin-bottom   : 12px;
+}
+
+.fatal_box {
+       text-align      : center;
+       width           : 100%;
+       margin-top      : 10px;
+}
+
+.admin_message {
+       margin-bottom   : 15px;
+}
diff --git a/0.2.1/theme/business/css/install.css b/0.2.1/theme/business/css/install.css
new file mode 100644 (file)
index 0000000..eb17555
--- /dev/null
@@ -0,0 +1,64 @@
+.install_fatal {
+       text-align              : left;
+       color                   : #000000;
+}
+
+.install_select {
+       border                  : dashed 1px;
+       border-color            : #000000;
+       background-color        : #EEEEFF;
+}
+.install_normal {
+       border-style            : solid;
+       border                  : dashed 1px;
+       border-color            : #000000;
+}
+
+.install_submit {
+       border-style            : groove;
+}
+
+.install {
+}
+
+.install_main {
+       color                   : #000000;
+       background-color        : #FFFFFF;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+       height                  : 30px;
+       text-decoration : none;
+}
+
+.install_header {
+       color                   : #000000;
+       background-color        : #EEEEFF;
+       font-size                       : 20px;
+       text-decoration : underline;
+       heigth                  : 40px;
+       vertical-align          : middle;
+}
+
+.install_content {
+       height                  : 99%;
+       min-height              : 90%;
+       max-height              : 99%;
+}
+
+.install_fatal {
+       background-color        : #FFFFFF;
+       color                   : #000000;
+}
+
+.install_fatalcontent {
+       text-align              : left;
+       background-color        : #FFFFFF;
+}
+
+.install_error, .install_finished {
+       font-size                       : 20px;
+       color                   : #000000;
+}
+
+.install_security, .install_welcome, .install_intro {
+       color                   : #000000;
+}
diff --git a/0.2.1/theme/business/css/nickname.css b/0.2.1/theme/business/css/nickname.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/0.2.1/theme/business/css/register.css b/0.2.1/theme/business/css/register.css
new file mode 100644 (file)
index 0000000..076a9ae
--- /dev/null
@@ -0,0 +1,91 @@
+.register_submit {
+       border-style            : outset;
+}
+
+.register_reset {
+       border-style            : groove;
+       border                  : solid 1px #000000;
+       color                   : #000000;
+}
+.register_submit {
+       color                   : #000000;
+       border-color            : #000000;
+}
+
+.register_select {
+       border                  : solid 1px;
+       border-color            : #000000;
+       background-color        : #EEEEFF;
+}
+
+.register_failed {
+       color                   : #000000;
+}
+
+.register_snote {
+       font-size                       : 12px;
+}
+
+.register_normal {
+       border-style            : solid;
+       border                  : solid 1px;
+       border-color            : #000000;
+       padding-right           : 5px;
+}
+
+.register_main {
+       background-color        : #FFFFFF;
+       width                   : 540px;
+}
+
+.register_done2 {
+       height                  : 40px;
+       color                   : #000000;
+       background-color        : #FFFFFF;
+       width                   : 500px;
+}
+
+.register_title {
+       background-color        : #EEEEFF;
+       text-align              : center;
+       align                   : center;
+       font-size                       : 18px;
+       padding-left            : 5px;
+       padding-right           : 5px;
+}
+
+.register_seperator {
+       height                  : 7px;
+       font-size                       : 1px;
+}
+
+.register_left {
+       text-align              : right;
+       align                   : right;
+       margin-right            : 2px;
+       color                   : #000000;
+       font-weight             : bold;
+       font-size                       : 14px;
+       padding-left            : 5px;
+}
+
+.register_right {
+       padding-right           : 5px;
+}
+
+.register_header {
+       text-align              : center;
+       align                   : center;
+       background-color        : #EEEEFF;
+       color                   : #000000;
+       font-weight             : bold;
+       border-top              : 1px solid #000000;
+       border-bottom           : 1px solid #000000;
+       height                  : 25px;
+}
+
+A:hover.register_term {
+       background-color        : #EEEEFF;
+       border-top              : 1px solid #000000;
+       border-bottom           : 1px solid #000000;
+}
diff --git a/0.2.1/theme/business/css/task.css b/0.2.1/theme/business/css/task.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/0.2.1/theme/business/css/top10.css b/0.2.1/theme/business/css/top10.css
new file mode 100644 (file)
index 0000000..d50e0ae
--- /dev/null
@@ -0,0 +1,9 @@
+.top10_row1, .top10_row2, .top10_row3, .top10_row4, .top10_row5 {
+       text-align : center;
+       padding-left  : 5px;
+       padding-right : 5px;
+}
+
+.top10_row2, .top10_row4 {
+       text-align : left;
+}
diff --git a/0.2.1/theme/business/css/transfer.css b/0.2.1/theme/business/css/transfer.css
new file mode 100644 (file)
index 0000000..3707b5d
--- /dev/null
@@ -0,0 +1,12 @@
+.transfer_row1, .transfer_row3 {
+       text-align  : center;
+       font-weight : bold;
+}
+
+.transfer_row2 {
+       text-align  : center;
+}
+
+.transfer_row4, .transfer_row5 {
+       padding-left: 2px;
+}
diff --git a/0.2.1/theme/business/images/code_bg.jpg b/0.2.1/theme/business/images/code_bg.jpg
new file mode 100644 (file)
index 0000000..79d72a2
Binary files /dev/null and b/0.2.1/theme/business/images/code_bg.jpg differ
diff --git a/0.2.1/theme/business/images/code_bg.png b/0.2.1/theme/business/images/code_bg.png
new file mode 100644 (file)
index 0000000..d7c5071
Binary files /dev/null and b/0.2.1/theme/business/images/code_bg.png differ
diff --git a/0.2.1/theme/business/theme.php b/0.2.1/theme/business/theme.php
new file mode 100644 (file)
index 0000000..239bc16
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/03/2004 *
+ * ===============                              Last change: 12/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : theme.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Main file for theme support                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+// Theme definitions
+//
+// The name of your theme
+$THEME_NAME = "Solid-Business";
+
+// Only your name please!
+$THEME_AUTHOR = "Roland H&auml;der";
+
+// Your email address
+$THEME_EMAIL = "webmaster@mxchange.org";
+
+// URL where you have uploaded it
+$THEME_URL = "http://www.mxchange.org";
+
+// Version number
+$THEME_VERSION = "0.0";
+
+// Switch mode
+if (empty($THEME_MODE)) $THEME_MODE = "load";
+
+switch ($THEME_MODE)
+{
+case "test": // Do stuff while testing the theme: The admin clicked on "Import"
+       break;
+
+case "load": // Do stuff while theme is loaded normally
+       break;
+}
+//
+?>
diff --git a/0.2.1/theme/default/css/active.css b/0.2.1/theme/default/css/active.css
new file mode 100644 (file)
index 0000000..55b8687
--- /dev/null
@@ -0,0 +1,9 @@
+.active_row1, .active_row2, .active_row3 {
+       text-align    : center;
+       padding-left  : 5px;
+       padding-right : 5px;
+}
+
+.active_row2 {
+       text-align : left;
+}
diff --git a/0.2.1/theme/default/css/beg.css b/0.2.1/theme/default/css/beg.css
new file mode 100644 (file)
index 0000000..c63f55b
--- /dev/null
@@ -0,0 +1,9 @@
+.beg_table {
+       background-color: #ddeedd
+}
+
+.beg_msg {
+       background-color: #e5f6e5;
+       padding-left: 10px;
+       padding-right: 10px;
+}
diff --git a/0.2.1/theme/default/css/bonus.css b/0.2.1/theme/default/css/bonus.css
new file mode 100644 (file)
index 0000000..66f7b6f
--- /dev/null
@@ -0,0 +1,13 @@
+.bonus_rank_1 {
+       font-weight : bold;
+       font-size   : 22px;
+}
+
+.bonus_rank_2 {
+       font-weight : bold;
+       font-size   : 18px;
+}
+
+.bonus_rank_3 {
+       font-weight : bold;
+}
diff --git a/0.2.1/theme/default/css/doubler.css b/0.2.1/theme/default/css/doubler.css
new file mode 100644 (file)
index 0000000..dc79c40
--- /dev/null
@@ -0,0 +1,25 @@
+.doubler_table {
+}
+
+.doubler_main {
+}
+
+.doubler_error {
+       font-weight     : bold;
+       color           : #AA0000;
+}
+
+.doubler_big_row {
+     height         : 70px;
+}
+
+.doubler_header {
+       background-color    : #ddeedd;
+       text-align              : center;
+       height                  : 24px;
+}
+
+.doubler_footer {
+     height              : 24px;
+     background-color    : #ddeedd;
+}
diff --git a/0.2.1/theme/default/css/general.css b/0.2.1/theme/default/css/general.css
new file mode 100644 (file)
index 0000000..a6f6a1c
--- /dev/null
@@ -0,0 +1,653 @@
+body {
+       background-color        : #EEFFEE;
+       color                   : #000000;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+       font-size                       : 12px;
+       letter-spacing      : 1px;
+
+       scrollbar-base-color            : #E9E4AE;
+       scrollbar-face-color            : #CDEFCD;
+       scrollbar-highlight-color       : #EEFFEE;
+       scrollbar-shadow-color          : #CDEFCD;
+       scrollbar-3dlight-color         : #DDDDDD;
+       scrollbar-arrow-color           : #000000;
+       scrollbar-track-color           : #CCEFCC;
+       scrollbar-darkshadow-color      : #999999;
+
+       margin                  : 0px;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 0px;
+       margin-bottom           : 0px;
+}
+
+table {
+       table-layout            : auto;
+       border-spacing          : 0px;
+       overflow                        : auto;
+}
+
+A {
+       font-style              : normal;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+       text-decoration : none;
+}
+
+A:link {
+       color                   : #2e51a9;
+}
+
+A:visited {
+       color                   : #AA0044;
+}
+
+A:active {
+       color                   : #2e51a9;
+       background-color        : transparent;
+}
+
+A:hover {
+       background-color        : transparent;
+}
+
+input, textarea, select, option {
+       color                           : #009900;
+       background-color        : #EEFFEE;
+       border                          : 1px solid #AA0044;
+       text-decoration         : none;
+       border-style            : groove;
+}
+
+ul, ol {
+       margin-top              : 0px;
+       margin-bottom   : 0px;
+}
+
+.admin_reset, .guest_reset, .member_reset {
+       border-style    : groove;
+       border                  : solid 1px #009900;
+       color                   : #AA0044;
+}
+
+.admin_submit, .guest_submit, .member_submit {
+       color                   : #AA0044;
+       border-color            : #009900;
+}
+
+.admin_submit_reject {
+       border-style            : groove;
+       color                   : #881111;
+       border-color            : #009900;
+}
+
+.runtime_fatal, .runtime_fatalcontent {
+       width                   : 700px;
+       color                   : #118811;
+       background-color        : #DDEEDD;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+}
+
+.runtime_fatal {
+       color                   : #00AA00;
+}
+
+.runtime_fatalcontent {
+       text-align              : left;
+       font-size                       : 12px;
+}
+
+.admin {
+       color                   : #118811;
+       background-color        : #DDEEDD;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+}
+
+.admin_note {
+       color                   : #FF0000;
+       font-size                       : 12px;
+}
+
+DIV.admin_note {
+       padding-top         : 10px;
+       padding-right       : 10px;
+       padding-left        : 10px;
+}
+
+.admin_fatal {
+       font-size                       : 18px;
+       color                   : #00AA00;
+}
+
+.admin_edit, .member_confirm {
+       background-color        : #eeffee;
+}
+
+.member_banner {
+       background-color        : #eeffee;
+       width                   : 488px;
+}
+
+.admin_error {
+       background-color        : #eeffee;
+       color                   : #00AA00;
+       font-size                       : 10px;
+}
+
+.admin_select, .guest_select, .member_select {
+       border                  : solid 1px;
+       border-color            : #009900;
+       background-color        : #EEFFEE;
+}
+
+.admin_register, .admin_desc_header, .admin_done, .admin_title, .member_title2, .guest_title2, .admin_message {
+       background-color        : #ddeedd;
+       color                   : #009900;
+       text-align              : center;
+}
+
+.member_done, .guest_done {
+       color                   : #009900;
+}
+
+.member_misc {
+       background-color        : #DDEEDD;
+}
+
+.admin_misc, .member_misc {
+       color                   : #000000;
+}
+
+.admin_done2 {
+       color                   : #AA0044;
+}
+
+.admin_green, .admin_no {
+       color                   : #009900;
+}
+
+.admin_welcome {
+       background-color        : #DDEEDD;
+       color                   : #009900;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 50px;
+}
+
+.admin_header {
+       background-color        : #ddeedd;
+}
+
+.admin_menu {
+       background-color        : #DDEEDD;
+       color                   : #000077;
+       width                   : 230px;
+}
+
+.admin_logout {
+       background-color        : #AAFFAA;
+       color                   : #00AA00;
+}
+
+.admin_desc_cont {
+       text-align          : left;
+       background-color    : #eeffee;
+}
+
+.admin_table, .member_table {
+       background-color        : #eeffee;
+}
+
+.admin_editmenu {
+       min-width                       : 500px;
+       max-width                       : 90%;
+}
+
+.admin_form_header {
+       text-align          : center;
+       height                  : 36px;
+       background-color        : #ddeedd;
+       color                   : #009900;
+}
+
+.member_header {
+       text-align          : center;
+       height                  : 28px;
+       background-color        : #ddeedd;
+}
+
+.admin_failed, .guest_failed, .member_failed, .member_note {
+       color                   : #00AA00;
+}
+
+.member_note_bg {
+       background-color        : #eeffee;
+}
+
+.member_data {
+       background-color        : #eeffee;
+       color                   : #009900;
+       height                  : 20px;
+}
+
+.admin_header_b1 {
+       border-bottom           : 1px solid #AA0044;
+       background-color        : #ddeedd;
+       height                  : 22px;
+}
+
+.admin_snote {
+       font-size                       : 12px;
+}
+
+.admin_normal, .guest_normal, .member_normal {
+       border-style            : solid;
+       border                  : solid 1px;
+       border-color            : #009900;
+}
+
+.member_stats {
+       vertical-align          : top;
+       font-weight             : bold;
+       height                  : 23px;
+       font-size                       : 16px;
+       border-style            : none;
+       border                  : 0px;
+       background          : #DDEEDD;
+       color                   : #000000;
+       margin-top              : -4px;
+       margin-bottom           : 1px;
+       cursor                  : default;
+}
+
+.normal {
+       border-style            : groove;
+}
+
+.member_main {
+       background-color        : #DDEEDD;
+}
+
+.guest_title, .member_title {
+       text-align              : center;
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 60px;
+}
+
+.guest_login_header {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+}
+
+.guest_menu, .member_menu {
+       width                   : 220px;
+       background-color        : #DDEEDD;
+       vertical-align          : top;
+}
+
+.guest_menu_title, .member_menu_title {
+       background-color        : #BDEFCD;
+       color                   : #009900;
+       height                  : 25px;
+       width                   : 200px;
+       border                  : 1px solid #AA0044;
+}
+
+.guest_menu_row, .guest_menu_bottom, .member_menu_row, .member_menu_bottom {
+       border                  : 1px solid #AA0044;
+       border-top              : 0px;
+       background-color        : #eeffbc;
+       height                  : 22px;
+       text-align              : left;
+}
+
+.member_menu_whats {
+       border                  : 1px solid #AA0044;
+       border-top              : 0px;
+       background-color        : #eeffee;
+       height                  : 20px;
+}
+
+.guest_menu_seperator, .member_menu_seperator {
+       height                  : 15px;
+}
+
+.guest_content, .member_content {
+       background-color        : #eeffee;
+       width                   : 99%;
+       padding-left            : 2px;
+       padding-right           : 2px;
+       margin-left             : 5px;
+       margin-right            : 5px;
+}
+
+.guest_advert, .guest_login, .member_advert, .member_login {
+       background-color        : #DDEEDD;
+       vertical-align          : top;
+       margin-top              : 10px;
+}
+
+#master {
+       width                   : 100%;
+       height                  : 100%;
+       min-height              : 90%;
+       max-height              : 100%;
+       text-align              : center;
+}
+
+.masterbox {
+       text-align              : center;
+       align                   : center;
+}
+
+.footer {
+       text-align              : center;
+}
+
+.footer_lines {
+       font-size           : 10px;
+       width                   : 380px;
+       height                  : 40px;
+       vertical-align          : middle;
+       background-color        : #E5EFE5;
+       margin-top              : 5px;
+       margin-bottom           : 5px;
+}
+
+.dashed {
+       border                  : solid 1px;
+       border-color            : #AA0044;
+}
+
+.switch_sw1, .switch_mem1 {
+       background-color        : #b8efc1;
+}
+
+.switch_sw2, .switch_mem2 {
+       background-color        : #b8fccb;
+}
+
+.impressum {
+       font-size                       : 12px;
+       width                   : 320px;
+       vertical-align          : middle;
+       background-color        : #E5EFE5;
+       height                  : 70px;
+}
+
+.mediadata {
+       background-color        : #eeffee;
+}
+
+.media_header, .impressum_header {
+       background-color        : #b8fccb;
+       text-align              : center;
+       color                   : #009900;
+       height                  : 26px;
+       font-weight             : bold;
+       font-size                       : 20px;
+}
+
+.media_left {
+       font-size                       : 14px;
+       width                   : 200px;
+}
+
+.media_right {
+       color                   : #009900;
+       font-weight             : bold;
+       font-size                       : 14px;
+       width                   : 70px;
+}
+
+.admin_sep_footer {
+       background-color        : #DDEEDD;
+       font-size           : 1px;
+}
+
+.admin_sep_footer2 {
+       background-color        : #eeffee;
+       font-size           : 1px;
+}
+
+.admin_footer, .member_refbanner, .member_update, .admin_del_link {
+       background-color        : #DDEEDD;
+}
+
+.member_footer {
+       height                  : 30px;
+       background-color        : #DDEEDD;
+}
+
+.admin_footer {
+       height                  : 30px
+}
+
+.admin_task_header {
+       background-color        : #ddeedd;
+       color                   : #009900;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 35px;
+}
+
+.seperator {
+       font-size                       : 1px
+}
+
+.tab1 {
+       text-align              : center
+}
+
+.admin_delete, .admin_yes {
+       border-style            : groove;
+       border                  : solid 1px #00AA00;
+       background-color        : #AA0044;
+       color                   : #DDEEDD;
+}
+
+.guest_stats {
+       background-color        : #eeffee;
+       width                   : 460px;
+}
+
+.guest_stats_title {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 30px;
+}
+
+.guest_stats_l {
+       width                   : 344px;
+       text-align              : right;
+}
+
+.guest_stats_m {
+       width                   : 2px;
+}
+
+.guest_stats_r, .guest_stats_lr, .guest_stats_rr {
+       color                   : #009900;
+       width                   : 28px;
+       font-weight             : bold;
+       text-align              : center;
+}
+
+.guest_stats_ll, .guest_stats_rl {
+       width                   : 192px;
+       text-align              : right;
+}
+
+.guest_stats_footer {
+       color                   : #009900;
+       vertical-align          : middle;
+       background-color        : #DDEEDD;
+       height                  : 20px;
+}
+
+.task_pre {
+       font-weight             : bold;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 10px;
+       margin-bottom           : 10px;
+}
+
+.impressum_body {
+       background-color        : #DDEEDD;
+}
+
+.guest_content_align, .member_content_align, .admin_content_align {
+       text-align              : center;
+       align                   : center;
+       vertical-align          : top;
+}
+
+.member_mailidtop {
+       background-color        : #DDEEDD;
+       width                   : 100%;
+       height                  : 100%;
+}
+
+.list_categories, .admin_action_header, .admin_main, .admin_menu_main, .admin_menu_sub {
+       text-align              : left;
+       width                   : 100%;
+}
+
+.admin_alpha {
+       text-align      : center;
+       height          : 40px;
+       vertical-align  : middle;
+}
+
+.admin_sortlinks {
+       text-align      : center;
+       height          : 20px;
+       vertical-align  : middle;
+}
+
+.admin_title2 {
+       background-color        : #ddeedd;
+       color                   : #000099;
+       text-align              : center;
+       height                  : 25px;
+       font-size                       : 14px;
+}
+
+.member_unconfirmed {
+       background-color        : #DDEEDD;
+       width                   : 100%;
+       text-align              : center;
+}
+
+.you_are_here {
+       white-space             : nowrap;
+       font-size                       : 14px;
+       text-align              : left;
+}
+
+.tiny   { font-size            : 12px; }
+.medium { font-size            : 14px; }
+.big    { font-size            : 20px; }
+
+.top    { border-top   : 1px solid #4400AA; }
+.bottom { border-bottom        : 1px solid #4400AA; }
+.left   { border-left  : 1px solid #4400AA; }
+.right  { border-right : 1px solid #4400AA; }
+
+.top2    { border-top  : 1px solid #AA0044; }
+.bottom2 { border-bottom       : 1px solid #AA0044; }
+.left2   { border-left : 1px solid #AA0044; }
+.right2  { border-right        : 1px solid #AA0044; }
+
+.nobr {
+       white-space             : nowrap;
+}
+
+.guest_table {
+       background-color    : #eeffee;
+}
+
+.main {
+       height                  : 99%
+}
+
+.footer {
+       height                  : 1%
+       vertical-align          : bottom;
+}
+
+.menu_blur {
+       display                 : block;
+}
+
+.menu_blur:hover {
+       background-color        : #deefac;
+}
+
+.guest_footer {
+       height              : 30px;
+       background-color    : #E5E5F5;
+}
+
+.disabled {
+       border-style: groove;
+       background-color: #660000;
+       color: #FF9900;
+}
+
+.mini_select {
+     border              : dotted 1px;
+     border-color        : #009900;
+     background-color    : #EEFFEE;
+     font-size           : 10px;
+}
+
+.theme_box {
+     border              : 1px dotted #AA0044;
+     border-top          : 0px;
+       width               : 100%;
+       height              : 70px;
+     background-color    : #eeffbc;
+}
+
+.theme_note {
+       font-size           : 12px;
+       font-weight         : bold;
+}
+
+.theme_content {
+       color               : #009900;
+}
+
+.agb_box {
+       text-align      : left;
+}
+
+.agb_title, .fatal_title {
+       font-size               : 16px;
+       text-align      : center;
+       height          : 40px;
+       font-weight     : bold;
+}
+
+.agb_para {
+       text-indent     : 8px;
+       text-align      : left;
+       margin-left     : 5px;
+       margin-right    : 5px;
+       margin-bottom   : 12px;
+}
+
+.fatal_box {
+       text-align      : center;
+       width           : 100%;
+       margin-top      : 10px;
+}
+
+.admin_message {
+       margin-bottom   : 15px;
+}
diff --git a/0.2.1/theme/default/css/install.css b/0.2.1/theme/default/css/install.css
new file mode 100644 (file)
index 0000000..41f8a8a
--- /dev/null
@@ -0,0 +1,77 @@
+.install_fatal {
+       text-align              : left;
+       color                   : #00AA00;
+}
+
+.install_select {
+       border                  : dashed 1px;
+       border-color            : #00AA00;
+       background-color        : #F0F0F5;
+}
+.install_normal {
+       border-style            : solid;
+       border                  : dashed 1px;
+       border-color            : #00AA00;
+}
+
+.install_submit {
+       border-style            : groove;
+}
+
+.install {
+}
+
+.install_main {
+       color                   : #111188;
+       background-color        : #DDEEDD;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+       height                  : 30px;
+       text-decoration : none;
+}
+
+.install_header {
+       color                   : #F76300;
+       background-color        : #CCDDCC;
+       font-size                       : 20px;
+       text-decoration : underline;
+       height                  : 40px;
+       vertical-align          : middle;
+}
+
+.install_content {
+       height                  : 99%;
+       min-height              : 90%;
+       max-height              : 99%;
+}
+
+.install_fatal {
+       background-color        : #DDEEDD;
+       color                   : #AA0000;
+}
+
+.install_fatalcontent {
+       text-align              : left;
+       background-color        : #DDEEDD;
+}
+
+.install_error {
+       font-size                       : 20px;
+       color                   : #AA0000;
+}
+
+.install_finished {
+       font-size                       : 20px;
+       color                   : #00AA00;
+}
+
+.install_security {
+       color                   : #AA0000;
+}
+
+.install_welcome {
+       color                   : #0000CC;
+}
+
+.install_intro {
+       color                   : #000000;
+}
diff --git a/0.2.1/theme/default/css/nickname.css b/0.2.1/theme/default/css/nickname.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/0.2.1/theme/default/css/register.css b/0.2.1/theme/default/css/register.css
new file mode 100644 (file)
index 0000000..68daca9
--- /dev/null
@@ -0,0 +1,81 @@
+.register_submit {
+       border-style            : outset;
+}
+
+.register_reset {
+       border-style            : groove;
+       border                  : solid 1px #009900;
+       color                   : #AA0044;
+}
+.register_submit {
+       color                   : #AA0044;
+       border-color            : #009900;
+}
+
+.register_select {
+       border                  : dotted 1px;
+       border-color            : #009900;
+       background-color        : #EEFFEE;
+}
+
+.register_failed {
+       color                   : #00AA00;
+}
+
+.register_snote {
+       font-size                       : 12px;
+}
+
+.register_normal {
+       border-style            : solid;
+       border                  : dotted 1px;
+       border-color            : #009900;
+}
+
+.register_main {
+       background-color        : #DDEEDD;
+       width                   : 540px;
+}
+
+.register_done2 {
+       height                  : 40px;
+       color                   : #009900;
+       background-color        : #eeffbc;
+       width                   : 500px;
+}
+
+.register_title {
+       text-align              : center;
+       font-size                       : 18px;
+}
+
+.register_seperator {
+       height                  : 7px;
+       font-size                       : 1px;
+}
+
+.register_left {
+       text-align              : right;
+       align                   : right;
+       margin-right            : 2px;
+       color                   : #0000AA;
+       font-weight             : bold;
+       font-size                       : 14px;
+}
+
+.register_right {
+}
+
+.register_header {
+       text-align              : center;
+       background-color        : #eeffbc;
+       color                   : #0000AA;
+       font-weight             : bold;
+       border-top              : 1px dotted #AA0044;
+       border-bottom           : 1px dotted #AA0044;
+       height                  : 25px;
+}
+
+.register_term {
+       background-color        : #AA0044;
+}
diff --git a/0.2.1/theme/default/css/task.css b/0.2.1/theme/default/css/task.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/0.2.1/theme/default/css/top10.css b/0.2.1/theme/default/css/top10.css
new file mode 100644 (file)
index 0000000..3737a9f
--- /dev/null
@@ -0,0 +1,9 @@
+.top10_row1, .top10_row2, .top10_row3, .top10_row4, .top10_row5 {
+       text-align    : center;
+       padding-left  : 5px;
+       padding-right : 5px;
+}
+
+.top10_row2, .top10_row4 {
+       text-align : left;
+}
diff --git a/0.2.1/theme/default/css/transfer.css b/0.2.1/theme/default/css/transfer.css
new file mode 100644 (file)
index 0000000..3707b5d
--- /dev/null
@@ -0,0 +1,12 @@
+.transfer_row1, .transfer_row3 {
+       text-align  : center;
+       font-weight : bold;
+}
+
+.transfer_row2 {
+       text-align  : center;
+}
+
+.transfer_row4, .transfer_row5 {
+       padding-left: 2px;
+}
diff --git a/0.2.1/theme/default/images/code_bg.jpg b/0.2.1/theme/default/images/code_bg.jpg
new file mode 100644 (file)
index 0000000..79d72a2
Binary files /dev/null and b/0.2.1/theme/default/images/code_bg.jpg differ
diff --git a/0.2.1/theme/default/images/code_bg.png b/0.2.1/theme/default/images/code_bg.png
new file mode 100644 (file)
index 0000000..d7c5071
Binary files /dev/null and b/0.2.1/theme/default/images/code_bg.png differ
diff --git a/0.2.1/theme/default/theme.php b/0.2.1/theme/default/theme.php
new file mode 100644 (file)
index 0000000..4dace90
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/03/2004 *
+ * ===============                              Last change: 12/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : theme.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Main file for theme support                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+// Theme definitions
+//
+// The name of your theme
+$THEME_NAME = "Standart-Theme";
+
+// Only your name please!
+$THEME_AUTHOR = "Roland H&auml;der";
+
+// Your email address
+$THEME_EMAIL = "webmaster@mxchange.org";
+
+// URL where you have uploaded it
+$THEME_URL = "http://www.mxchange.org";
+
+// Version number
+$THEME_VERSION = "0.0";
+
+// Switch mode
+if (empty($THEME_MODE)) $THEME_MODE = "load";
+
+switch ($THEME_MODE)
+{
+case "test": // Do stuff while testing the theme: The admin clicked on "Import"
+       break;
+
+case "load": // Do stuff while theme is loaded normally
+       break;
+}
+//
+?>
diff --git a/0.2.1/theme/desert/css/active.css b/0.2.1/theme/desert/css/active.css
new file mode 100644 (file)
index 0000000..478e711
--- /dev/null
@@ -0,0 +1,9 @@
+.active_row1, .active_row2, .active_row3 {
+       text-align : center;
+       padding-left  : 5px;
+       padding-right : 5px;
+}
+
+.active_row2 {
+       text-align : left;
+}
diff --git a/0.2.1/theme/desert/css/beg.css b/0.2.1/theme/desert/css/beg.css
new file mode 100644 (file)
index 0000000..ece151a
--- /dev/null
@@ -0,0 +1,9 @@
+.beg_table {
+       background-color: #FFFFCC;
+}
+
+.beg_msg {
+       background-color: #DDDDAA;
+       padding-left: 10px;
+       padding-right: 10px;
+}
diff --git a/0.2.1/theme/desert/css/bonus.css b/0.2.1/theme/desert/css/bonus.css
new file mode 100644 (file)
index 0000000..66f7b6f
--- /dev/null
@@ -0,0 +1,13 @@
+.bonus_rank_1 {
+       font-weight : bold;
+       font-size   : 22px;
+}
+
+.bonus_rank_2 {
+       font-weight : bold;
+       font-size   : 18px;
+}
+
+.bonus_rank_3 {
+       font-weight : bold;
+}
diff --git a/0.2.1/theme/desert/css/doubler.css b/0.2.1/theme/desert/css/doubler.css
new file mode 100644 (file)
index 0000000..45254c6
--- /dev/null
@@ -0,0 +1,25 @@
+.doubler_table {
+}
+
+.doubler_main {
+}
+
+.doubler_error {
+       font-weight     : bold;
+       color           : #AA0000;
+}
+
+.doubler_big_row {
+       height          : 70px;
+}
+
+.doubler_header {
+     text-align          : center;
+     height              : 24px;
+     background-color    : #DDDDAA;
+}
+
+.doubler_footer {
+     height              : 24px;
+     background-color    : #DDDDAA;
+}
diff --git a/0.2.1/theme/desert/css/general.css b/0.2.1/theme/desert/css/general.css
new file mode 100644 (file)
index 0000000..37b0be9
--- /dev/null
@@ -0,0 +1,631 @@
+body {
+       background-color        : #FFFFCC;
+       color                   : #880000;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+       font-size                       : 12px;
+       letter-spacing      : 1px;
+
+       margin                  : 0px;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 0px;
+       margin-bottom           : 0px;
+}
+
+table {
+       table-layout            : auto;
+       border-spacing          : 0px;
+       overflow                        : auto;
+}
+
+A {
+       font-style              : normal;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+       text-decoration : none;
+}
+
+A:link {
+       color                   : #880000;
+}
+
+A:visited {
+       color                   : #880000;
+}
+
+A:active {
+       color                   : #880000;
+       background-color        : transparent;
+}
+
+A:hover {
+       background-color        : transparent;
+}
+
+input, textarea, select, option {
+       color                           : #880000;
+       background-color        : #FFFFCC;
+       border                          : 1px solid #880000;
+       text-decoration         : none;
+}
+
+ul, ol {
+       margin-top              : 0px;
+       margin-bottom           : 0px;
+}
+
+.admin_reset, .guest_reset, .member_reset {
+       border-style            : groove;
+       border                  : solid 1px #880000;
+       color                   : #880000;
+}
+
+.admin_submit, .guest_submit, .member_submit {
+       color                   : #880000;
+       border-color            : #880000;
+}
+
+.admin_submit_reject {
+       border-style            : groove;
+       color                   : #880000;
+       border-color            : #880000;
+}
+
+.runtime_fatal, .runtime_fatalcontent {
+       color                   : #880000;
+       background-color        : #FFFFCC;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+}
+
+.runtime_fatal {
+       color                   : #880000;
+}
+
+.runtime_fatalcontent {
+       text-align              : left;
+       font-size                       : 12px;
+}
+
+.admin {
+       color                   : #880000;
+       background-color        : #FFFFCC;
+       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
+}
+
+.admin_note {
+       color                   : #880000;
+       font-size                       : 12px;
+}
+
+DIV.admin_note {
+       padding-top             : 10px;
+       padding-right           : 10px;
+       padding-left            : 10px;
+}
+
+.admin_fatal {
+       color                   : #880000;
+       font-size                       : 18px;
+}
+
+.admin_edit, .member_confirm {
+       background-color        : #FFFFCC;
+}
+
+.member_banner {
+       background-color        : #FFFFCC;
+       width                   : 488px;
+}
+
+.admin_error {
+       background-color        : #FFFFCC;
+       color                   : #880000;
+       font-size                       : 10px;
+}
+
+.admin_select, .guest_select, .member_select {
+       border                  : solid 1px;
+       border-color            : #880000;
+       background-color        : #DDDDAA;
+}
+
+.admin_register, .admin_desc_header, .admin_done, .admin_title, .member_title2, .guest_title2, .admin_message {
+       background-color        : #DDDDAA;
+       color                   : #880000;
+       text-align              : center;
+}
+
+.member_done, .guest_done {
+       color                   : #880000;
+}
+
+.member_misc {
+       background-color        : #FFFFCC;
+}
+
+.admin_misc, .member_misc {
+       color                   : #880000;
+}
+
+.admin_done2 {
+       color                   : #880000;
+}
+
+.admin_green, .admin_no {
+       color                   : #880000;
+}
+
+.admin_welcome {
+       background-color        : #DDDDAA;
+       color                   : #880000;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 50px;
+}
+
+.admin_header {
+       background-color        : #DDDDAA;
+}
+
+.admin_menu {
+       background-color        : #DDDDAA;
+       color                   : #880000;
+       width                   : 230px;
+}
+
+.admin_logout {
+       background-color        : #CCCCAA;
+       color                   : #880000;
+}
+
+.admin_desc_cont {
+       text-align              : left;
+       background-color        : #FFFFCC;
+}
+
+.admin_table, .member_table {
+       background-color        : #FFFFCC;
+}
+
+.admin_editmenu {
+       min-width                       : 500px;
+       max-width                       : 90%;
+}
+
+.admin_form_header {
+       text-align          : center;
+       height                  : 36px;
+       background-color        : #DDDDAA;
+       color                   : #880000;
+}
+
+.member_header {
+       text-align          : center;
+       height                  : 28px;
+       background-color        : #DDDDAA;
+}
+
+.admin_failed, .guest_failed, .member_failed, .member_note {
+       color                   : #880000;
+}
+
+.member_note_bg {
+       background-color        : #FFFFCC;
+}
+
+.member_data {
+       background-color        : #FFFFCC;
+       color                   : #880000;
+       height                  : 20px;
+}
+
+.admin_header_b1 {
+       border-bottom           : 1px solid #880000;
+       background-color        : #DDDDAA;
+       height                  : 22px;
+}
+
+.admin_snote {
+       font-size                       : 12px;
+}
+
+.admin_normal, .guest_normal, .member_normal {
+       border-style            : solid;
+       border                  : solid 1px;
+       border-color            : #880000;
+       background-color        : #DDDDAA;
+}
+
+.member_stats {
+       vertical-align          : top;
+       font-weight             : bold;
+       height                  : 23px;
+       font-size                       : 16px;
+       border-style            : none;
+       border                  : 0px;
+       background          : #FFFFCC;
+       color                   : #880000;
+       margin-top              : -4px;
+       margin-bottom           : 1px;
+       cursor                  : default;
+}
+
+.normal {
+       border-style            : groove;
+}
+
+.member_main {
+       background-color        : #FFFFCC;
+}
+
+.guest_title, .member_title {
+       text-align              : center;
+       color                   : #880000;
+       vertical-align          : middle;
+       background-color        : #DDDDAA;
+       height                  : 60px;
+}
+
+.guest_login_header {
+       color                   : #880000;
+       vertical-align          : middle;
+       background-color        : #DDDDAA;
+}
+
+.guest_menu, .member_menu {
+       width                   : 220px;
+       background-color        : #FFFFCC;
+       vertical-align          : top;
+}
+
+.guest_menu_title, .member_menu_title {
+       background-color        : #DDDDAA;
+       color                   : #880000;
+       height                  : 25px;
+       width                   : 200px;
+       border                  : 1px solid #880000;
+}
+
+.guest_menu_row, .guest_menu_bottom, .member_menu_row, .member_menu_bottom {
+       border                  : 1px solid #880000;
+       border-top              : 0px;
+       background-color        : #FFFFCC;
+       height                  : 22px;
+       text-align              : left;
+}
+
+.guest_menu_seperator, .member_menu_seperator {
+       height                  : 15px;
+}
+
+.guest_content, .member_content {
+       background-color        : #FFFFCC;
+       width                   : 99%;
+       padding-left            : 2px;
+       padding-right           : 2px;
+       margin-left             : 5px;
+       margin-right            : 5px;
+}
+
+.guest_advert, .guest_login, .member_advert, .member_login {
+       background-color        : #FFFFCC;
+       vertical-align          : top;
+       margin-top              : 10px;
+}
+
+#master {
+       width                   : 100%;
+       height                  : 100%;
+       min-height              : 90%;
+       max-height              : 100%;
+       vertical-align          : top;
+}
+
+.masterbox {
+       text-align              : center;
+       align                   : center;
+}
+
+.footer_lines {
+       vertical-align      : bottom;
+       font-size           : 10px;
+       width                   : 380px;
+       vertical-align          : middle;
+       background-color        : #FFFFCC;
+       height                  : 40px;
+}
+
+.dashed {
+       border                  : solid 1px;
+       border-color            : #880000;
+}
+
+.switch_sw1, .switch_mem1 {
+       background-color        : #FFFFCC;
+}
+
+.switch_sw2, .switch_mem2 {
+       background-color        : #FFFFCC;
+}
+
+.impressum {
+       font-size                       : 12px;
+       width                   : 320px;
+       vertical-align          : middle;
+       background-color        : #FFFFCC;
+       height                  : 70px;
+}
+
+.mediadata {
+       background-color        : #FFFFCC;
+}
+
+.media_header, .impressum_header {
+       background-color        : #DDDDAA;
+       text-align              : center;
+       color                   : #880000;
+       height                  : 26px;
+       font-weight             : bold;
+       font-size                       : 20px;
+}
+
+.media_left {
+       font-size                       : 14px;
+       width                   : 200px;
+}
+
+.media_right {
+       color                   : #880000;
+       font-weight             : bold;
+       font-size                       : 14px;
+       width                   : 70px;
+}
+
+.admin_sep_footer {
+       background-color        : #DDDDAA;
+       font-size           : 1px;
+}
+
+.admin_sep_footer2 {
+       background-color        : #DDDDAA;
+       font-size           : 1px;
+}
+
+.admin_footer, .member_refbanner, .member_update, .admin_del_link {
+       background-color        : #DDDDAA;
+}
+
+.member_footer {
+       height                  : 30px;
+       background-color        : #DDDDAA;
+}
+
+.admin_footer {
+       height                  : 30px
+}
+
+.admin_task_header {
+       background-color        : #DDDDAA;
+       color                   : #880000;
+       vertical-align          : middle;
+       font-size                       : 18px;
+       height                  : 35px;
+}
+
+.seperator {
+       font-size                       : 1px
+}
+
+.tab1 {
+       text-align              : center
+}
+
+.admin_delete, .admin_yes {
+       border-style            : groove;
+       border                  : solid 1px #880000;
+       background-color        : #880000;
+       color                   : #FFFFCC;
+}
+
+.guest_stats {
+       background-color        : #FFFFCC;
+       width                   : 460px;
+}
+
+.guest_stats_title {
+       color                   : #880000;
+       vertical-align          : middle;
+       background-color        : #DDDDAA;
+       height                  : 30px;
+}
+
+.guest_stats_l {
+       width                   : 344px;
+       text-align              : right;
+}
+
+.guest_stats_m {
+       width                   : 2px;
+}
+
+.guest_stats_r, .guest_stats_lr, .guest_stats_rr {
+       color                   : #880000;
+       width                   : 28px;
+       font-weight             : bold;
+       text-align              : center;
+}
+
+.guest_stats_ll, .guest_stats_rl {
+       width                   : 192px;
+       text-align              : right;
+}
+
+.guest_stats_footer {
+       color                   : #880000;
+       vertical-align          : middle;
+       background-color        : #DDDDAA;
+       height                  : 20px;
+}
+
+.task_pre {
+       font-weight             : bold;
+       margin-left             : 0px;
+       margin-right            : 0px;
+       margin-top              : 10px;
+       margin-bottom           : 10px;
+}
+
+.impressum_body {
+       background-color        : #FFFFCC;
+}
+
+.guest_content_align, .member_content_align, .admin_content_align {
+       text-align              : center;
+       vertical-align          : top;
+}
+
+.member_mailidtop {
+       background-color        : #FFFFCC;
+       width                   : 100%;
+       height                  : 100%;
+}
+
+.list_categories, .admin_action_header, .admin_main, .admin_menu_main, .admin_menu_sub {
+       text-align              : left;
+       width                   : 100%;
+}
+
+.member_unconfirmed {
+       background-color        : #FFFFCC;
+       width                   : 100%;
+       text-align              : center;
+}
+
+.you_are_here {
+       white-space             : nowrap;
+       font-size                       : 14px;
+       text-align              : left;
+}
+
+.tiny   { font-size            : 12px; }
+.medium { font-size            : 14px; }
+.big    { font-size            : 20px; }
+
+.top    { border-top   : 1px solid #880000; }
+.bottom { border-bottom        : 1px solid #880000; }
+.left   { border-left  : 1px solid #880000; }
+.right  { border-right : 1px solid #880000; }
+
+.top2    { border-top  : 1px solid #880000; }
+.bottom2 { border-bottom       : 1px solid #880000; }
+.left2   { border-left : 1px solid #880000; }
+.right2  { border-right        : 1px solid #880000; }
+
+.nobr {
+       white-space             : nowrap;
+}
+
+.guest_table {
+       background-color    : #FFFFCC;
+}
+
+.main {
+       height                  : 99%;
+       vertical-align  : top;
+}
+
+.footer {
+       height                  : 1%
+       vertical-align          : bottom;
+}
+
+.menu_blur {
+       display                 : block;
+}
+
+.menu_blur:hover {
+       background-color        : #DDDDAA;
+}
+
+.guest_footer {
+       height              : 30px;
+       background-color    : #DDDDAA;
+}
+
+.admin_alpha {
+       text-align      : center;
+       height          : 40px;
+       vertical-align  : middle;
+}
+
+.admin_sortlinks {
+       text-align      : center;
+       height          : 20px;
+       vertical-align  : middle;
+}
+
+.disabled {
+       border-style: groove;
+       background-color: #660000;
+       color: #FFFFCC;
+}
+
+.mini_select {
+     border              : solid 1px;
+     border-color        : #880000;
+     background-color    : #DDDDAA;
+     font-size           : 10px;
+}
+
+.theme_box {
+     border              : 1px solid #880000;
+     border-top          : 0px;
+       width               : 100%;
+       height              : 70px;
+     background-color    : #FFFFCC;
+}
+
+.theme_note {
+       font-size           : 12px;
+       font-weight         : bold;
+}
+
+.theme_content {
+       color               : #880000;
+}
+
+.admin_title2 {
+       background-color        : #DDDDAA;
+       color                   : #880000;
+       text-align              : center;
+       height                  : 25px;
+       font-size                       : 14px;
+}
+
+.agb_box {
+       text-align      : left;
+}
+
+.agb_title, .fatal_title {
+       font-size               : 16px;
+       text-align      : center;
+       height          : 40px;
+       font-weight     : bold;
+}
+
+.agb_para  {
+       text-indent     : 8px;
+       text-align      : left;
+       margin-left     : 5px;
+       margin-right    : 5px;
+       margin-bottom   : 12px;
+}
+
+.fatal_box {
+       text-align      : center;
+       width           : 100%;
+       margin-top      : 10px;
+}
+
+.admin_message {
+       margin-bottom   : 15px;
+}
diff --git a/0.2.1/theme/desert/css/help.css b/0.2.1/theme/desert/css/help.css
new file mode 100644 (file)
index 0000000..08fdae0
--- /dev/null
@@ -0,0 +1,12 @@
+.help_main {
+       height                  : 100%;
+}
+
+.help_title {
+       background-color        : #DDDDAA;
+       height                  : 100px;
+}
+
+.help_content {
+     background-color    : #DDDDAA;
+}
diff --git a/0.2.1/theme/desert/css/install.css b/0.2.1/theme/desert/css/install.css
new file mode 100644 (file)
index 0000000..c294aa0
--- /dev/null
@@ -0,0 +1,71 @@
+.install_table {
+       background-color        : #F5F5C5;
+}
+
+.install_msg {
+       color                   : #880000;
+       background-color        : #EDEDBA;
+}
+
+.install_fatal {
+       color                   : #880000;
+}
+
+.install_select {
+       border                  : dashed 1px;
+       border-color            : #880000;
+       background-color        : #DDDDAA;
+}
+.install_normal {
+       border-style            : solid;
+       border                  : dashed 1px;
+       border-color            : #880000;
+}
+
+.install_submit {
+       border-style            : groove;
+}
+
+.install_main {
+       color                   : #880000;
+       background-color        : #FFFFCC;
+       font-family             : Arial, Geneva, Helvetica, sans-serif;
+       height                  : 30px;
+       text-decoration : none;
+}
+
+.install_header {
+       color                   : #880000;
+       background-color        : #DDDDAA;
+       width                   : 400px;
+       height                  : 30px;
+       font-size                       : 20px;
+       text-decoration : underline;
+       padding-top             : 5px;
+       padding-bottom          : 5px;
+}
+
+.install_content {
+       height                  : 99%;
+       min-height              : 90%;
+       max-height              : 99%;
+}
+
+.install_fatal {
+       background-color        : #FFFFCC;
+       color                   : #880000;
+}
+
+.install_fatalcontent {
+       text-align              : left;
+       background-color        : #FFFFCC;
+}
+
+.install_error, .install_finished {
+       font-size                       : 20px;
+       color                   : #880000;
+}
+
+.install_security, .install_welcome, .install_intro {
+       color                   : #880000;
+}
diff --git a/0.2.1/theme/desert/css/paidlinks.css b/0.2.1/theme/desert/css/paidlinks.css
new file mode 100644 (file)
index 0000000..da22079
--- /dev/null
@@ -0,0 +1,8 @@
+.paidlinks_errors {
+       margin-left:    5px;
+       margin-right:   5px;
+       margin-top:     5px;
+       margin-bottom:  5px;
+       text-align:     left;
+       align:          left;
+}
diff --git a/0.2.1/theme/desert/css/register.css b/0.2.1/theme/desert/css/register.css
new file mode 100644 (file)
index 0000000..5480937
--- /dev/null
@@ -0,0 +1,89 @@
+.register_submit {
+       border-style            : outset;
+}
+
+.register_reset {
+       border-style            : groove;
+       border                  : solid 1px #880000;
+       color                   : #880000;
+}
+.register_submit {
+       color                   : #880000;
+       border-color            : #880000;
+}
+
+.register_select {
+       border                  : solid 1px;
+       border-color            : #880000;
+       background-color        : #DDDDAA;
+}
+
+.register_failed {
+       color                   : #880000;
+}
+
+.register_snote {
+       font-size                       : 12px;
+}
+
+.register_normal {
+       border-style            : solid;
+       border                  : solid 1px;
+       border-color            : #880000;
+       padding-right           : 5px;
+}
+
+.register_main {
+       background-color        : #FFFFCC;
+       width                   : 540px;
+}
+
+.register_done2 {
+       height                  : 40px;
+       color                   : #880000;
+       background-color        : #FFFFCC;
+       width                   : 500px;
+}
+
+.register_title {
+       background-color        : #DDDDAA;
+       text-align              : center;
+       font-size                       : 18px;
+       padding-left            : 5px;
+       padding-right           : 5px;
+}
+
+.register_seperator {
+       height                  : 7px;
+       font-size                       : 1px;
+}
+
+.register_left {
+       text-align              : right;
+       align                   : right;
+       margin-right            : 2px;
+       color                   : #880000;
+       font-weight             : bold;
+       font-size                       : 14px;
+       padding-left            : 5px;
+}
+
+.register_right {
+       padding-right           : 5px;
+}
+
+.register_header {
+       text-align              : center;
+       background-color        : #DDDDAA;
+       color                   : #880000;
+       font-weight             : bold;
+       border-top              : 1px solid #880000;
+       border-bottom           : 1px solid #880000;
+       height                  : 25px;
+}
+
+A:hover.register_term {
+       background-color        : #DDDDAA;
+       border-top              : 1px solid #880000;
+       border-bottom           : 1px solid #880000;
+}
diff --git a/0.2.1/theme/desert/css/sponsor.css b/0.2.1/theme/desert/css/sponsor.css
new file mode 100644 (file)
index 0000000..085ba9c
--- /dev/null
@@ -0,0 +1,28 @@
+.sponsor_table {
+       background-color        : #FFFFCC;
+}
+
+.sponsor_action {
+       background-color        : #DDDDAA;
+       height                  : 25px;
+}
+
+.sponsor_header, .sponsor_footer {
+       background-color        : #DDDDAA;
+}
+
+.sponsor_what {
+       background-color        : #FFFFCC;
+       height                  : 24px;
+}
+
+TR.sponsor_row_blur:hover {
+       background-color    : #DDDDAA;
+}
+
+A.sponsor_blur {
+       display                 : block;
+       height                  : 33px;
+       padding-top             : 9px;
+       padding-left            : 7px;
+}
diff --git a/0.2.1/theme/desert/css/top10.css b/0.2.1/theme/desert/css/top10.css
new file mode 100644 (file)
index 0000000..d50e0ae
--- /dev/null
@@ -0,0 +1,9 @@
+.top10_row1, .top10_row2, .top10_row3, .top10_row4, .top10_row5 {
+       text-align : center;
+       padding-left  : 5px;
+       padding-right : 5px;
+}
+
+.top10_row2, .top10_row4 {
+       text-align : left;
+}
diff --git a/0.2.1/theme/desert/css/transfer.css b/0.2.1/theme/desert/css/transfer.css
new file mode 100644 (file)
index 0000000..3707b5d
--- /dev/null
@@ -0,0 +1,12 @@
+.transfer_row1, .transfer_row3 {
+       text-align  : center;
+       font-weight : bold;
+}
+
+.transfer_row2 {
+       text-align  : center;
+}
+
+.transfer_row4, .transfer_row5 {
+       padding-left: 2px;
+}
diff --git a/0.2.1/theme/desert/images/code_bg.jpg b/0.2.1/theme/desert/images/code_bg.jpg
new file mode 100644 (file)
index 0000000..79d72a2
Binary files /dev/null and b/0.2.1/theme/desert/images/code_bg.jpg differ
diff --git a/0.2.1/theme/desert/images/code_bg.png b/0.2.1/theme/desert/images/code_bg.png
new file mode 100644 (file)
index 0000000..d7c5071
Binary files /dev/null and b/0.2.1/theme/desert/images/code_bg.png differ
diff --git a/0.2.1/theme/desert/images/help/bullet.png b/0.2.1/theme/desert/images/help/bullet.png
new file mode 100644 (file)
index 0000000..8452736
Binary files /dev/null and b/0.2.1/theme/desert/images/help/bullet.png differ
diff --git a/0.2.1/theme/desert/images/help/down.jpg b/0.2.1/theme/desert/images/help/down.jpg
new file mode 100644 (file)
index 0000000..6d4ea6a
Binary files /dev/null and b/0.2.1/theme/desert/images/help/down.jpg differ
diff --git a/0.2.1/theme/desert/images/help/left.jpg b/0.2.1/theme/desert/images/help/left.jpg
new file mode 100644 (file)
index 0000000..b368474
Binary files /dev/null and b/0.2.1/theme/desert/images/help/left.jpg differ
diff --git a/0.2.1/theme/desert/images/help/right.jpg b/0.2.1/theme/desert/images/help/right.jpg
new file mode 100644 (file)
index 0000000..6847f62
Binary files /dev/null and b/0.2.1/theme/desert/images/help/right.jpg differ
diff --git a/0.2.1/theme/desert/images/help/up.jpg b/0.2.1/theme/desert/images/help/up.jpg
new file mode 100644 (file)
index 0000000..ecc9fb8
Binary files /dev/null and b/0.2.1/theme/desert/images/help/up.jpg differ
diff --git a/0.2.1/theme/desert/theme.php b/0.2.1/theme/desert/theme.php
new file mode 100644 (file)
index 0000000..375f889
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 12/03/2004 *
+ * ===============                              Last change: 12/03/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : theme.php                                        *
+ * -------------------------------------------------------------------- *
+ * Short description : Main file for theme support                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  :                                                  *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+//
+// Theme definitions
+//
+// The name of your theme
+$THEME_NAME = "Desert-Storm";
+
+// Only your name please!
+$THEME_AUTHOR = "Roland H&auml;der";
+
+// Your email address
+$THEME_EMAIL = "webmaster@mxchange.org";
+
+// URL where you have uploaded it
+$THEME_URL = "http://www.mxchange.org";
+
+// Version number
+$THEME_VERSION = "0.0.1";
+
+// Switch mode
+if (empty($THEME_MODE)) $THEME_MODE = "load";
+
+switch ($THEME_MODE)
+{
+case "test": // Do stuff while testing the theme: The admin clicked on "Import"
+       break;
+
+case "load": // Do stuff while theme is loaded normally
+       break;
+}
+//
+?>
diff --git a/0.2.1/view.php b/0.2.1/view.php
new file mode 100644 (file)
index 0000000..2f688f6
--- /dev/null
@@ -0,0 +1,74 @@
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 01/02/2004 *
+ * ===============                              Last change: 09/04/2004 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : view.php                                         *
+ * -------------------------------------------------------------------- *
+ * Short description : View a banner and count his views                *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Banner anzeigen und Views zaehlen                *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.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 2 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, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
+require_once("inc/libs/security_functions.php");
+
+// Init "action" and "what"
+global $what, $action;
+$GLOBALS['what'] = ""; $GLOBALS['action'] = "";
+if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
+if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
+
+// Set module
+$GLOBALS['module'] = "view"; $CSS = -1;
+
+// Load the required file(s)
+require ("inc/config.php");
+
+if (((!empty($_GET['user'])) || (!empty($_GET['reseller']))) && (!empty($_GET['banner']))) {
+       // Count banner view... we currently don't need the user's id but maybe
+       $VIEW = 1;
+
+       // for later things... ;-)
+       $result = SQL_QUERY_ESC("SELECT url FROM "._MYSQL_PREFIX."_refbanner WHERE id=%d LIMIT 1", array(bigintval($_GET['banner'])), __FILE__, __LINE__);
+       if (SQL_NUMROWS($result) == 1)  {
+               list($url) = SQL_FETCHROW($result);
+               SQL_FREERESULT($result);
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_refbanner SET counter=counter+1 WHERE id=%d LIMIT 1", array(bigintval($_GET['banner'])), __FILE__, __LINE__);
+
+               $type = substr($url, -3);
+               @header ("Content-Type: image/".$type);
+               LOAD_URL($url, false);
+       } else {
+               // Free memory
+               SQL_FREERESULT($result);
+       }
+       exit();
+} else {
+       // Do nothing for now
+       LOAD_URL (URL."/index.php");
+}
+
+//
+?>