From c14f57269ea3c0921cc6a9f9b30cc27dff3ec9e8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Thu, 25 Jun 2009 20:11:35 +0000 Subject: [PATCH 1/1] "copied" --- .gitattributes | 1568 +++++++++ .gitignore | 6 + 0.2.1-FINAL/.htaccess | 9 + 0.2.1-FINAL/.svnignore | 1 + 0.2.1-FINAL/DOCS/INSTALL.txt | 3 + 0.2.1-FINAL/DOCS/LICENSE.txt | 339 ++ 0.2.1-FINAL/DOCS/README | 21 + 0.2.1-FINAL/DOCS/de/AUTHORS.txt | 64 + 0.2.1-FINAL/DOCS/de/CHANGES.txt | 5 + 0.2.1-FINAL/DOCS/de/CSS-PATCHES.txt | 118 + 0.2.1-FINAL/DOCS/de/CSS-PATCHES_05092004.txt | 93 + 0.2.1-FINAL/DOCS/de/DESIGNING.txt | 732 ++++ 0.2.1-FINAL/DOCS/de/EXTENSIONS.txt | 103 + 0.2.1-FINAL/DOCS/de/LICENSE.txt | 17 + 0.2.1-FINAL/DOCS/de/MENUE_HOVER.txt | 24 + 0.2.1-FINAL/DOCS/de/PATCHES.txt | 33 + 0.2.1-FINAL/DOCS/de/PATCH_320.txt | 16 + 0.2.1-FINAL/DOCS/de/README.txt | 352 ++ 0.2.1-FINAL/DOCS/de/SECURITY.txt | 181 + 0.2.1-FINAL/DOCS/de/TEMPLATES.txt | 94 + 0.2.1-FINAL/DOCS/de/THANK_YOU.txt | 52 + 0.2.1-FINAL/DOCS/de/TODO.txt | 29 + 0.2.1-FINAL/DOCS/de/UPGRADING.txt | 29 + 0.2.1-FINAL/DOCS/de/cache/README.txt | 26 + 0.2.1-FINAL/DOCS/de/country/README.txt | 20 + .../DOCS/de/country/countries-europe.sql | 36 + .../DOCS/de/country/countries-full.sql | 257 ++ .../DOCS/de/country/countries-sorted.sql | 257 ++ 0.2.1-FINAL/DOCS/de/doubler/README.txt | 23 + 0.2.1-FINAL/DOCS/de/engine/README.txt | 40 + 0.2.1-FINAL/DOCS/de/promoter.txt | 1 + 0.2.1-FINAL/DOCS/de/rallye/README.txt | 27 + 0.2.1-FINAL/DOCS/de/rewrite/.htaccess | 5 + 0.2.1-FINAL/DOCS/de/rewrite/README.txt | 25 + .../DOCS/de/rewrite/README_htaccess.de | 25 + 0.2.1-FINAL/DOCS/de/task/README.txt | 6 + 0.2.1-FINAL/DOCS/de/themes/README.txt | 69 + 0.2.1-FINAL/DOCS/en/AUTHORS.txt | 37 + 0.2.1-FINAL/DOCS/en/CHANGES.txt | 5 + 0.2.1-FINAL/DOCS/en/CSS-PATCHES.txt | 111 + 0.2.1-FINAL/DOCS/en/CSS-PATCHES_05092004.txt | 87 + 0.2.1-FINAL/DOCS/en/DESIGNING.txt | 732 ++++ 0.2.1-FINAL/DOCS/en/EXTENSIONS.txt | 5 + 0.2.1-FINAL/DOCS/en/LICENSE.txt | 3 + 0.2.1-FINAL/DOCS/en/MENUE_HOVER.txt | 19 + 0.2.1-FINAL/DOCS/en/PATCHES.txt | 28 + 0.2.1-FINAL/DOCS/en/PATCH_320.txt | 16 + 0.2.1-FINAL/DOCS/en/README.txt | 66 + 0.2.1-FINAL/DOCS/en/SECURITY.txt | 179 + 0.2.1-FINAL/DOCS/en/TEMPLATES.txt | 99 + 0.2.1-FINAL/DOCS/en/THANK_YOU.txt | 36 + 0.2.1-FINAL/DOCS/en/TODO.txt | 15 + 0.2.1-FINAL/DOCS/en/UPGRADING.txt | 29 + 0.2.1-FINAL/DOCS/en/cache/README.txt | 19 + 0.2.1-FINAL/DOCS/en/country/README.txt | 20 + .../DOCS/en/country/countries-europe.sql | 36 + .../DOCS/en/country/countries-full.sql | 257 ++ .../DOCS/en/country/countries-sorted.sql | 257 ++ 0.2.1-FINAL/DOCS/en/doubler/README.txt | 23 + 0.2.1-FINAL/DOCS/en/engine/README.txt | 40 + 0.2.1-FINAL/DOCS/en/promoter.txt | 7 + 0.2.1-FINAL/DOCS/en/rallye/README.txt | 27 + 0.2.1-FINAL/DOCS/en/rewrite/.htaccess | 5 + 0.2.1-FINAL/DOCS/en/rewrite/README.txt | 25 + .../DOCS/en/rewrite/README_htaccess.de | 25 + 0.2.1-FINAL/DOCS/en/task/README.txt | 6 + 0.2.1-FINAL/DOCS/en/themes/README.txt | 64 + 0.2.1-FINAL/DOCS/tpl-validator.php | 64 + 0.2.1-FINAL/DOCS/validator.sh | 3 + 0.2.1-FINAL/admin.php | 58 + 0.2.1-FINAL/agb.php | 60 + 0.2.1-FINAL/beg.php | 246 ++ 0.2.1-FINAL/birthday_confirm.php | 137 + 0.2.1-FINAL/click.php | 64 + 0.2.1-FINAL/confirm.php | 69 + 0.2.1-FINAL/css.php | 63 + 0.2.1-FINAL/debug.php | 84 + 0.2.1-FINAL/doubler.php | 280 ++ 0.2.1-FINAL/img.php | 78 + 0.2.1-FINAL/inc/.htaccess | 1 + 0.2.1-FINAL/inc/.secret/.htaccess | 1 + 0.2.1-FINAL/inc/autopurge.php | 50 + 0.2.1-FINAL/inc/autopurge/.htaccess | 1 + 0.2.1-FINAL/inc/autopurge/purge- | 47 + 0.2.1-FINAL/inc/autopurge/purge-general.php | 151 + 0.2.1-FINAL/inc/autopurge/purge-inact.php | 147 + 0.2.1-FINAL/inc/autopurge/purge-mails.php | 127 + 0.2.1-FINAL/inc/autopurge/purge-tsks.php | 65 + .../inc/autopurge/purge-unconfirmed.php | 86 + 0.2.1-FINAL/inc/cache/.htaccess | 1 + 0.2.1-FINAL/inc/check-reset.php | 54 + 0.2.1-FINAL/inc/config.php | 168 + 0.2.1-FINAL/inc/databases.php | 133 + 0.2.1-FINAL/inc/db/.htaccess | 1 + 0.2.1-FINAL/inc/db/lib-mysql3.php | 336 ++ 0.2.1-FINAL/inc/db/lib.php | 58 + 0.2.1-FINAL/inc/debug/.htaccess | 1 + 0.2.1-FINAL/inc/debug/client/.htaccess | 1 + 0.2.1-FINAL/inc/debug/relay/.htaccess | 1 + 0.2.1-FINAL/inc/debug/request_ | 41 + 0.2.1-FINAL/inc/debug/server/.htaccess | 1 + 0.2.1-FINAL/inc/doubler_send.php | 163 + 0.2.1-FINAL/inc/extensions.php | 846 +++++ 0.2.1-FINAL/inc/extensions/.htaccess | 1 + 0.2.1-FINAL/inc/extensions/ext- | 87 + 0.2.1-FINAL/inc/extensions/ext-active.php | 145 + 0.2.1-FINAL/inc/extensions/ext-admins.php | 313 ++ .../inc/extensions/ext-admintheme1.php | 92 + .../inc/extensions/ext-admintheme_default.php | 92 + 0.2.1-FINAL/inc/extensions/ext-autopurge.php | 269 ++ 0.2.1-FINAL/inc/extensions/ext-bank.php | 195 ++ 0.2.1-FINAL/inc/extensions/ext-beg.php | 280 ++ 0.2.1-FINAL/inc/extensions/ext-birthday.php | 205 ++ 0.2.1-FINAL/inc/extensions/ext-bonus.php | 570 ++++ 0.2.1-FINAL/inc/extensions/ext-booking.php | 111 + 0.2.1-FINAL/inc/extensions/ext-cache.php | 264 ++ 0.2.1-FINAL/inc/extensions/ext-country.php | 124 + 0.2.1-FINAL/inc/extensions/ext-debug.php | 179 + 0.2.1-FINAL/inc/extensions/ext-demo.php | 89 + 0.2.1-FINAL/inc/extensions/ext-doubler.php | 249 ++ 0.2.1-FINAL/inc/extensions/ext-events.php | 88 + 0.2.1-FINAL/inc/extensions/ext-holiday.php | 233 ++ 0.2.1-FINAL/inc/extensions/ext-html_mail.php | 176 + 0.2.1-FINAL/inc/extensions/ext-iso3166.php | 338 ++ 0.2.1-FINAL/inc/extensions/ext-mailid.php | 244 ++ .../inc/extensions/ext-maintenance.php | 118 + 0.2.1-FINAL/inc/extensions/ext-mediadata.php | 156 + 0.2.1-FINAL/inc/extensions/ext-mods.php | 123 + 0.2.1-FINAL/inc/extensions/ext-mydata.php | 174 + 0.2.1-FINAL/inc/extensions/ext-network.php | 87 + 0.2.1-FINAL/inc/extensions/ext-newsletter.php | 179 + 0.2.1-FINAL/inc/extensions/ext-nickname.php | 214 ++ 0.2.1-FINAL/inc/extensions/ext-online.php | 136 + 0.2.1-FINAL/inc/extensions/ext-optimize.php | 123 + 0.2.1-FINAL/inc/extensions/ext-order.php | 331 ++ 0.2.1-FINAL/inc/extensions/ext-other.php | 211 ++ 0.2.1-FINAL/inc/extensions/ext-payout.php | 249 ++ 0.2.1-FINAL/inc/extensions/ext-primera.php | 125 + 0.2.1-FINAL/inc/extensions/ext-profile.php | 134 + 0.2.1-FINAL/inc/extensions/ext-rallye.php | 369 ++ 0.2.1-FINAL/inc/extensions/ext-refback.php | 121 + 0.2.1-FINAL/inc/extensions/ext-register.php | 332 ++ 0.2.1-FINAL/inc/extensions/ext-removeip.php | 105 + 0.2.1-FINAL/inc/extensions/ext-repair.php | 119 + 0.2.1-FINAL/inc/extensions/ext-rewrite.php | 172 + 0.2.1-FINAL/inc/extensions/ext-safe.php | 88 + 0.2.1-FINAL/inc/extensions/ext-sponsor.php | 428 +++ .../inc/extensions/ext-sql_patches.php | 784 +++++ 0.2.1-FINAL/inc/extensions/ext-support.php | 136 + 0.2.1-FINAL/inc/extensions/ext-surfbar.php | 241 ++ 0.2.1-FINAL/inc/extensions/ext-task.php | 254 ++ 0.2.1-FINAL/inc/extensions/ext-theme.php | 163 + 0.2.1-FINAL/inc/extensions/ext-top10.php | 150 + 0.2.1-FINAL/inc/extensions/ext-transfer.php | 291 ++ 0.2.1-FINAL/inc/extensions/ext-user.php | 260 ++ 0.2.1-FINAL/inc/extensions/ext-wernis.php | 153 + 0.2.1-FINAL/inc/extensions/ext-yoomedia.php | 145 + 0.2.1-FINAL/inc/fatal_errors.php | 92 + 0.2.1-FINAL/inc/filters.php | 512 +++ 0.2.1-FINAL/inc/footer.php | 85 + 0.2.1-FINAL/inc/functions.php | 3000 +++++++++++++++++ 0.2.1-FINAL/inc/gen_mediadata.php | 98 + 0.2.1-FINAL/inc/gen_refback.php | 90 + 0.2.1-FINAL/inc/gen_sql_patches.php | 122 + 0.2.1-FINAL/inc/header.php | 140 + 0.2.1-FINAL/inc/img/.htaccess | 1 + 0.2.1-FINAL/inc/install-inc.php | 476 +++ 0.2.1-FINAL/inc/js/.htaccess | 1 + 0.2.1-FINAL/inc/language.php | 63 + 0.2.1-FINAL/inc/language/.htaccess | 1 + 0.2.1-FINAL/inc/language/_de.php | 41 + 0.2.1-FINAL/inc/language/active_de.php | 49 + 0.2.1-FINAL/inc/language/admins_de.php | 109 + 0.2.1-FINAL/inc/language/autopurge_de.php | 81 + 0.2.1-FINAL/inc/language/bank_de.php | 82 + 0.2.1-FINAL/inc/language/beg_de.php | 145 + 0.2.1-FINAL/inc/language/birthday_de.php | 54 + 0.2.1-FINAL/inc/language/bonus_de.php | 147 + 0.2.1-FINAL/inc/language/booking_de.php | 41 + 0.2.1-FINAL/inc/language/cache_de.php | 68 + 0.2.1-FINAL/inc/language/country_de.php | 64 + 0.2.1-FINAL/inc/language/de.php | 1251 +++++++ 0.2.1-FINAL/inc/language/debug_de.php | 41 + 0.2.1-FINAL/inc/language/doubler_de.php | 144 + 0.2.1-FINAL/inc/language/en.ph | 744 ++++ 0.2.1-FINAL/inc/language/en.php | 318 ++ 0.2.1-FINAL/inc/language/holiday_de.php | 90 + 0.2.1-FINAL/inc/language/html_mail_de.php | 51 + 0.2.1-FINAL/inc/language/install_de.php | 97 + 0.2.1-FINAL/inc/language/mailid_de.php | 57 + 0.2.1-FINAL/inc/language/maintenance_de.php | 49 + 0.2.1-FINAL/inc/language/mediadata_de.php | 92 + 0.2.1-FINAL/inc/language/mods_de.php | 55 + 0.2.1-FINAL/inc/language/newsletter_de.php | 75 + 0.2.1-FINAL/inc/language/nickname_de.php | 59 + 0.2.1-FINAL/inc/language/online_de.php | 44 + 0.2.1-FINAL/inc/language/optimize_de.php | 57 + 0.2.1-FINAL/inc/language/order_de.php | 83 + 0.2.1-FINAL/inc/language/other_de.php | 87 + 0.2.1-FINAL/inc/language/payout_de.php | 142 + 0.2.1-FINAL/inc/language/primera_de.php | 116 + 0.2.1-FINAL/inc/language/rallye_de.php | 149 + 0.2.1-FINAL/inc/language/refback_de.php | 86 + 0.2.1-FINAL/inc/language/register_de.php | 58 + 0.2.1-FINAL/inc/language/removeip_de.php | 63 + 0.2.1-FINAL/inc/language/repair_de.php | 47 + 0.2.1-FINAL/inc/language/rewrite_de.php | 49 + 0.2.1-FINAL/inc/language/sponsor_de.php | 325 ++ 0.2.1-FINAL/inc/language/support_de.php | 53 + 0.2.1-FINAL/inc/language/surfbar_de.php | 243 ++ 0.2.1-FINAL/inc/language/task_de.php | 127 + 0.2.1-FINAL/inc/language/theme_de.php | 49 + 0.2.1-FINAL/inc/language/top10_de.php | 55 + 0.2.1-FINAL/inc/language/transfer_de.php | 94 + 0.2.1-FINAL/inc/language/user_de.php | 55 + 0.2.1-FINAL/inc/language/wernis_de.php | 132 + 0.2.1-FINAL/inc/language/yoomedia_de.php | 95 + 0.2.1-FINAL/inc/libs/.htaccess | 1 + 0.2.1-FINAL/inc/libs/active_functions.php | 56 + 0.2.1-FINAL/inc/libs/admins_functions.php | 412 +++ 0.2.1-FINAL/inc/libs/autopurge_functions.php | 81 + 0.2.1-FINAL/inc/libs/beg_functions.php | 67 + 0.2.1-FINAL/inc/libs/bonus_functions.php | 253 ++ 0.2.1-FINAL/inc/libs/booking_functions.php | 55 + 0.2.1-FINAL/inc/libs/cache_functions.php | 445 +++ 0.2.1-FINAL/inc/libs/country_functions.php | 65 + 0.2.1-FINAL/inc/libs/debug_functions.php | 41 + 0.2.1-FINAL/inc/libs/doubler_functions.php | 142 + 0.2.1-FINAL/inc/libs/events_functions.php | 41 + 0.2.1-FINAL/inc/libs/holiday_functions.php | 84 + 0.2.1-FINAL/inc/libs/html_mail_functions.php | 172 + 0.2.1-FINAL/inc/libs/mediadata_functions.php | 99 + 0.2.1-FINAL/inc/libs/newsletter_functions.php | 185 + 0.2.1-FINAL/inc/libs/nickname_functions.php | 80 + 0.2.1-FINAL/inc/libs/online_functions.php | 131 + 0.2.1-FINAL/inc/libs/optimize_functions.php | 105 + 0.2.1-FINAL/inc/libs/order_functions.php | 55 + 0.2.1-FINAL/inc/libs/payout_functions.php | 86 + 0.2.1-FINAL/inc/libs/primera_functions.php | 282 ++ 0.2.1-FINAL/inc/libs/rallye_functions.php | 808 +++++ 0.2.1-FINAL/inc/libs/refback_functions.php | 395 +++ 0.2.1-FINAL/inc/libs/register_functions.php | 167 + 0.2.1-FINAL/inc/libs/removeip_functions.php | 159 + 0.2.1-FINAL/inc/libs/rewrite_functions.php | 115 + 0.2.1-FINAL/inc/libs/security_functions.php | 228 ++ 0.2.1-FINAL/inc/libs/sponsor_functions.php | 635 ++++ 0.2.1-FINAL/inc/libs/surfbar_functions.php | 1688 ++++++++++ 0.2.1-FINAL/inc/libs/task_functions.php | 574 ++++ 0.2.1-FINAL/inc/libs/theme_functions.php | 217 ++ 0.2.1-FINAL/inc/libs/transfer_functions.php | 76 + 0.2.1-FINAL/inc/libs/user_functions.php | 261 ++ 0.2.1-FINAL/inc/libs/wernis_functions.php | 402 +++ 0.2.1-FINAL/inc/libs/yoomedia_functions.php | 363 ++ 0.2.1-FINAL/inc/load_cache.php | 47 + 0.2.1-FINAL/inc/load_extensions.php | 294 ++ 0.2.1-FINAL/inc/loader/.htaccess | 1 + 0.2.1-FINAL/inc/loader/load_cache-admin.php | 146 + 0.2.1-FINAL/inc/loader/load_cache-config.php | 73 + 0.2.1-FINAL/inc/loader/load_cache-modreg.php | 103 + .../inc/loader/load_cache-refdepths.php | 71 + .../inc/loader/load_cache-refsystem.php | 71 + 0.2.1-FINAL/inc/loader/load_cache-them.php | 98 + 0.2.1-FINAL/inc/mails/.htaccess | 1 + 0.2.1-FINAL/inc/mails/_mails.php | 47 + 0.2.1-FINAL/inc/mails/beg_mails.php | 153 + 0.2.1-FINAL/inc/mails/birthday_mails.php | 111 + 0.2.1-FINAL/inc/mails/bonus_mails.php | 132 + 0.2.1-FINAL/inc/modules/.htaccess | 1 + 0.2.1-FINAL/inc/modules/admin.php | 396 +++ 0.2.1-FINAL/inc/modules/admin/.htaccess | 1 + 0.2.1-FINAL/inc/modules/admin/action- | 53 + .../inc/modules/admin/action-admins.php | 53 + 0.2.1-FINAL/inc/modules/admin/action-bank.php | 53 + .../inc/modules/admin/action-country.php | 53 + .../inc/modules/admin/action-doubler.php | 54 + .../inc/modules/admin/action-email.php | 53 + .../inc/modules/admin/action-holiday.php | 53 + .../inc/modules/admin/action-login.php | 53 + .../inc/modules/admin/action-logout.php | 55 + 0.2.1-FINAL/inc/modules/admin/action-menu.php | 53 + 0.2.1-FINAL/inc/modules/admin/action-misc.php | 53 + 0.2.1-FINAL/inc/modules/admin/action-mods.php | 53 + .../inc/modules/admin/action-newsletter.php | 53 + .../inc/modules/admin/action-payouts.php | 53 + .../inc/modules/admin/action-primera.php | 53 + .../inc/modules/admin/action-rallye.php | 53 + .../inc/modules/admin/action-repair.php | 53 + .../inc/modules/admin/action-setup.php | 53 + .../inc/modules/admin/action-sponsor.php | 52 + .../inc/modules/admin/action-stats.php | 53 + .../inc/modules/admin/action-surfbar.php | 53 + 0.2.1-FINAL/inc/modules/admin/action-task.php | 56 + .../inc/modules/admin/action-theme.php | 53 + .../inc/modules/admin/action-transfer.php | 53 + 0.2.1-FINAL/inc/modules/admin/action-user.php | 53 + .../inc/modules/admin/action-wernis.php | 53 + 0.2.1-FINAL/inc/modules/admin/admin-inc.php | 1317 ++++++++ .../inc/modules/admin/overview-inc.php | 454 +++ 0.2.1-FINAL/inc/modules/admin/what- | 44 + .../modules/admin/what-add_bank_package.php | 53 + .../modules/admin/what-add_guestnl_cat.php | 54 + .../inc/modules/admin/what-add_points.php | 125 + .../inc/modules/admin/what-add_rallye.php | 130 + .../inc/modules/admin/what-add_sponsor.php | 55 + .../modules/admin/what-add_surfbar_url.php | 70 + .../inc/modules/admin/what-admin_add.php | 206 ++ .../inc/modules/admin/what-adminedit.php | 304 ++ .../inc/modules/admin/what-admins_add.php | 78 + .../inc/modules/admin/what-admins_contct.php | 77 + .../inc/modules/admin/what-admins_edit.php | 77 + .../inc/modules/admin/what-admins_mails.php | 197 ++ 0.2.1-FINAL/inc/modules/admin/what-bonus.php | 44 + .../inc/modules/admin/what-cache_stats.php | 56 + .../inc/modules/admin/what-chk_regs.php | 86 + .../inc/modules/admin/what-config_active.php | 55 + .../inc/modules/admin/what-config_admin.php | 65 + .../inc/modules/admin/what-config_admins.php | 280 ++ .../modules/admin/what-config_autopurge.php | 80 + .../inc/modules/admin/what-config_beg.php | 197 ++ .../modules/admin/what-config_birthday.php | 79 + .../inc/modules/admin/what-config_bonus.php | 243 ++ .../inc/modules/admin/what-config_cache.php | 195 ++ .../inc/modules/admin/what-config_cats.php | 198 ++ .../inc/modules/admin/what-config_doubler.php | 141 + .../inc/modules/admin/what-config_email.php | 177 + .../modules/admin/what-config_extensions.php | 66 + .../inc/modules/admin/what-config_holiday.php | 70 + .../inc/modules/admin/what-config_home.php | 113 + .../modules/admin/what-config_mediadata.php | 103 + .../inc/modules/admin/what-config_mods.php | 162 + .../modules/admin/what-config_newsletter.php | 57 + .../modules/admin/what-config_nickname.php | 52 + .../inc/modules/admin/what-config_order.php | 133 + .../inc/modules/admin/what-config_other.php | 200 ++ .../inc/modules/admin/what-config_payouts.php | 249 ++ .../inc/modules/admin/what-config_points.php | 283 ++ .../inc/modules/admin/what-config_primera.php | 77 + .../inc/modules/admin/what-config_proxy.php | 66 + .../admin/what-config_rallye_prices.php | 289 ++ .../inc/modules/admin/what-config_refback.php | 71 + .../inc/modules/admin/what-config_refid.php | 84 + .../modules/admin/what-config_register.php | 79 + .../modules/admin/what-config_register2.php | 64 + .../modules/admin/what-config_removeip.php | 168 + .../inc/modules/admin/what-config_rewrite.php | 101 + .../inc/modules/admin/what-config_secure.php | 69 + .../inc/modules/admin/what-config_session.php | 63 + .../inc/modules/admin/what-config_sponsor.php | 60 + .../inc/modules/admin/what-config_stats.php | 78 + .../inc/modules/admin/what-config_surfbar.php | 152 + .../inc/modules/admin/what-config_title.php | 62 + .../inc/modules/admin/what-config_top10.php | 57 + .../modules/admin/what-config_transfer.php | 74 + .../inc/modules/admin/what-config_user.php | 55 + .../inc/modules/admin/what-config_wernis.php | 108 + .../modules/admin/what-config_yoomedia.php | 94 + .../inc/modules/admin/what-del_email.php | 245 ++ .../inc/modules/admin/what-del_holiday.php | 129 + .../inc/modules/admin/what-del_sponsor.php | 102 + .../inc/modules/admin/what-del_task.php | 47 + .../inc/modules/admin/what-del_transfer.php | 117 + .../inc/modules/admin/what-del_user.php | 89 + .../inc/modules/admin/what-edit_emails.php | 116 + .../inc/modules/admin/what-edit_sponsor.php | 208 ++ .../inc/modules/admin/what-edit_user.php | 156 + .../inc/modules/admin/what-email_archiv.php | 137 + .../inc/modules/admin/what-email_details.php | 231 ++ .../inc/modules/admin/what-email_stats.php | 44 + .../inc/modules/admin/what-extensions.php | 347 ++ .../inc/modules/admin/what-guest_add.php | 208 ++ .../inc/modules/admin/what-guestedit.php | 346 ++ .../inc/modules/admin/what-holiday_list.php | 43 + .../inc/modules/admin/what-holiday_remove.php | 44 + .../inc/modules/admin/what-list_autopurge.php | 99 + .../modules/admin/what-list_bank_package.php | 112 + .../inc/modules/admin/what-list_beg.php | 130 + .../inc/modules/admin/what-list_bonus.php | 144 + .../inc/modules/admin/what-list_cats.php | 107 + .../inc/modules/admin/what-list_country.php | 229 ++ .../inc/modules/admin/what-list_doubler.php | 135 + .../inc/modules/admin/what-list_holiday.php | 89 + .../inc/modules/admin/what-list_links.php | 167 + .../modules/admin/what-list_newsletter.php | 66 + .../modules/admin/what-list_notifications.php | 118 + .../inc/modules/admin/what-list_payouts.php | 275 ++ .../inc/modules/admin/what-list_primera.php | 80 + .../inc/modules/admin/what-list_rallyes.php | 401 +++ .../inc/modules/admin/what-list_refs.php | 252 ++ .../inc/modules/admin/what-list_sponsor.php | 181 + .../modules/admin/what-list_sponsor_pay.php | 217 ++ .../modules/admin/what-list_sponsor_pays.php | 61 + .../admin/what-list_surfbar_actions.php | 87 + .../modules/admin/what-list_surfbar_urls.php | 165 + .../inc/modules/admin/what-list_task.php | 216 ++ .../inc/modules/admin/what-list_transfer.php | 100 + .../modules/admin/what-list_unconfirmed.php | 192 ++ .../inc/modules/admin/what-list_user.php | 367 ++ .../inc/modules/admin/what-list_wernis.php | 80 + .../modules/admin/what-list_yoomedia_tm.php | 142 + .../inc/modules/admin/what-lock_sponsor.php | 122 + .../inc/modules/admin/what-lock_user.php | 185 + 0.2.1-FINAL/inc/modules/admin/what-logs.php | 98 + .../inc/modules/admin/what-maintenance.php | 80 + .../inc/modules/admin/what-mem_add.php | 208 ++ .../inc/modules/admin/what-memedit.php | 321 ++ .../inc/modules/admin/what-optimize.php | 99 + .../inc/modules/admin/what-overview.php | 94 + .../inc/modules/admin/what-payments.php | 180 + .../inc/modules/admin/what-refbanner.php | 175 + .../inc/modules/admin/what-repair_amenu.php | 86 + .../inc/modules/admin/what-repair_cats.php | 90 + .../inc/modules/admin/what-repair_gmenu.php | 82 + .../inc/modules/admin/what-repair_mmenu.php | 82 + .../inc/modules/admin/what-send_bonus.php | 87 + .../modules/admin/what-send_newsletter.php | 92 + .../inc/modules/admin/what-stats_mods.php | 117 + .../inc/modules/admin/what-sub_points.php | 143 + .../inc/modules/admin/what-surfbar_stats.php | 132 + .../inc/modules/admin/what-theme_check.php | 154 + .../inc/modules/admin/what-theme_edit.php | 149 + .../inc/modules/admin/what-theme_import.php | 169 + .../inc/modules/admin/what-unlock_emails.php | 243 ++ .../inc/modules/admin/what-unlock_sponsor.php | 203 ++ .../admin/what-unlock_surfbar_urls.php | 99 + .../inc/modules/admin/what-updates.php | 141 + 0.2.1-FINAL/inc/modules/admin/what-usage.php | 99 + .../inc/modules/admin/what-user_contct.php | 83 + .../inc/modules/admin/what-user_online.php | 129 + .../inc/modules/admin/what-usr_online.php | 127 + 0.2.1-FINAL/inc/modules/chk_login.php | 119 + 0.2.1-FINAL/inc/modules/frametester.php | 121 + 0.2.1-FINAL/inc/modules/guest/.htaccess | 1 + 0.2.1-FINAL/inc/modules/guest/action- | 61 + .../inc/modules/guest/action-admin.php | 55 + 0.2.1-FINAL/inc/modules/guest/action-main.php | 60 + .../inc/modules/guest/action-members.php | 58 + .../inc/modules/guest/action-online.php | 71 + .../inc/modules/guest/action-sponsor.php | 60 + .../inc/modules/guest/action-themes.php | 76 + 0.2.1-FINAL/inc/modules/guest/what- | 47 + 0.2.1-FINAL/inc/modules/guest/what-active.php | 94 + 0.2.1-FINAL/inc/modules/guest/what-admin.php | 44 + 0.2.1-FINAL/inc/modules/guest/what-agb.php | 47 + 0.2.1-FINAL/inc/modules/guest/what-beg.php | 69 + .../inc/modules/guest/what-confirm.php | 178 + .../inc/modules/guest/what-doubler.php | 87 + .../inc/modules/guest/what-impressum.php | 47 + 0.2.1-FINAL/inc/modules/guest/what-infos.php | 47 + 0.2.1-FINAL/inc/modules/guest/what-login.php | 383 +++ .../inc/modules/guest/what-mediadata.php | 318 ++ .../inc/modules/guest/what-rallyes.php | 145 + .../inc/modules/guest/what-register.php | 477 +++ .../inc/modules/guest/what-sponsor_agb.php | 50 + .../inc/modules/guest/what-sponsor_infos.php | 126 + .../inc/modules/guest/what-sponsor_login.php | 272 ++ .../inc/modules/guest/what-sponsor_reg.php | 425 +++ 0.2.1-FINAL/inc/modules/guest/what-stats.php | 228 ++ 0.2.1-FINAL/inc/modules/guest/what-top10.php | 205 ++ .../inc/modules/guest/what-welcome.php | 63 + .../inc/modules/guest/what-wernis_portal.php | 82 + 0.2.1-FINAL/inc/modules/index.php | 140 + 0.2.1-FINAL/inc/modules/loader.php | 61 + 0.2.1-FINAL/inc/modules/login.php | 122 + 0.2.1-FINAL/inc/modules/member/.htaccess | 1 + 0.2.1-FINAL/inc/modules/member/action- | 61 + .../inc/modules/member/action-account.php | 58 + .../inc/modules/member/action-bank.php | 61 + .../inc/modules/member/action-extras.php | 58 + .../inc/modules/member/action-logout.php | 58 + .../inc/modules/member/action-main.php | 58 + .../inc/modules/member/action-order.php | 61 + .../inc/modules/member/action-rals.php | 58 + .../inc/modules/member/action-stats.php | 58 + .../inc/modules/member/action-surfbar.php | 61 + .../inc/modules/member/action-themes.php | 79 + 0.2.1-FINAL/inc/modules/member/what- | 49 + .../inc/modules/member/what-bank_create.php | 52 + .../inc/modules/member/what-bank_deposit.php | 52 + .../inc/modules/member/what-bank_infos.php | 52 + .../inc/modules/member/what-bank_output.php | 52 + .../inc/modules/member/what-bank_withdraw.php | 52 + 0.2.1-FINAL/inc/modules/member/what-beg.php | 93 + 0.2.1-FINAL/inc/modules/member/what-beg2.php | 98 + 0.2.1-FINAL/inc/modules/member/what-bonus.php | 115 + .../inc/modules/member/what-categories.php | 170 + .../inc/modules/member/what-doubler.php | 112 + 0.2.1-FINAL/inc/modules/member/what-guest.php | 48 + .../inc/modules/member/what-holiday.php | 270 ++ .../inc/modules/member/what-html_mail.php | 77 + .../inc/modules/member/what-logout.php | 63 + .../inc/modules/member/what-mydata.php | 319 ++ .../inc/modules/member/what-newsletter.php | 111 + .../inc/modules/member/what-nickname.php | 94 + 0.2.1-FINAL/inc/modules/member/what-order.php | 727 ++++ .../inc/modules/member/what-payout.php | 292 ++ .../inc/modules/member/what-points.php | 206 ++ .../inc/modules/member/what-primera.php | 232 ++ .../inc/modules/member/what-rallyes.php | 147 + .../inc/modules/member/what-refback.php | 163 + .../inc/modules/member/what-reflinks.php | 136 + .../inc/modules/member/what-reflist.php | 101 + .../inc/modules/member/what-sponsor.php | 51 + 0.2.1-FINAL/inc/modules/member/what-stats.php | 139 + .../inc/modules/member/what-support.php | 81 + .../inc/modules/member/what-surfbar_book.php | 88 + .../inc/modules/member/what-surfbar_list.php | 99 + .../inc/modules/member/what-surfbar_start.php | 83 + .../inc/modules/member/what-surfbar_stats.php | 49 + .../inc/modules/member/what-themes.php | 136 + .../inc/modules/member/what-transfer.php | 603 ++++ .../inc/modules/member/what-unconfirmed.php | 247 ++ .../inc/modules/member/what-welcome.php | 71 + .../inc/modules/member/what-wernis.php | 306 ++ 0.2.1-FINAL/inc/modules/order.php | 120 + 0.2.1-FINAL/inc/modules/sponsor.php | 72 + 0.2.1-FINAL/inc/modules/sponsor/.htaccess | 1 + 0.2.1-FINAL/inc/modules/sponsor/.php | 48 + 0.2.1-FINAL/inc/modules/sponsor/account.php | 152 + 0.2.1-FINAL/inc/modules/sponsor/settings.php | 123 + 0.2.1-FINAL/inc/modules/sponsor/welcome.php | 66 + 0.2.1-FINAL/inc/modules/welcome.php | 41 + 0.2.1-FINAL/inc/monthly/.htaccess | 1 + 0.2.1-FINAL/inc/monthly/monthly_ | 47 + 0.2.1-FINAL/inc/monthly/monthly_beg.php | 102 + 0.2.1-FINAL/inc/monthly/monthly_bonus.php | 114 + .../inc/monthly/monthly_newsletter.php | 73 + 0.2.1-FINAL/inc/monthly/monthly_surfbar.php | 51 + 0.2.1-FINAL/inc/mysql-connect.php | 300 ++ 0.2.1-FINAL/inc/mysql-manager.php | 2124 ++++++++++++ 0.2.1-FINAL/inc/patch-system.php | 49 + 0.2.1-FINAL/inc/phpmailer/ChangeLog.txt | 284 ++ 0.2.1-FINAL/inc/phpmailer/LICENSE | 504 +++ 0.2.1-FINAL/inc/phpmailer/README | 152 + 0.2.1-FINAL/inc/phpmailer/class.phpmailer.php | 1896 +++++++++++ 0.2.1-FINAL/inc/phpmailer/class.pop3.php | 436 +++ 0.2.1-FINAL/inc/phpmailer/class.smtp.php | 1062 ++++++ 0.2.1-FINAL/inc/phpmailer/codeworxtech.html | 121 + 0.2.1-FINAL/inc/phpmailer/docs/extending.html | 148 + 0.2.1-FINAL/inc/phpmailer/docs/faq.html | 67 + .../inc/phpmailer/docs/phpmailer_sm.gif | Bin 0 -> 204 bytes .../inc/phpmailer/docs/pop3_article.txt | 39 + 0.2.1-FINAL/inc/phpmailer/docs/use_gmail.txt | 45 + .../inc/phpmailer/examples/contents.html | 12 + .../inc/phpmailer/examples/images/bkgrnd.gif | Bin 0 -> 49 bytes .../phpmailer/examples/images/phpmailer.gif | Bin 0 -> 4756 bytes .../phpmailer/examples/images/phpmailer.png | Bin 0 -> 3506 bytes .../examples/images/phpmailer_mini.gif | Bin 0 -> 1042 bytes 0.2.1-FINAL/inc/phpmailer/examples/index.html | 73 + .../examples/pop3_before_smtp_test.php | 39 + 0.2.1-FINAL/inc/phpmailer/examples/test1.php | 28 + .../inc/phpmailer/examples/test_gmail.php | 45 + .../inc/phpmailer/examples/test_mail.php | 29 + .../inc/phpmailer/examples/test_sendmail.php | 30 + .../inc/phpmailer/examples/test_smtp.php | 33 + .../phpmailer/language/phpmailer.lang-br.php | 24 + .../phpmailer/language/phpmailer.lang-ca.php | 24 + .../phpmailer/language/phpmailer.lang-cz.php | 26 + .../phpmailer/language/phpmailer.lang-de.php | 26 + .../phpmailer/language/phpmailer.lang-dk.php | 26 + .../phpmailer/language/phpmailer.lang-en.php | 25 + .../phpmailer/language/phpmailer.lang-es.php | 25 + .../phpmailer/language/phpmailer.lang-et.php | 24 + .../phpmailer/language/phpmailer.lang-fi.php | 25 + .../phpmailer/language/phpmailer.lang-fo.php | 27 + .../phpmailer/language/phpmailer.lang-fr.php | 26 + .../phpmailer/language/phpmailer.lang-hu.php | 25 + .../phpmailer/language/phpmailer.lang-it.php | 30 + .../phpmailer/language/phpmailer.lang-ja.php | Bin 0 -> 2672 bytes .../phpmailer/language/phpmailer.lang-nl.php | 25 + .../phpmailer/language/phpmailer.lang-no.php | 25 + .../phpmailer/language/phpmailer.lang-pl.php | 25 + .../phpmailer/language/phpmailer.lang-ro.php | 25 + .../phpmailer/language/phpmailer.lang-ru.php | 26 + .../phpmailer/language/phpmailer.lang-se.php | 26 + .../phpmailer/language/phpmailer.lang-tr.php | 26 + .../phpmailer/phpdoc/PHPMailer/PHPMailer.html | 1475 ++++++++ .../inc/phpmailer/phpdoc/PHPMailer/SMTP.html | 734 ++++ .../PHPMailer/_class_phpmailer_php.html | 60 + .../phpdoc/PHPMailer/_class_smtp_php.html | 60 + 0.2.1-FINAL/inc/phpmailer/phpdoc/blank.html | 13 + .../phpdoc/classtrees_PHPMailer.html | 28 + .../inc/phpmailer/phpdoc/elementindex.html | 734 ++++ .../phpdoc/elementindex_PHPMailer.html | 731 ++++ 0.2.1-FINAL/inc/phpmailer/phpdoc/errors.html | 23 + 0.2.1-FINAL/inc/phpmailer/phpdoc/index.html | 24 + .../inc/phpmailer/phpdoc/li_PHPMailer.html | 36 + .../inc/phpmailer/phpdoc/media/banner.css | 32 + .../inc/phpmailer/phpdoc/media/stylesheet.css | 133 + .../inc/phpmailer/phpdoc/packages.html | 27 + .../inc/phpmailer/test/phpmailer_test.php | 572 ++++ 0.2.1-FINAL/inc/phpmailer/test/phpunit.php | 376 +++ 0.2.1-FINAL/inc/phpmailer/test/test.png | Bin 0 -> 1280 bytes 0.2.1-FINAL/inc/pool-update.php | 59 + 0.2.1-FINAL/inc/pool/.htaccess | 1 + 0.2.1-FINAL/inc/pool/pool-bonus.php | 195 ++ 0.2.1-FINAL/inc/pool/pool-user.php | 337 ++ 0.2.1-FINAL/inc/profile-updte.php | 82 + 0.2.1-FINAL/inc/rdf.class.php | 1382 ++++++++ 0.2.1-FINAL/inc/reset/.htaccess | 1 + 0.2.1-FINAL/inc/reset/reset_ | 46 + 0.2.1-FINAL/inc/reset/reset_beg.php | 51 + 0.2.1-FINAL/inc/reset/reset_bonus.php | 54 + 0.2.1-FINAL/inc/reset/reset_daily.php | 98 + 0.2.1-FINAL/inc/reset/reset_engine.php | 47 + 0.2.1-FINAL/inc/reset/reset_holiday.php | 91 + 0.2.1-FINAL/inc/reset/reset_surfbar.php | 52 + 0.2.1-FINAL/inc/reset/reset_yoomedia.php | 49 + 0.2.1-FINAL/inc/security.php | 66 + 0.2.1-FINAL/inc/session.php | 97 + 0.2.1-FINAL/inc/sql_error.php | 41 + 0.2.1-FINAL/inc/stats_bonus.php | 81 + 0.2.1-FINAL/inc/stylesheet.php | 93 + 0.2.1-FINAL/inc/weekly/.htaccess | 1 + 0.2.1-FINAL/inc/weekly/weekly_ | 46 + 0.2.1-FINAL/inc/weekly/weekly_surfbar.php | 51 + 0.2.1-FINAL/index.php | 91 + 0.2.1-FINAL/install.php | 94 + 0.2.1-FINAL/install/menu-de.sql | 113 + 0.2.1-FINAL/install/menu-en.sql | 113 + 0.2.1-FINAL/install/tables.sql | 337 ++ 0.2.1-FINAL/js.php | 81 + 0.2.1-FINAL/lead-confirm.php | 93 + 0.2.1-FINAL/login.php | 58 + 0.2.1-FINAL/mailid.php | 229 ++ 0.2.1-FINAL/mailid_top.php | 360 ++ 0.2.1-FINAL/modules.php | 164 + 0.2.1-FINAL/ref.php | 112 + 0.2.1-FINAL/robots.txt | 410 +++ 0.2.1-FINAL/show_bonus.php | 143 + 0.2.1-FINAL/sponsor_confirm.php | 61 + 0.2.1-FINAL/sponsor_ref.php | 67 + 0.2.1-FINAL/surfbar.php | 202 ++ 0.2.1-FINAL/templates/.htaccess | 1 + 0.2.1-FINAL/templates/de/.htaccess | 1 + 0.2.1-FINAL/templates/de/emails/.htaccess | 1 + .../templates/de/emails/add-points.tpl | 13 + .../templates/de/emails/admin-del_links.tpl | 16 + .../templates/de/emails/admin/.htaccess | 1 + .../admin/admin_autopurge_del_mails.tpl | 8 + .../emails/admin/admin_autopurge_delete.tpl | 15 + .../emails/admin/admin_autopurge_inactive.tpl | 15 + .../emails/admin/admin_autopurge_points.tpl | 8 + .../de/emails/admin/admin_autopurge_tsks.tpl | 8 + .../de/emails/admin/admin_autopurge_turbo.tpl | 8 + .../admin/admin_autopurge_unconfirmed.tpl | 15 + .../emails/admin/admin_del_surfbar_urls.tpl | 27 + .../emails/admin/admin_edit_surfbar_urls.tpl | 24 + .../de/emails/admin/admin_ext_deactivated.tpl | 10 + .../admin/admin_holiday_deactivated.tpl | 30 + .../de/emails/admin/admin_holiday_request.tpl | 30 + .../de/emails/admin/admin_holiday_unlock.tpl | 12 + .../admin/admin_lock_active_surfbar_urls.tpl | 26 + .../admin/admin_lock_locked_surfbar_urls.tpl | 26 + .../de/emails/admin/admin_mydata_notify.tpl | 27 + .../emails/admin/admin_newsletter_request.tpl | 22 + .../emails/admin/admin_newsletter_reset.tpl | 22 + .../de/emails/admin/admin_payout_request.tpl | 37 + .../admin/admin_payout_request_banner.tpl | 39 + .../de/emails/admin/admin_rallye_expired.tpl | 25 + .../emails/admin/admin_rallye_expired_no.tpl | 25 + .../emails/admin/admin_rallye_no_notify.tpl | 21 + .../de/emails/admin/admin_rallye_notify.tpl | 21 + .../de/emails/admin/admin_rallye_purged.tpl | 19 + .../de/emails/admin/admin_refback.tpl | 14 + .../de/emails/admin/admin_reset_password.tpl | 24 + .../admin/admin_sponsor_change_data.tpl | 34 + .../admin/admin_sponsor_change_email.tpl | 34 + .../de/emails/admin/admin_sponsor_edit.tpl | 36 + .../de/emails/admin/admin_sponsor_pending.tpl | 51 + .../de/emails/admin/admin_sponsor_reg.tpl | 30 + .../emails/admin/admin_sponsor_settings.tpl | 20 + .../de/emails/admin/admin_support-ordr.tpl | 26 + .../de/emails/admin/admin_support-reflink.tpl | 26 + .../admin/admin_support-unconfirmed.tpl | 26 + .../admin_surfbar_url_active_deleted.tpl | 38 + .../admin_surfbar_url_active_pending.tpl | 33 + .../admin_surfbar_url_active_stopped.tpl | 33 + .../admin/admin_surfbar_url_confirmed.tpl | 24 + .../admin/admin_surfbar_url_depleted.tpl | 34 + .../admin_surfbar_url_locked_deleted.tpl | 42 + .../admin_surfbar_url_locked_pending.tpl | 33 + .../admin/admin_surfbar_url_migrate.tpl | 24 + .../admin_surfbar_url_migrated_deleted.tpl | 33 + .../admin_surfbar_url_migrated_migrated.tpl | 33 + .../admin_surfbar_url_migrated_pending.tpl | 33 + .../admin/admin_surfbar_url_pending.tpl | 30 + .../admin_surfbar_url_pending_deleted.tpl | 38 + .../de/emails/admin/admin_surfbar_url_reg.tpl | 26 + .../admin/admin_surfbar_url_rejected.tpl | 24 + .../admin_surfbar_url_stopped_continued.tpl | 33 + .../admin_surfbar_url_stopped_deleted.tpl | 38 + .../admin_surfbar_url_stopped_pending.tpl | 33 + .../emails/admin/admin_surfbar_url_unlock.tpl | 22 + .../de/emails/admin/admin_transfer_ap.tpl | 8 + .../de/emails/admin/admin_transfer_points.tpl | 32 + .../admin_undelete_active_surfbar_urls.tpl | 26 + .../de/emails/admin/admin_wernis_request.tpl | 35 + .../templates/de/emails/admins/.htaccess | 1 + .../admins/admins_mail_contct_admin.tpl | 16 + .../emails/admins/admins_msg_contct_admin.tpl | 16 + .../de/emails/admins_mail_contct_admin.tpl | 1 + .../de/emails/admins_msg_contct_admin.tpl | 1 + .../templates/de/emails/back-admin.tpl | 8 + .../templates/de/emails/back-member.tpl | 8 + 0.2.1-FINAL/templates/de/emails/beg/.htaccess | 1 + .../templates/de/emails/beg/beg_di_notify.tpl | 13 + .../templates/de/emails/beg/beg_en_notify.tpl | 27 + .../de/emails/beg/beg_en_notify_body.tpl | 18 + .../templates/de/emails/bonus-mail.tpl | 38 + .../templates/de/emails/bonus/.htaccess | 1 + .../de/emails/bonus/bonus_di_notify.tpl | 13 + .../de/emails/bonus/bonus_en_notify.tpl | 24 + .../de/emails/bonus/bonus_en_notify_body.tpl | 13 + .../templates/de/emails/confirm-member.tpl | 17 + .../templates/de/emails/confirm-referral.tpl | 19 + 0.2.1-FINAL/templates/de/emails/del-user.tpl | 19 + .../templates/de/emails/del_sponsor.tpl | 19 + .../templates/de/emails/done-admin.tpl | 24 + .../templates/de/emails/done-member.tpl | 28 + .../templates/de/emails/guest/.htaccess | 1 + .../de/emails/guest/guest_request_confirm.tpl | 13 + 0.2.1-FINAL/templates/de/emails/header.tpl | 4 + 0.2.1-FINAL/templates/de/emails/lock-user.tpl | 21 + .../templates/de/emails/lock_sponsor.tpl | 21 + .../templates/de/emails/member/.htaccess | 1 + .../emails/member/member_autopurge_delete.tpl | 3 + .../member/member_autopurge_inactive.tpl | 19 + .../emails/member/member_autopurge_points.tpl | 12 + .../member/member_autopurge_unconfirmed.tpl | 3 + .../templates/de/emails/member/member_beg.tpl | 14 + .../de/emails/member/member_birthday.tpl | 10 + .../emails/member/member_birthday_confirm.tpl | 16 + .../de/emails/member/member_bonus.tpl | 14 + .../de/emails/member/member_contct.tpl | 16 + .../emails/member/member_del_surfbar_urls.tpl | 21 + .../de/emails/member/member_doubler.tpl | 14 + .../member/member_edit_surfbar_urls.tpl | 21 + .../member/member_holiday_activated.tpl | 29 + .../emails/member/member_holiday_removed.tpl | 22 + .../emails/member/member_holiday_request.tpl | 28 + .../emails/member/member_holiday_unlock.tpl | 26 + .../member_lock_active_surfbar_urls.tpl | 19 + .../member_lock_locked_surfbar_urls.tpl | 21 + .../de/emails/member/member_mydata_notify.tpl | 31 + .../emails/member/member_newsletter_done.tpl | 20 + .../member/member_newsletter_request.tpl | 26 + .../emails/member/member_newsletter_reset.tpl | 18 + .../emails/member/member_payout_accepted.tpl | 25 + .../emails/member/member_payout_rejected.tpl | 25 + .../emails/member/member_payout_request.tpl | 27 + .../member/member_payout_request_banner.tpl | 29 + .../emails/member/member_rallye_expired.tpl | 34 + .../member/member_rallye_expired_bronce.tpl | 34 + .../member/member_rallye_expired_gold.tpl | 34 + .../member/member_rallye_expired_silver.tpl | 34 + .../de/emails/member/member_rallye_notify.tpl | 38 + .../de/emails/member/member_refback.tpl | 14 + .../de/emails/member/member_stats_bonus.tpl | 22 + .../de/emails/member/member_support-ordr.tpl | 22 + .../emails/member/member_support-reflink.tpl | 22 + .../member/member_support-unconfirmed.tpl | 22 + .../member/member_surfbar_low_points.tpl | 21 + .../member_surfbar_url_active_deleted.tpl | 19 + .../member_surfbar_url_active_pending.tpl | 25 + .../member_surfbar_url_active_stopped.tpl | 23 + .../member/member_surfbar_url_confirmed.tpl | 19 + .../member/member_surfbar_url_depleted.tpl | 31 + .../member_surfbar_url_locked_deleted.tpl | 23 + .../member_surfbar_url_locked_pending.tpl | 23 + .../member/member_surfbar_url_migrate.tpl | 23 + .../member_surfbar_url_migrated_deleted.tpl | 19 + .../member_surfbar_url_migrated_migrated.tpl | 21 + .../member_surfbar_url_migrated_pending.tpl | 19 + .../member/member_surfbar_url_pending.tpl | 25 + .../member_surfbar_url_pending_deleted.tpl | 19 + .../emails/member/member_surfbar_url_reg.tpl | 21 + .../member/member_surfbar_url_rejected.tpl | 19 + .../member_surfbar_url_stopped_continued.tpl | 25 + .../member_surfbar_url_stopped_deleted.tpl | 19 + .../member_surfbar_url_stopped_pending.tpl | 25 + .../member/member_surfbar_url_unlock.tpl | 21 + .../member/member_transfer_recipient.tpl | 23 + .../emails/member/member_transfer_sender.tpl | 23 + .../member_undelete_active_surfbar_urls.tpl | 21 + .../emails/member/member_wernis_accepted.tpl | 25 + .../emails/member/member_wernis_rejected.tpl | 25 + .../emails/member/member_wernis_request.tpl | 25 + 0.2.1-FINAL/templates/de/emails/new-pass.tpl | 20 + .../templates/de/emails/newsletter.tpl | 18 + .../templates/de/emails/newsletter_html.tpl | 18 + .../templates/de/emails/normal-mail.tpl | 38 + .../templates/de/emails/order-accept.tpl | 18 + .../templates/de/emails/order-admin.tpl | 35 + .../templates/de/emails/order-deleted.tpl | 17 + .../templates/de/emails/order-member.tpl | 27 + .../templates/de/emails/order-reject.tpl | 18 + .../templates/de/emails/profile-updte.tpl | 24 + .../templates/de/emails/register-admin.tpl | 26 + .../templates/de/emails/register-member.tpl | 36 + .../templates/de/emails/sponsor/.htaccess | 1 + .../de/emails/sponsor/sponsor_activate.tpl | 31 + .../de/emails/sponsor/sponsor_add_points.tpl | 13 + .../de/emails/sponsor/sponsor_change_data.tpl | 36 + .../emails/sponsor/sponsor_change_email.tpl | 19 + .../de/emails/sponsor/sponsor_confirm.tpl | 35 + .../de/emails/sponsor/sponsor_email.tpl | 24 + .../de/emails/sponsor/sponsor_lost.tpl | 28 + .../de/emails/sponsor/sponsor_pending.tpl | 57 + .../de/emails/sponsor/sponsor_ref_notify.tpl | 16 + .../de/emails/sponsor/sponsor_settings.tpl | 22 + .../de/emails/sponsor/sponsor_sub_points.tpl | 13 + .../de/emails/sponsor/sponsor_unlock.tpl | 31 + .../de/emails/sponsor/sponsor_unlocked.tpl | 19 + .../de/emails/sponsor_add_points.tpl | 13 + .../templates/de/emails/sponsor_confirm.tpl | 35 + .../templates/de/emails/sponsor_pending.tpl | 57 + .../de/emails/sponsor_sub_points.tpl | 13 + .../templates/de/emails/sponsor_unlocked.tpl | 19 + .../templates/de/emails/sub-points.tpl | 13 + .../templates/de/emails/unlock-user.tpl | 24 + 0.2.1-FINAL/templates/de/html/.htaccess | 1 + 0.2.1-FINAL/templates/de/html/admin/.htaccess | 1 + .../de/html/admin/admin_add_bank_package.tpl | 148 + .../de/html/admin/admin_add_banner.tpl | 49 + .../templates/de/html/admin/admin_add_cat.tpl | 62 + .../de/html/admin/admin_add_country.tpl | 58 + .../templates/de/html/admin/admin_add_max.tpl | 51 + .../de/html/admin/admin_add_payment.tpl | 56 + .../de/html/admin/admin_add_points.tpl | 47 + .../de/html/admin/admin_add_points_all.tpl | 46 + .../de/html/admin/admin_add_rallye.tpl | 128 + .../de/html/admin/admin_add_rallye_prices.tpl | 51 + .../de/html/admin/admin_add_reflvl.tpl | 46 + .../de/html/admin/admin_add_sponsor.tpl | 292 ++ .../html/admin/admin_add_sponsor_already.tpl | 28 + .../html/admin/admin_add_sponsor_paytype.tpl | 50 + .../de/html/admin/admin_add_surfbar_url.tpl | 26 + .../de/html/admin/admin_admin_add.tpl | 77 + .../de/html/admin/admin_admins_add.tpl | 55 + .../de/html/admin/admin_admins_add_acl.tpl | 56 + .../admin/admin_admins_contct_default.tpl | 5 + .../html/admin/admin_admins_contct_form.tpl | 32 + .../html/admin/admin_admins_contct_select.tpl | 15 + .../de/html/admin/admin_admins_mails_edit.tpl | 23 + .../admin/admin_admins_mails_edit_form.tpl | 8 + .../admin/admin_admins_mails_edit_row.tpl | 7 + .../de/html/admin/admin_admins_mails_list.tpl | 25 + .../admin/admin_admins_mails_list_row.tpl | 11 + .../de/html/admin/admin_amenu_delete.tpl | 23 + .../de/html/admin/admin_amenu_delete_row.tpl | 7 + .../de/html/admin/admin_amenu_edit.tpl | 19 + .../de/html/admin/admin_amenu_edit_form.tpl | 24 + .../de/html/admin/admin_amenu_edit_row.tpl | 49 + .../de/html/admin/admin_cache_stats.tpl | 30 + .../de/html/admin/admin_config_active.tpl | 35 + .../de/html/admin/admin_config_admin.tpl | 36 + .../de/html/admin/admin_config_admins.tpl | 26 + .../de/html/admin/admin_config_admins_del.tpl | 24 + .../admin/admin_config_admins_del_row.tpl | 12 + .../html/admin/admin_config_admins_edit.tpl | 24 + .../admin/admin_config_admins_edit_row.tpl | 16 + .../de/html/admin/admin_config_admins_row.tpl | 17 + .../de/html/admin/admin_config_autopurge.tpl | 179 + .../de/html/admin/admin_config_beg.tpl | 224 ++ .../de/html/admin/admin_config_birthday.tpl | 63 + .../de/html/admin/admin_config_bonus.tpl | 336 ++ .../de/html/admin/admin_config_cache.tpl | 128 + .../de/html/admin/admin_config_cats.tpl | 24 + .../de/html/admin/admin_config_cats_row.tpl | 14 + .../de/html/admin/admin_config_doubler.tpl | 214 ++ .../de/html/admin/admin_config_email.tpl | 23 + .../de/html/admin/admin_config_email_del.tpl | 19 + .../html/admin/admin_config_email_del_row.tpl | 22 + .../de/html/admin/admin_config_email_edit.tpl | 17 + .../admin/admin_config_email_edit_row.tpl | 33 + .../de/html/admin/admin_config_email_row.tpl | 11 + .../de/html/admin/admin_config_extensions.tpl | 25 + .../de/html/admin/admin_config_holiday.tpl | 50 + .../de/html/admin/admin_config_home.tpl | 18 + .../de/html/admin/admin_config_home_main.tpl | 15 + .../html/admin/admin_config_home_settings.tpl | 51 + .../admin/admin_config_home_settings_pro.tpl | 48 + .../de/html/admin/admin_config_mediadata.tpl | 50 + .../de/html/admin/admin_config_newsletter.tpl | 35 + .../de/html/admin/admin_config_nickname.tpl | 47 + .../de/html/admin/admin_config_order.tpl | 206 ++ .../de/html/admin/admin_config_order_form.tpl | 71 + .../de/html/admin/admin_config_other.tpl | 471 +++ .../de/html/admin/admin_config_payouts.tpl | 26 + .../html/admin/admin_config_payouts_del.tpl | 23 + .../admin/admin_config_payouts_del_row.tpl | 8 + .../html/admin/admin_config_payouts_edit.tpl | 24 + .../admin/admin_config_payouts_edit_row.tpl | 16 + .../html/admin/admin_config_payouts_row.tpl | 17 + .../admin/admin_config_point_settings.tpl | 60 + .../de/html/admin/admin_config_points.tpl | 26 + .../de/html/admin/admin_config_primera.tpl | 79 + .../de/html/admin/admin_config_proxy.tpl | 51 + .../de/html/admin/admin_config_rallye_del.tpl | 25 + .../admin/admin_config_rallye_del_row.tpl | 8 + .../html/admin/admin_config_rallye_edit.tpl | 28 + .../admin/admin_config_rallye_edit_row.tpl | 16 + .../html/admin/admin_config_rallye_prices.tpl | 27 + .../admin/admin_config_rallye_prices_row.tpl | 14 + .../de/html/admin/admin_config_refback.tpl | 44 + .../de/html/admin/admin_config_refid.tpl | 61 + .../de/html/admin/admin_config_reg_pro.tpl | 55 + .../de/html/admin/admin_config_register.tpl | 20 + .../de/html/admin/admin_config_register2.tpl | 83 + .../de/html/admin/admin_config_removeip.tpl | 117 + .../de/html/admin/admin_config_rewrite.tpl | 24 + .../html/admin/admin_config_rewrite_rows.tpl | 9 + .../de/html/admin/admin_config_secure.tpl | 48 + .../de/html/admin/admin_config_session.tpl | 34 + .../de/html/admin/admin_config_sponsor.tpl | 34 + .../de/html/admin/admin_config_stats.tpl | 71 + .../de/html/admin/admin_config_sub_points.tpl | 47 + .../de/html/admin/admin_config_surfbar.tpl | 241 ++ .../de/html/admin/admin_config_title.tpl | 77 + .../de/html/admin/admin_config_top10.tpl | 28 + .../de/html/admin/admin_config_transfer.tpl | 75 + .../de/html/admin/admin_config_user.tpl | 39 + .../de/html/admin/admin_config_wernis.tpl | 174 + .../de/html/admin/admin_config_yoomedia.tpl | 96 + .../de/html/admin/admin_contct_user_form.tpl | 21 + .../de/html/admin/admin_del_admins.tpl | 24 + .../de/html/admin/admin_del_admins_row.tpl | 13 + .../de/html/admin/admin_del_bank_packages.tpl | 22 + .../admin/admin_del_bank_packages_row.tpl | 17 + .../de/html/admin/admin_del_cats.tpl | 17 + .../de/html/admin/admin_del_cats_row.tpl | 17 + .../de/html/admin/admin_del_email_bonus.tpl | 23 + .../de/html/admin/admin_del_email_normal.tpl | 22 + .../de/html/admin/admin_del_email_notify.tpl | 22 + .../de/html/admin/admin_del_payments.tpl | 16 + .../de/html/admin/admin_del_payments_row.tpl | 16 + .../de/html/admin/admin_del_sponsor.tpl | 30 + .../de/html/admin/admin_del_surfbar_urls.tpl | 21 + .../html/admin/admin_del_surfbar_urls_row.tpl | 13 + .../de/html/admin/admin_del_transfer_row.tpl | 20 + .../de/html/admin/admin_del_user.tpl | 43 + .../de/html/admin/admin_edit_admins.tpl | 29 + .../de/html/admin/admin_edit_admins_row.tpl | 22 + .../html/admin/admin_edit_bank_packages.tpl | 18 + .../admin/admin_edit_bank_packages_row.tpl | 69 + .../de/html/admin/admin_edit_cats.tpl | 16 + .../de/html/admin/admin_edit_cats_row.tpl | 36 + .../de/html/admin/admin_edit_email.tpl | 50 + .../de/html/admin/admin_edit_email_row.tpl | 10 + .../de/html/admin/admin_edit_email_select.tpl | 22 + .../de/html/admin/admin_edit_payments.tpl | 17 + .../de/html/admin/admin_edit_payments_row.tpl | 44 + .../de/html/admin/admin_edit_rallyes.tpl | 17 + .../de/html/admin/admin_edit_rallyes_row.tpl | 82 + .../admin/admin_edit_sponsor_add_points.tpl | 31 + .../de/html/admin/admin_edit_sponsor_edit.tpl | 247 ++ .../admin/admin_edit_sponsor_sub_points.tpl | 31 + .../de/html/admin/admin_edit_surfbar_urls.tpl | 20 + .../admin/admin_edit_surfbar_urls_row.tpl | 10 + .../de/html/admin/admin_edit_user.tpl | 86 + .../de/html/admin/admin_email_archiv.tpl | 8 + .../de/html/admin/admin_email_archiv_row.tpl | 81 + .../de/html/admin/admin_email_nav_row.tpl | 14 + .../de/html/admin/admin_ext_notes.tpl | 4 + .../de/html/admin/admin_ext_reg_form.tpl | 6 + .../de/html/admin/admin_ext_sql_row.tpl | 6 + .../de/html/admin/admin_ext_sql_table.tpl | 10 + .../de/html/admin/admin_extensions.tpl | 25 + .../de/html/admin/admin_extensions_404.tpl | 7 + .../de/html/admin/admin_extensions_delete.tpl | 22 + .../admin/admin_extensions_delete_row.tpl | 13 + .../de/html/admin/admin_extensions_edit.tpl | 23 + .../html/admin/admin_extensions_edit_row.tpl | 10 + .../html/admin/admin_extensions_installed.tpl | 7 + .../de/html/admin/admin_extensions_list.tpl | 22 + .../de/html/admin/admin_extensions_row.tpl | 17 + .../de/html/admin/admin_extensions_text.tpl | 13 + .../templates/de/html/admin/admin_footer.tpl | 9 + .../de/html/admin/admin_gmenu_delete.tpl | 23 + .../de/html/admin/admin_gmenu_delete_row.tpl | 6 + .../de/html/admin/admin_gmenu_edit.tpl | 20 + .../de/html/admin/admin_gmenu_edit_form.tpl | 24 + .../de/html/admin/admin_gmenu_edit_row.tpl | 37 + .../de/html/admin/admin_gmenu_status.tpl | 28 + .../de/html/admin/admin_guest_add.tpl | 94 + .../de/html/admin/admin_list_admins.tpl | 26 + .../de/html/admin/admin_list_admins_row.tpl | 17 + .../de/html/admin/admin_list_autopurge.tpl | 17 + .../html/admin/admin_list_autopurge_row.tpl | 10 + .../de/html/admin/admin_list_bank_package.tpl | 31 + .../admin/admin_list_bank_package_row.tpl | 26 + .../de/html/admin/admin_list_beg.tpl | 33 + .../de/html/admin/admin_list_beg_form.tpl | 6 + .../de/html/admin/admin_list_beg_rows.tpl | 11 + .../de/html/admin/admin_list_bonus.tpl | 32 + .../de/html/admin/admin_list_bonus_emails.tpl | 12 + .../admin/admin_list_bonus_emails_row.tpl | 72 + .../de/html/admin/admin_list_bonus_form.tpl | 6 + .../de/html/admin/admin_list_bonus_rows.tpl | 7 + .../de/html/admin/admin_list_cats.tpl | 15 + .../de/html/admin/admin_list_cats_404.tpl | 24 + .../de/html/admin/admin_list_cats_row.tpl | 6 + .../de/html/admin/admin_list_country.tpl | 30 + .../html/admin/admin_list_country_del_row.tpl | 10 + .../admin/admin_list_country_edit_row.tpl | 14 + .../de/html/admin/admin_list_country_form.tpl | 22 + .../html/admin/admin_list_country_no_row.tpl | 4 + .../de/html/admin/admin_list_country_row.tpl | 14 + .../html/admin/admin_list_doubler_already.tpl | 25 + .../admin/admin_list_doubler_overview.tpl | 64 + .../html/admin/admin_list_doubler_waiting.tpl | 21 + .../de/html/admin/admin_list_emails.tpl | 12 + .../de/html/admin/admin_list_emails_row.tpl | 61 + .../de/html/admin/admin_list_extensions.tpl | 22 + .../html/admin/admin_list_extensions_row.tpl | 13 + .../de/html/admin/admin_list_holiday.tpl | 23 + .../de/html/admin/admin_list_holiday_row.tpl | 23 + .../de/html/admin/admin_list_links.tpl | 14 + .../html/admin/admin_list_links_problem.tpl | 5 + .../de/html/admin/admin_list_links_row.tpl | 6 + .../html/admin/admin_list_notify_emails.tpl | 12 + .../admin/admin_list_notify_emails_row.tpl | 72 + .../de/html/admin/admin_list_payments.tpl | 25 + .../de/html/admin/admin_list_payouts.tpl | 24 + .../html/admin/admin_list_payouts_banner.tpl | 11 + .../de/html/admin/admin_list_payouts_row.tpl | 8 + .../de/html/admin/admin_list_payouts_txt.tpl | 8 + .../de/html/admin/admin_list_primera_main.tpl | 16 + .../de/html/admin/admin_list_primera_row.tpl | 10 + .../html/admin/admin_list_rallye_noselect.tpl | 3 + .../html/admin/admin_list_rallye_prices.tpl | 29 + .../admin/admin_list_rallye_prices_row.tpl | 9 + .../de/html/admin/admin_list_rallye_usr.tpl | 18 + .../html/admin/admin_list_rallye_usr_row.tpl | 12 + .../de/html/admin/admin_list_rallyes.tpl | 26 + .../de/html/admin/admin_list_rallyes_row.tpl | 54 + .../de/html/admin/admin_list_rallyes_row2.tpl | 12 + .../de/html/admin/admin_list_refs.tpl | 21 + .../de/html/admin/admin_list_refs2.tpl | 15 + .../de/html/admin/admin_list_refs_level.tpl | 27 + .../de/html/admin/admin_list_refs_norefs.tpl | 5 + .../de/html/admin/admin_list_refs_row.tpl | 8 + .../de/html/admin/admin_list_sponsor.tpl | 15 + .../html/admin/admin_list_sponsor_details.tpl | 130 + .../de/html/admin/admin_list_sponsor_pay.tpl | 24 + .../html/admin/admin_list_sponsor_pay_404.tpl | 5 + .../html/admin/admin_list_sponsor_pay_del.tpl | 25 + .../admin/admin_list_sponsor_pay_del_row.tpl | 17 + .../admin/admin_list_sponsor_pay_edit.tpl | 25 + .../admin/admin_list_sponsor_pay_edit_row.tpl | 18 + .../html/admin/admin_list_sponsor_pay_row.tpl | 17 + .../de/html/admin/admin_list_sponsor_row.tpl | 38 + .../html/admin/admin_list_surfbar_actions.tpl | 34 + .../admin/admin_list_surfbar_actions_row.tpl | 14 + .../de/html/admin/admin_list_surfbar_urls.tpl | 29 + .../admin/admin_list_surfbar_urls_row.tpl | 26 + .../html/admin/admin_list_task_ext_rows.tpl | 23 + .../de/html/admin/admin_list_task_rows.tpl | 23 + .../de/html/admin/admin_list_transfer.tpl | 29 + .../de/html/admin/admin_list_transfer_row.tpl | 9 + .../de/html/admin/admin_list_unconfirmed.tpl | 35 + .../admin/admin_list_unconfirmed_header.tpl | 9 + .../html/admin/admin_list_unconfirmed_row.tpl | 8 + .../de/html/admin/admin_list_user.tpl | 13 + .../de/html/admin/admin_list_user_alpha.tpl | 10 + .../de/html/admin/admin_list_user_pagenav.tpl | 11 + .../de/html/admin/admin_list_user_row.tpl | 67 + .../de/html/admin/admin_list_user_sort.tpl | 10 + .../html/admin/admin_list_user_sort_form.tpl | 12 + .../de/html/admin/admin_list_wernis_main.tpl | 16 + .../de/html/admin/admin_list_wernis_row.tpl | 10 + .../de/html/admin/admin_list_yoomedia_tm.tpl | 22 + .../admin/admin_list_yoomedia_tm_already.tpl | 22 + .../html/admin/admin_list_yoomedia_tm_row.tpl | 23 + .../de/html/admin/admin_lock_sponsor.tpl | 34 + .../de/html/admin/admin_lock_surfbar_urls.tpl | 23 + .../admin/admin_lock_surfbar_urls_row.tpl | 21 + .../de/html/admin/admin_lock_user.tpl | 40 + .../de/html/admin/admin_login_form.tpl | 66 + .../de/html/admin/admin_login_msg.tpl | 4 + .../templates/de/html/admin/admin_logout.tpl | 19 + .../de/html/admin/admin_logout_form.tpl | 32 + .../admin_logout_sql_patches_install.tpl | 18 + .../admin/admin_logout_sql_patches_remove.tpl | 17 + .../de/html/admin/admin_main_footer.tpl | 11 + .../de/html/admin/admin_main_header.tpl | 8 + .../de/html/admin/admin_maintenance_form.tpl | 24 + .../de/html/admin/admin_member_add.tpl | 94 + .../html/admin/admin_member_selection_box.tpl | 34 + .../de/html/admin/admin_menu_404_row.tpl | 5 + .../de/html/admin/admin_menu_failed.tpl | 19 + .../de/html/admin/admin_menu_hints.tpl | 8 + .../de/html/admin/admin_menu_hints_row.tpl | 15 + .../de/html/admin/admin_menu_overview_row.tpl | 17 + .../de/html/admin/admin_menu_status_row.tpl | 11 + .../de/html/admin/admin_menu_unknown_okay.tpl | 20 + .../de/html/admin/admin_mini_online.tpl | 22 + .../de/html/admin/admin_mmenu_delete.tpl | 23 + .../de/html/admin/admin_mmenu_delete_row.tpl | 6 + .../de/html/admin/admin_mmenu_edit.tpl | 24 + .../de/html/admin/admin_mmenu_edit_row.tpl | 37 + .../de/html/admin/admin_mmenu_overview.tpl | 20 + .../de/html/admin/admin_mmenu_status.tpl | 28 + .../de/html/admin/admin_mods_edit.tpl | 21 + .../de/html/admin/admin_mods_edit_row.tpl | 16 + .../de/html/admin/admin_mods_list.tpl | 24 + .../de/html/admin/admin_mods_list_row.tpl | 23 + .../de/html/admin/admin_mods_stats.tpl | 12 + .../de/html/admin/admin_mods_stats2.tpl | 11 + .../de/html/admin/admin_mods_stats2_row.tpl | 6 + .../de/html/admin/admin_mods_stats_row.tpl | 6 + .../templates/de/html/admin/admin_new_ext.tpl | 3 + .../de/html/admin/admin_newsletter.tpl | 90 + .../de/html/admin/admin_newsletter_nohtml.tpl | 68 + .../de/html/admin/admin_newsletter_tsk.tpl | 6 + .../de/html/admin/admin_online_footer.tpl | 4 + .../de/html/admin/admin_online_header.tpl | 28 + .../de/html/admin/admin_optimize.tpl | 26 + .../de/html/admin/admin_optimize_row.tpl | 7 + .../de/html/admin/admin_overview_footer.tpl | 12 + .../html/admin/admin_overview_footer_task.tpl | 15 + .../de/html/admin/admin_overview_header.tpl | 16 + .../html/admin/admin_overview_header_task.tpl | 16 + .../de/html/admin/admin_overview_list.tpl | 9 + .../admin/admin_overview_list_ext_rows.tpl | 23 + .../html/admin/admin_overview_list_rows.tpl | 23 + .../de/html/admin/admin_overview_row.tpl | 16 + .../de/html/admin/admin_overview_task.tpl | 137 + .../html/admin/admin_overview_task_extras.tpl | 8 + .../html/admin/admin_overview_task_rows.tpl | 13 + .../templates/de/html/admin/admin_patches.tpl | 32 + .../de/html/admin/admin_patches_row.tpl | 14 + .../de/html/admin/admin_payments_list_row.tpl | 17 + .../html/admin/admin_payout_accept_form.tpl | 38 + .../de/html/admin/admin_payout_add_new.tpl | 124 + .../admin/admin_payout_failed_transfer.tpl | 10 + .../html/admin/admin_payout_overview_form.tpl | 9 + .../html/admin/admin_payout_reject_form.tpl | 38 + .../templates/de/html/admin/admin_points.tpl | 26 + .../de/html/admin/admin_points_del.tpl | 17 + .../de/html/admin/admin_points_del_row.tpl | 19 + .../de/html/admin/admin_points_edit.tpl | 18 + .../de/html/admin/admin_points_edit_row.tpl | 26 + .../de/html/admin/admin_points_row.tpl | 11 + .../de/html/admin/admin_refbanner.tpl | 32 + .../de/html/admin/admin_refbanner_edit.tpl | 22 + .../html/admin/admin_refbanner_edit_row.tpl | 38 + .../de/html/admin/admin_refbanner_row.tpl | 20 + .../templates/de/html/admin/admin_reg.tpl | 18 + .../de/html/admin/admin_reg_form.tpl | 44 + .../templates/de/html/admin/admin_reg_row.tpl | 11 + .../de/html/admin/admin_reset_pass_done.tpl | 18 + .../de/html/admin/admin_reset_password.tpl | 28 + .../html/admin/admin_reset_password_form.tpl | 47 + .../de/html/admin/admin_send_bonus_form.tpl | 101 + .../de/html/admin/admin_send_bonus_select.tpl | 20 + .../de/html/admin/admin_send_reset_link.tpl | 28 + .../de/html/admin/admin_send_yoomedia.tpl | 77 + .../de/html/admin/admin_settings_saved.tpl | 9 + .../de/html/admin/admin_sponsor_paytypes.tpl | 5 + .../de/html/admin/admin_sub_points.tpl | 46 + .../de/html/admin/admin_sub_points_all.tpl | 46 + .../de/html/admin/admin_surfbar_stats.tpl | 30 + .../de/html/admin/admin_surfbar_stats_row.tpl | 5 + .../de/html/admin/admin_surfbar_url_stats.tpl | 30 + .../admin/admin_surfbar_url_stats_row.tpl | 5 + .../de/html/admin/admin_task_holiday.tpl | 2 + .../de/html/admin/admin_theme_404.tpl | 7 + .../de/html/admin/admin_theme_edit.tpl | 26 + .../de/html/admin/admin_theme_edit_row.tpl | 24 + .../de/html/admin/admin_theme_import.tpl | 17 + .../de/html/admin/admin_theme_installed.tpl | 7 + .../de/html/admin/admin_theme_list.tpl | 23 + .../admin/admin_undelete_surfbar_urls.tpl | 22 + .../admin/admin_undelete_surfbar_urls_row.tpl | 16 + .../de/html/admin/admin_unlock_emails.tpl | 36 + .../html/admin/admin_unlock_emails_redir.tpl | 22 + .../admin/admin_unlock_emails_redir_row.tpl | 8 + .../de/html/admin/admin_unlock_emails_row.tpl | 28 + .../de/html/admin/admin_unlock_sponsor.tpl | 28 + .../html/admin/admin_unlock_sponsor_row.tpl | 14 + .../html/admin/admin_unlock_surfbar_urls.tpl | 24 + .../admin/admin_unlock_surfbar_urls_row.tpl | 17 + .../de/html/admin/admin_update_download.tpl | 62 + .../de/html/admin/admin_user_details.tpl | 109 + .../admin/admin_validate_reset_hash_form.tpl | 29 + .../templates/de/html/admin/admin_welcome.tpl | 17 + .../de/html/admin/admin_welcome_admins.tpl | 18 + .../de/html/admin/admin_yoomedia_error.tpl | 8 + 0.2.1-FINAL/templates/de/html/agb.tpl | 224 ++ 0.2.1-FINAL/templates/de/html/beg/.htaccess | 1 + .../templates/de/html/beg/beg_banner.tpl | 3 + .../templates/de/html/beg/beg_done.tpl | 9 + .../templates/de/html/beg/beg_failed.tpl | 9 + .../templates/de/html/beg/beg_link.tpl | 32 + .../templates/de/html/beg/beg_login.tpl | 9 + .../de/html/beg/beg_pay_mode_both.tpl | 9 + .../templates/de/html/birthday/.htaccess | 1 + .../de/html/birthday/birthday_confirm.tpl | 11 + .../de/html/birthday/birthday_footer.tpl | 3 + .../de/html/birthday/birthday_header.tpl | 3 + .../de/html/birthday/birthday_msg.tpl | 8 + 0.2.1-FINAL/templates/de/html/copyright.tpl | 12 + .../templates/de/html/copyright_backlink.tpl | 14 + .../templates/de/html/doubler/.htaccess | 1 + .../de/html/doubler/doubler_footer.tpl | 3 + .../de/html/doubler/doubler_header.tpl | 3 + .../de/html/doubler/doubler_index.tpl | 97 + .../de/html/doubler/doubler_reflink.tpl | 3 + 0.2.1-FINAL/templates/de/html/ext/.htaccess | 1 + .../templates/de/html/ext/ext_active.tpl | 5 + .../templates/de/html/ext/ext_admins.tpl | 2 + .../templates/de/html/ext/ext_admintheme1.tpl | 4 + .../de/html/ext/ext_admintheme_default.tpl | 4 + .../templates/de/html/ext/ext_autopurge.tpl | 7 + .../templates/de/html/ext/ext_bank.tpl | 4 + 0.2.1-FINAL/templates/de/html/ext/ext_beg.tpl | 15 + .../templates/de/html/ext/ext_birthday.tpl | 5 + .../templates/de/html/ext/ext_bonus.tpl | 7 + .../templates/de/html/ext/ext_booking.tpl | 3 + .../templates/de/html/ext/ext_cache.tpl | 16 + .../templates/de/html/ext/ext_country.tpl | 6 + .../templates/de/html/ext/ext_debug.tpl | 36 + .../templates/de/html/ext/ext_demo.tpl | 11 + .../templates/de/html/ext/ext_doubler.tpl | 7 + .../templates/de/html/ext/ext_events.tpl | 6 + .../templates/de/html/ext/ext_holiday.tpl | 5 + .../templates/de/html/ext/ext_html_mail.tpl | 3 + .../templates/de/html/ext/ext_mailid.tpl | 2 + .../templates/de/html/ext/ext_maintenance.tpl | 1 + .../templates/de/html/ext/ext_mediadata.tpl | 2 + .../templates/de/html/ext/ext_mods.tpl | 2 + .../templates/de/html/ext/ext_mydata.tpl | 2 + .../templates/de/html/ext/ext_network.tpl | 3 + .../templates/de/html/ext/ext_newsletter.tpl | 4 + .../templates/de/html/ext/ext_nickname.tpl | 4 + .../templates/de/html/ext/ext_online.tpl | 5 + .../templates/de/html/ext/ext_optimize.tpl | 5 + .../templates/de/html/ext/ext_order.tpl | 3 + .../templates/de/html/ext/ext_other.tpl | 2 + .../templates/de/html/ext/ext_payout.tpl | 3 + .../templates/de/html/ext/ext_primera.tpl | 10 + .../templates/de/html/ext/ext_profile.tpl | 3 + .../templates/de/html/ext/ext_rallye.tpl | 7 + .../templates/de/html/ext/ext_refback.tpl | 8 + .../templates/de/html/ext/ext_register.tpl | 4 + .../templates/de/html/ext/ext_removeip.tpl | 16 + .../templates/de/html/ext/ext_repair.tpl | 6 + .../templates/de/html/ext/ext_rewrite.tpl | 17 + .../templates/de/html/ext/ext_safe.tpl | 13 + .../templates/de/html/ext/ext_sponsor.tpl | 18 + .../templates/de/html/ext/ext_sql_patches.tpl | 3 + .../templates/de/html/ext/ext_support.tpl | 1 + .../templates/de/html/ext/ext_surfbar.tpl | 32 + .../templates/de/html/ext/ext_task.tpl | 9 + .../templates/de/html/ext/ext_theme.tpl | 2 + .../templates/de/html/ext/ext_top10.tpl | 2 + .../templates/de/html/ext/ext_transfer.tpl | 10 + .../templates/de/html/ext/ext_user.tpl | 2 + .../templates/de/html/ext/ext_wernis.tpl | 11 + .../templates/de/html/ext/ext_yoomedia.tpl | 5 + .../templates/de/html/fatal_footer.tpl | 3 + .../templates/de/html/fatal_header.tpl | 1 + 0.2.1-FINAL/templates/de/html/guest/.htaccess | 1 + .../de/html/guest/guest_active_none_row.tpl | 11 + .../de/html/guest/guest_active_row.tpl | 5 + .../de/html/guest/guest_active_table.tpl | 22 + .../templates/de/html/guest/guest_advert.tpl | 1 + .../templates/de/html/guest/guest_advert2.tpl | 1 + .../templates/de/html/guest/guest_beg.tpl | 50 + .../templates/de/html/guest/guest_cat_row.tpl | 14 + .../de/html/guest/guest_cat_table.tpl | 4 + .../de/html/guest/guest_confirm_link.tpl | 34 + .../de/html/guest/guest_confirm_table.tpl | 7 + .../de/html/guest/guest_content_footer.tpl | 8 + .../templates/de/html/guest/guest_doubler.tpl | 67 + .../de/html/guest/guest_doubler_list.tpl | 15 + .../de/html/guest/guest_doubler_list_rows.tpl | 8 + .../templates/de/html/guest/guest_footer.tpl | 6 + .../de/html/guest/guest_frametester.tpl | 6 + .../de/html/guest/guest_goto_top.tpl | 4 + .../templates/de/html/guest/guest_header.tpl | 19 + .../templates/de/html/guest/guest_login.tpl | 123 + .../de/html/guest/guest_menu_bottom.tpl | 3 + .../de/html/guest/guest_menu_content.tpl | 3 + .../de/html/guest/guest_menu_row.tpl | 3 + .../templates/de/html/guest/guest_menu_td.tpl | 3 + .../de/html/guest/guest_menu_title.tpl | 5 + .../de/html/guest/guest_menu_whats.tpl | 3 + .../de/html/guest/guest_nickname_login.tpl | 113 + .../de/html/guest/guest_no_rallyes.tpl | 23 + .../guest/guest_rallye_expired_footer.tpl | 6 + .../guest/guest_rallye_expired_header.tpl | 9 + .../de/html/guest/guest_rallye_footer.tpl | 11 + .../de/html/guest/guest_rallye_header.tpl | 7 + .../de/html/guest/guest_rallye_show.tpl | 57 + .../de/html/guest/guest_receive_table.tpl | 11 + .../de/html/guest/guest_register.tpl | 162 + .../de/html/guest/guest_register_refid.tpl | 7 + .../html/guest/guest_register_refid_hide.tpl | 8 + .../de/html/guest/guest_sponsor_act_row.tpl | 6 + .../de/html/guest/guest_sponsor_activate.tpl | 42 + .../de/html/guest/guest_sponsor_infos.tpl | 32 + .../de/html/guest/guest_sponsor_login.tpl | 52 + .../de/html/guest/guest_sponsor_lost.tpl | 50 + .../de/html/guest/guest_sponsor_pay_row.tpl | 17 + .../de/html/guest/guest_sponsor_reg.tpl | 350 ++ .../de/html/guest/guest_stats_cats_row.tpl | 5 + .../de/html/guest/guest_stats_member.tpl | 51 + .../de/html/guest/guest_stats_month_row.tpl | 4 + .../templates/de/html/guest/guest_top10.tpl | 83 + .../de/html/guest/guest_top10_empty4.tpl | 7 + .../de/html/guest/guest_top10_empty5.tpl | 8 + .../de/html/guest/guest_top10_row_earner.tpl | 7 + .../de/html/guest/guest_top10_row_login.tpl | 8 + .../de/html/guest/guest_top10_row_refs.tpl | 8 + 0.2.1-FINAL/templates/de/html/header.tpl | 0 0.2.1-FINAL/templates/de/html/impressum.tpl | 26 + 0.2.1-FINAL/templates/de/html/index.tpl | 41 + .../templates/de/html/index_forward.tpl | 10 + 0.2.1-FINAL/templates/de/html/infos.tpl | 3 + .../templates/de/html/install/.htaccess | 1 + .../de/html/install/install_fatal_row.tpl | 2 + .../de/html/install/install_fatal_table.tpl | 5 + .../de/html/install/install_finished.tpl | 8 + .../de/html/install/install_footer.tpl | 5 + .../de/html/install/install_header.tpl | 12 + .../de/html/install/install_page1.tpl | 70 + .../de/html/install/install_page2.tpl | 80 + .../de/html/install/install_page3.tpl | 73 + .../de/html/install/install_welcome.tpl | 28 + 0.2.1-FINAL/templates/de/html/lead_code.tpl | 14 + 0.2.1-FINAL/templates/de/html/loader.tpl | 20 + .../templates/de/html/login_failed_js.tpl | 11 + .../templates/de/html/login_failtures.tpl | 9 + .../templates/de/html/mailid/.htaccess | 1 + .../de/html/mailid/mailid_banner.tpl | 1 + .../de/html/mailid/mailid_confirm_buttom.tpl | 31 + .../de/html/mailid/mailid_enter_code.tpl | 31 + .../de/html/mailid/mailid_frames.tpl | 7 + .../de/html/mailid/mailid_points_done.tpl | 26 + .../de/html/mailid/mailid_points_done2.tpl | 31 + .../de/html/mailid/mailid_points_failed.tpl | 25 + .../de/html/mailid/mailid_points_lcoked2.tpl | 1 + .../de/html/mailid/mailid_points_locked.tpl | 25 + .../de/html/mailid/mailid_points_locked2.tpl | 29 + .../templates/de/html/mailid/mailid_timer.tpl | 70 + .../templates/de/html/main-welcome.tpl | 1 + 0.2.1-FINAL/templates/de/html/mediadata.tpl | 185 + .../de/html/mediadata_extra_hrow.tpl | 5 + .../templates/de/html/mediadata_extra_row.tpl | 5 + .../de/html/mediadata_extra_row2.tpl | 7 + .../templates/de/html/member/.htaccess | 1 + .../de/html/member/member_advert.tpl | 1 + .../templates/de/html/member/member_beg.tpl | 44 + .../de/html/member/member_beg_404.tpl | 4 + .../templates/de/html/member/member_bonus.tpl | 47 + .../de/html/member/member_bonus_404.tpl | 4 + .../de/html/member/member_bonus_row.tpl | 6 + .../de/html/member/member_cat_row.tpl | 11 + .../de/html/member/member_cats_footer.tpl | 8 + .../de/html/member/member_cats_header.tpl | 15 + .../de/html/member/member_content_right.tpl | 7 + .../de/html/member/member_doubler.tpl | 71 + .../de/html/member/member_doubler_list.tpl | 17 + .../html/member/member_doubler_list_rows.tpl | 10 + .../de/html/member/member_footer.tpl | 7 + .../de/html/member/member_goto_top.tpl | 4 + .../de/html/member/member_header.tpl | 22 + .../html/member/member_holiday_deactivate.tpl | 53 + .../de/html/member/member_holiday_form.tpl | 68 + .../html/member/member_html_mail_settings.tpl | 34 + .../de/html/member/member_list_beg.tpl | 45 + .../de/html/member/member_list_beg_row.tpl | 6 + .../de/html/member/member_login_js.tpl | 11 + .../html/member/member_mail_bonus_deleted.tpl | 66 + .../de/html/member/member_mail_bonus_new.tpl | 65 + .../html/member/member_mail_bonus_queue.tpl | 65 + .../de/html/member/member_mail_bonus_send.tpl | 68 + .../html/member/member_mail_normal_active.tpl | 59 + .../html/member/member_mail_normal_admin.tpl | 59 + .../member/member_mail_normal_deleted.tpl | 59 + .../de/html/member/member_mail_normal_new.tpl | 59 + .../html/member/member_mail_normal_send.tpl | 62 + .../html/member/member_mail_normal_temp.tpl | 59 + .../de/html/member/member_menu_bottom.tpl | 3 + .../de/html/member/member_menu_row.tpl | 3 + .../de/html/member/member_menu_title.tpl | 5 + .../de/html/member/member_menu_whats.tpl | 3 + .../de/html/member/member_mydata_button.tpl | 4 + .../de/html/member/member_mydata_edit.tpl | 125 + .../de/html/member/member_mydata_locked.tpl | 12 + .../de/html/member/member_mydata_overview.tpl | 117 + .../de/html/member/member_newsletter.tpl | 29 + .../de/html/member/member_newsletter_note.tpl | 17 + .../de/html/member/member_nickname_form.tpl | 49 + .../de/html/member/member_order-back.tpl | 8 + .../de/html/member/member_order-html_ext.tpl | 9 + .../html/member/member_order-html_intro.tpl | 13 + .../de/html/member/member_order-zip1.tpl | 32 + .../de/html/member/member_order-zip2.tpl | 24 + .../de/html/member/member_order_back.tpl | 5 + .../html/member/member_order_frametester.tpl | 9 + .../de/html/member/member_order_page1.tpl | 16 + .../de/html/member/member_order_page2.tpl | 127 + .../de/html/member/member_order_points.tpl | 19 + .../de/html/member/member_order_send.tpl | 33 + .../de/html/member/member_payout.tpl | 18 + .../de/html/member/member_payout_form.tpl | 58 + .../html/member/member_payout_form_banner.tpl | 62 + .../de/html/member/member_payout_row.tpl | 7 + .../de/html/member/member_points.tpl | 99 + .../member/member_points_bonus_disabled.tpl | 7 + .../html/member/member_points_bonus_rows.tpl | 76 + .../de/html/member/member_points_row.tpl | 11 + .../de/html/member/member_points_upgrade.tpl | 8 + .../de/html/member/member_pool_row.tpl | 42 + .../de/html/member/member_pool_table.tpl | 8 + .../de/html/member/member_primera.tpl | 17 + .../de/html/member/member_primera_form.tpl | 51 + .../html/member/member_primera_mode_list.tpl | 20 + .../member/member_primera_mode_list_row.tpl | 6 + .../html/member/member_primera_mode_pay.tpl | 47 + .../de/html/member/member_receive_table.tpl | 11 + .../de/html/member/member_ref_list.tpl | 10 + .../de/html/member/member_ref_list_level.tpl | 38 + .../de/html/member/member_ref_list_row.tpl | 20 + .../de/html/member/member_refback_edit.tpl | 31 + .../de/html/member/member_refback_list.tpl | 15 + .../html/member/member_refback_list_level.tpl | 35 + .../html/member/member_refback_list_row.tpl | 20 + .../member_refback_list_row_deleted.tpl | 20 + .../de/html/member/member_reflinks_row.tpl | 27 + .../de/html/member/member_reflinks_table.tpl | 9 + .../de/html/member/member_stats_pool.tpl | 3 + .../de/html/member/member_stats_row.tpl | 44 + .../de/html/member/member_stats_table.tpl | 8 + .../html/member/member_support_contcted.tpl | 20 + .../de/html/member/member_support_form.tpl | 49 + .../member/member_surfbar_book_dynamic.tpl | 89 + .../html/member/member_surfbar_book_static.tp | 63 + .../member/member_surfbar_book_static.tpl | 82 + .../member_surfbar_delete_action_form.tpl | 36 + .../member_surfbar_edit_action_form.tpl | 79 + .../de/html/member/member_surfbar_link.tpl | 3 + .../de/html/member/member_surfbar_list.tpl | 33 + .../html/member/member_surfbar_list_row.tpl | 20 + .../member/member_surfbar_start_dynamic.tpl | 34 + .../member/member_surfbar_start_static.tpl | 15 + .../de/html/member/member_themes.tpl | 28 + .../de/html/member/member_transfer_list.tpl | 27 + .../de/html/member/member_transfer_new.tpl | 61 + .../html/member/member_transfer_overview.tpl | 34 + .../html/member/member_transfer_settings.tpl | 21 + .../de/html/member/member_unconfirmed_404.tpl | 5 + .../member_unconfirmed_404_nopoints.tpl | 5 + .../de/html/member/member_unconfirmed_row.tpl | 16 + .../member_unconfirmed_row_nopoints.tpl | 13 + .../html/member/member_unconfirmed_table.tpl | 18 + .../member_unconfirmed_table_nopoints.tpl | 14 + .../de/html/member/member_welcome.tpl | 2 + .../de/html/member/member_welcome_footer.tpl | 3 + .../de/html/member/member_welcome_header.tpl | 11 + .../de/html/member/member_wernis.tpl | 17 + .../de/html/member/member_wernis_form.tpl | 48 + .../html/member/member_wernis_mode_choose.tpl | 18 + .../html/member/member_wernis_mode_list.tpl | 19 + .../member/member_wernis_mode_list_row.tpl | 6 + .../html/member/member_wernis_mode_payout.tpl | 55 + .../member/member_wernis_mode_withdraw.tpl | 51 + .../de/html/member/member_wernis_row.tpl | 6 + 0.2.1-FINAL/templates/de/html/message.tpl | 5 + 0.2.1-FINAL/templates/de/html/metadata.tpl | 8 + 0.2.1-FINAL/templates/de/html/online_now.tpl | 35 + 0.2.1-FINAL/templates/de/html/page_body.tpl | 5 + 0.2.1-FINAL/templates/de/html/page_footer.tpl | 6 + 0.2.1-FINAL/templates/de/html/page_header.tpl | 4 + .../templates/de/html/profile-update.tpl | 51 + .../templates/de/html/rallye/.htaccess | 1 + .../templates/de/html/rallye/rallye_test.tpl | 3 + .../templates/de/html/redirect_url.tpl | 6 + .../templates/de/html/register_header.tpl | 3 + .../templates/de/html/removeip_level.tpl | 12 + .../templates/de/html/runtime_fatal_row.tpl | 2 + .../templates/de/html/runtime_fatal_table.tpl | 5 + 0.2.1-FINAL/templates/de/html/show_bonus.tpl | 12 + .../templates/de/html/show_bonus_footer.tpl | 3 + .../templates/de/html/show_bonus_header.tpl | 3 + .../templates/de/html/show_bonus_msg.tpl | 27 + .../templates/de/html/show_bonus_yr.tpl | 8 + .../templates/de/html/show_timings.tpl | 13 + .../de/html/sponsor/sponsor_account_form.tpl | 176 + .../de/html/sponsor/sponsor_action.tpl | 8 + .../de/html/sponsor/sponsor_fillup_form.tpl | 41 + .../de/html/sponsor/sponsor_footer.tpl | 2 + .../de/html/sponsor/sponsor_header.tpl | 2 + .../de/html/sponsor/sponsor_main.tpl | 23 + .../de/html/sponsor/sponsor_settings_form.tpl | 50 + .../de/html/sponsor/sponsor_welcome.tpl | 5 + .../de/html/sponsor/sponsor_what.tpl | 8 + .../templates/de/html/surfbar/.htaccess | 1 + .../de/html/surfbar/surfbar_frame_banner.tpl | 7 + .../de/html/surfbar/surfbar_frame_start.tpl | 31 + .../de/html/surfbar/surfbar_frame_stats.tpl | 22 + .../html/surfbar/surfbar_frame_textlinks.tpl | 21 + .../de/html/surfbar/surfbar_frame_top.tpl | 78 + .../de/html/surfbar/surfbar_frameset.tpl | 18 + .../de/html/surfbar/surfbar_start_banner.tpl | 1 + .../de/html/surfbar/surfbar_stopped.tpl | 50 + 0.2.1-FINAL/templates/de/html/task/.htaccess | 1 + .../de/html/task/task_ext_deactivated.tpl | 6 + 0.2.1-FINAL/templates/de/html/theme_one.tpl | 5 + .../templates/de/html/theme_select_box.tpl | 6 + .../templates/de/html/theme_select_form.tpl | 6 + 0.2.1-FINAL/templates/de/html/welcome.tpl | 26 + .../templates/en/html/admin/admin_welcome.tpl | 3 + 0.2.1-FINAL/templates/en/html/impressum.tpl | 13 + .../templates/en/html/mailid/.htaccess | 1 + .../templates/en/html/register_header.tpl | 3 + 0.2.1-FINAL/templates/en/html/welcome.tpl | 1 + 0.2.1-FINAL/theme/business/css/active.css | 9 + 0.2.1-FINAL/theme/business/css/beg.css | 9 + 0.2.1-FINAL/theme/business/css/bonus.css | 13 + 0.2.1-FINAL/theme/business/css/doubler.css | 25 + 0.2.1-FINAL/theme/business/css/general.css | 688 ++++ 0.2.1-FINAL/theme/business/css/install.css | 64 + 0.2.1-FINAL/theme/business/css/register.css | 88 + 0.2.1-FINAL/theme/business/css/sponsor.css | 16 + 0.2.1-FINAL/theme/business/css/surfbar.css | 21 + 0.2.1-FINAL/theme/business/css/top10.css | 9 + 0.2.1-FINAL/theme/business/css/transfer.css | 12 + 0.2.1-FINAL/theme/business/images/code_bg.jpg | Bin 0 -> 939 bytes 0.2.1-FINAL/theme/business/images/code_bg.png | Bin 0 -> 2055 bytes 0.2.1-FINAL/theme/business/theme.php | 70 + 0.2.1-FINAL/theme/default/css/active.css | 9 + 0.2.1-FINAL/theme/default/css/beg.css | 9 + 0.2.1-FINAL/theme/default/css/bonus.css | 13 + 0.2.1-FINAL/theme/default/css/doubler.css | 25 + 0.2.1-FINAL/theme/default/css/general.css | 714 ++++ 0.2.1-FINAL/theme/default/css/install.css | 77 + 0.2.1-FINAL/theme/default/css/register.css | 80 + 0.2.1-FINAL/theme/default/css/sponsor.css | 16 + 0.2.1-FINAL/theme/default/css/surfbar.css | 21 + 0.2.1-FINAL/theme/default/css/top10.css | 9 + 0.2.1-FINAL/theme/default/css/transfer.css | 12 + 0.2.1-FINAL/theme/default/images/code_bg.jpg | Bin 0 -> 939 bytes 0.2.1-FINAL/theme/default/images/code_bg.png | Bin 0 -> 2055 bytes 0.2.1-FINAL/theme/default/theme.php | 70 + 0.2.1-FINAL/theme/desert/css/active.css | 9 + 0.2.1-FINAL/theme/desert/css/beg.css | 9 + 0.2.1-FINAL/theme/desert/css/bonus.css | 13 + 0.2.1-FINAL/theme/desert/css/doubler.css | 25 + 0.2.1-FINAL/theme/desert/css/general.css | 683 ++++ 0.2.1-FINAL/theme/desert/css/help.css | 12 + 0.2.1-FINAL/theme/desert/css/install.css | 71 + 0.2.1-FINAL/theme/desert/css/paidlinks.css | 8 + 0.2.1-FINAL/theme/desert/css/register.css | 88 + 0.2.1-FINAL/theme/desert/css/sponsor.css | 28 + 0.2.1-FINAL/theme/desert/css/surfbar.css | 22 + 0.2.1-FINAL/theme/desert/css/top10.css | 9 + 0.2.1-FINAL/theme/desert/css/transfer.css | 12 + 0.2.1-FINAL/theme/desert/images/code_bg.jpg | Bin 0 -> 939 bytes 0.2.1-FINAL/theme/desert/images/code_bg.png | Bin 0 -> 2055 bytes .../theme/desert/images/help/bullet.png | Bin 0 -> 954 bytes 0.2.1-FINAL/theme/desert/images/help/down.jpg | Bin 0 -> 677 bytes 0.2.1-FINAL/theme/desert/images/help/left.jpg | Bin 0 -> 661 bytes .../theme/desert/images/help/right.jpg | Bin 0 -> 665 bytes 0.2.1-FINAL/theme/desert/images/help/up.jpg | Bin 0 -> 656 bytes 0.2.1-FINAL/theme/desert/theme.php | 70 + 0.2.1-FINAL/view.php | 71 + 1570 files changed, 122663 insertions(+) create mode 100644 0.2.1-FINAL/.htaccess create mode 100644 0.2.1-FINAL/.svnignore create mode 100644 0.2.1-FINAL/DOCS/INSTALL.txt create mode 100644 0.2.1-FINAL/DOCS/LICENSE.txt create mode 100644 0.2.1-FINAL/DOCS/README create mode 100644 0.2.1-FINAL/DOCS/de/AUTHORS.txt create mode 100644 0.2.1-FINAL/DOCS/de/CHANGES.txt create mode 100644 0.2.1-FINAL/DOCS/de/CSS-PATCHES.txt create mode 100644 0.2.1-FINAL/DOCS/de/CSS-PATCHES_05092004.txt create mode 100644 0.2.1-FINAL/DOCS/de/DESIGNING.txt create mode 100644 0.2.1-FINAL/DOCS/de/EXTENSIONS.txt create mode 100644 0.2.1-FINAL/DOCS/de/LICENSE.txt create mode 100644 0.2.1-FINAL/DOCS/de/MENUE_HOVER.txt create mode 100644 0.2.1-FINAL/DOCS/de/PATCHES.txt create mode 100644 0.2.1-FINAL/DOCS/de/PATCH_320.txt create mode 100644 0.2.1-FINAL/DOCS/de/README.txt create mode 100644 0.2.1-FINAL/DOCS/de/SECURITY.txt create mode 100644 0.2.1-FINAL/DOCS/de/TEMPLATES.txt create mode 100644 0.2.1-FINAL/DOCS/de/THANK_YOU.txt create mode 100644 0.2.1-FINAL/DOCS/de/TODO.txt create mode 100644 0.2.1-FINAL/DOCS/de/UPGRADING.txt create mode 100644 0.2.1-FINAL/DOCS/de/cache/README.txt create mode 100644 0.2.1-FINAL/DOCS/de/country/README.txt create mode 100644 0.2.1-FINAL/DOCS/de/country/countries-europe.sql create mode 100644 0.2.1-FINAL/DOCS/de/country/countries-full.sql create mode 100644 0.2.1-FINAL/DOCS/de/country/countries-sorted.sql create mode 100644 0.2.1-FINAL/DOCS/de/doubler/README.txt create mode 100644 0.2.1-FINAL/DOCS/de/engine/README.txt create mode 100644 0.2.1-FINAL/DOCS/de/promoter.txt create mode 100644 0.2.1-FINAL/DOCS/de/rallye/README.txt create mode 100644 0.2.1-FINAL/DOCS/de/rewrite/.htaccess create mode 100644 0.2.1-FINAL/DOCS/de/rewrite/README.txt create mode 100644 0.2.1-FINAL/DOCS/de/rewrite/README_htaccess.de create mode 100644 0.2.1-FINAL/DOCS/de/task/README.txt create mode 100644 0.2.1-FINAL/DOCS/de/themes/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/AUTHORS.txt create mode 100644 0.2.1-FINAL/DOCS/en/CHANGES.txt create mode 100644 0.2.1-FINAL/DOCS/en/CSS-PATCHES.txt create mode 100644 0.2.1-FINAL/DOCS/en/CSS-PATCHES_05092004.txt create mode 100644 0.2.1-FINAL/DOCS/en/DESIGNING.txt create mode 100644 0.2.1-FINAL/DOCS/en/EXTENSIONS.txt create mode 100644 0.2.1-FINAL/DOCS/en/LICENSE.txt create mode 100644 0.2.1-FINAL/DOCS/en/MENUE_HOVER.txt create mode 100644 0.2.1-FINAL/DOCS/en/PATCHES.txt create mode 100644 0.2.1-FINAL/DOCS/en/PATCH_320.txt create mode 100644 0.2.1-FINAL/DOCS/en/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/SECURITY.txt create mode 100644 0.2.1-FINAL/DOCS/en/TEMPLATES.txt create mode 100644 0.2.1-FINAL/DOCS/en/THANK_YOU.txt create mode 100644 0.2.1-FINAL/DOCS/en/TODO.txt create mode 100644 0.2.1-FINAL/DOCS/en/UPGRADING.txt create mode 100644 0.2.1-FINAL/DOCS/en/cache/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/country/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/country/countries-europe.sql create mode 100644 0.2.1-FINAL/DOCS/en/country/countries-full.sql create mode 100644 0.2.1-FINAL/DOCS/en/country/countries-sorted.sql create mode 100644 0.2.1-FINAL/DOCS/en/doubler/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/engine/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/promoter.txt create mode 100644 0.2.1-FINAL/DOCS/en/rallye/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/rewrite/.htaccess create mode 100644 0.2.1-FINAL/DOCS/en/rewrite/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/rewrite/README_htaccess.de create mode 100644 0.2.1-FINAL/DOCS/en/task/README.txt create mode 100644 0.2.1-FINAL/DOCS/en/themes/README.txt create mode 100644 0.2.1-FINAL/DOCS/tpl-validator.php create mode 100644 0.2.1-FINAL/DOCS/validator.sh create mode 100644 0.2.1-FINAL/admin.php create mode 100644 0.2.1-FINAL/agb.php create mode 100644 0.2.1-FINAL/beg.php create mode 100644 0.2.1-FINAL/birthday_confirm.php create mode 100644 0.2.1-FINAL/click.php create mode 100644 0.2.1-FINAL/confirm.php create mode 100644 0.2.1-FINAL/css.php create mode 100644 0.2.1-FINAL/debug.php create mode 100644 0.2.1-FINAL/doubler.php create mode 100644 0.2.1-FINAL/img.php create mode 100644 0.2.1-FINAL/inc/.htaccess create mode 100644 0.2.1-FINAL/inc/.secret/.htaccess create mode 100644 0.2.1-FINAL/inc/autopurge.php create mode 100644 0.2.1-FINAL/inc/autopurge/.htaccess create mode 100644 0.2.1-FINAL/inc/autopurge/purge- create mode 100644 0.2.1-FINAL/inc/autopurge/purge-general.php create mode 100644 0.2.1-FINAL/inc/autopurge/purge-inact.php create mode 100644 0.2.1-FINAL/inc/autopurge/purge-mails.php create mode 100644 0.2.1-FINAL/inc/autopurge/purge-tsks.php create mode 100644 0.2.1-FINAL/inc/autopurge/purge-unconfirmed.php create mode 100644 0.2.1-FINAL/inc/cache/.htaccess create mode 100644 0.2.1-FINAL/inc/check-reset.php create mode 100644 0.2.1-FINAL/inc/config.php create mode 100644 0.2.1-FINAL/inc/databases.php create mode 100644 0.2.1-FINAL/inc/db/.htaccess create mode 100644 0.2.1-FINAL/inc/db/lib-mysql3.php create mode 100644 0.2.1-FINAL/inc/db/lib.php create mode 100644 0.2.1-FINAL/inc/debug/.htaccess create mode 100644 0.2.1-FINAL/inc/debug/client/.htaccess create mode 100644 0.2.1-FINAL/inc/debug/relay/.htaccess create mode 100644 0.2.1-FINAL/inc/debug/request_ create mode 100644 0.2.1-FINAL/inc/debug/server/.htaccess create mode 100644 0.2.1-FINAL/inc/doubler_send.php create mode 100644 0.2.1-FINAL/inc/extensions.php create mode 100644 0.2.1-FINAL/inc/extensions/.htaccess create mode 100644 0.2.1-FINAL/inc/extensions/ext- create mode 100644 0.2.1-FINAL/inc/extensions/ext-active.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-admins.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-admintheme1.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-admintheme_default.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-autopurge.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-bank.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-beg.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-birthday.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-bonus.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-booking.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-cache.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-country.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-debug.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-demo.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-doubler.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-events.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-holiday.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-html_mail.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-iso3166.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-mailid.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-maintenance.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-mediadata.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-mods.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-mydata.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-network.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-newsletter.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-nickname.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-online.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-optimize.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-order.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-other.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-payout.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-primera.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-profile.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-rallye.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-refback.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-register.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-removeip.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-repair.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-rewrite.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-safe.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-sponsor.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-sql_patches.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-support.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-surfbar.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-task.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-theme.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-top10.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-transfer.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-user.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-wernis.php create mode 100644 0.2.1-FINAL/inc/extensions/ext-yoomedia.php create mode 100644 0.2.1-FINAL/inc/fatal_errors.php create mode 100644 0.2.1-FINAL/inc/filters.php create mode 100644 0.2.1-FINAL/inc/footer.php create mode 100644 0.2.1-FINAL/inc/functions.php create mode 100644 0.2.1-FINAL/inc/gen_mediadata.php create mode 100644 0.2.1-FINAL/inc/gen_refback.php create mode 100644 0.2.1-FINAL/inc/gen_sql_patches.php create mode 100644 0.2.1-FINAL/inc/header.php create mode 100644 0.2.1-FINAL/inc/img/.htaccess create mode 100644 0.2.1-FINAL/inc/install-inc.php create mode 100644 0.2.1-FINAL/inc/js/.htaccess create mode 100644 0.2.1-FINAL/inc/language.php create mode 100644 0.2.1-FINAL/inc/language/.htaccess create mode 100644 0.2.1-FINAL/inc/language/_de.php create mode 100644 0.2.1-FINAL/inc/language/active_de.php create mode 100644 0.2.1-FINAL/inc/language/admins_de.php create mode 100644 0.2.1-FINAL/inc/language/autopurge_de.php create mode 100644 0.2.1-FINAL/inc/language/bank_de.php create mode 100644 0.2.1-FINAL/inc/language/beg_de.php create mode 100644 0.2.1-FINAL/inc/language/birthday_de.php create mode 100644 0.2.1-FINAL/inc/language/bonus_de.php create mode 100644 0.2.1-FINAL/inc/language/booking_de.php create mode 100644 0.2.1-FINAL/inc/language/cache_de.php create mode 100644 0.2.1-FINAL/inc/language/country_de.php create mode 100644 0.2.1-FINAL/inc/language/de.php create mode 100644 0.2.1-FINAL/inc/language/debug_de.php create mode 100644 0.2.1-FINAL/inc/language/doubler_de.php create mode 100644 0.2.1-FINAL/inc/language/en.ph create mode 100644 0.2.1-FINAL/inc/language/en.php create mode 100644 0.2.1-FINAL/inc/language/holiday_de.php create mode 100644 0.2.1-FINAL/inc/language/html_mail_de.php create mode 100644 0.2.1-FINAL/inc/language/install_de.php create mode 100644 0.2.1-FINAL/inc/language/mailid_de.php create mode 100644 0.2.1-FINAL/inc/language/maintenance_de.php create mode 100644 0.2.1-FINAL/inc/language/mediadata_de.php create mode 100644 0.2.1-FINAL/inc/language/mods_de.php create mode 100644 0.2.1-FINAL/inc/language/newsletter_de.php create mode 100644 0.2.1-FINAL/inc/language/nickname_de.php create mode 100644 0.2.1-FINAL/inc/language/online_de.php create mode 100644 0.2.1-FINAL/inc/language/optimize_de.php create mode 100644 0.2.1-FINAL/inc/language/order_de.php create mode 100644 0.2.1-FINAL/inc/language/other_de.php create mode 100644 0.2.1-FINAL/inc/language/payout_de.php create mode 100644 0.2.1-FINAL/inc/language/primera_de.php create mode 100644 0.2.1-FINAL/inc/language/rallye_de.php create mode 100644 0.2.1-FINAL/inc/language/refback_de.php create mode 100644 0.2.1-FINAL/inc/language/register_de.php create mode 100644 0.2.1-FINAL/inc/language/removeip_de.php create mode 100644 0.2.1-FINAL/inc/language/repair_de.php create mode 100644 0.2.1-FINAL/inc/language/rewrite_de.php create mode 100644 0.2.1-FINAL/inc/language/sponsor_de.php create mode 100644 0.2.1-FINAL/inc/language/support_de.php create mode 100644 0.2.1-FINAL/inc/language/surfbar_de.php create mode 100644 0.2.1-FINAL/inc/language/task_de.php create mode 100644 0.2.1-FINAL/inc/language/theme_de.php create mode 100644 0.2.1-FINAL/inc/language/top10_de.php create mode 100644 0.2.1-FINAL/inc/language/transfer_de.php create mode 100644 0.2.1-FINAL/inc/language/user_de.php create mode 100644 0.2.1-FINAL/inc/language/wernis_de.php create mode 100644 0.2.1-FINAL/inc/language/yoomedia_de.php create mode 100644 0.2.1-FINAL/inc/libs/.htaccess create mode 100644 0.2.1-FINAL/inc/libs/active_functions.php create mode 100644 0.2.1-FINAL/inc/libs/admins_functions.php create mode 100644 0.2.1-FINAL/inc/libs/autopurge_functions.php create mode 100644 0.2.1-FINAL/inc/libs/beg_functions.php create mode 100644 0.2.1-FINAL/inc/libs/bonus_functions.php create mode 100644 0.2.1-FINAL/inc/libs/booking_functions.php create mode 100644 0.2.1-FINAL/inc/libs/cache_functions.php create mode 100644 0.2.1-FINAL/inc/libs/country_functions.php create mode 100644 0.2.1-FINAL/inc/libs/debug_functions.php create mode 100644 0.2.1-FINAL/inc/libs/doubler_functions.php create mode 100644 0.2.1-FINAL/inc/libs/events_functions.php create mode 100644 0.2.1-FINAL/inc/libs/holiday_functions.php create mode 100644 0.2.1-FINAL/inc/libs/html_mail_functions.php create mode 100644 0.2.1-FINAL/inc/libs/mediadata_functions.php create mode 100644 0.2.1-FINAL/inc/libs/newsletter_functions.php create mode 100644 0.2.1-FINAL/inc/libs/nickname_functions.php create mode 100644 0.2.1-FINAL/inc/libs/online_functions.php create mode 100644 0.2.1-FINAL/inc/libs/optimize_functions.php create mode 100644 0.2.1-FINAL/inc/libs/order_functions.php create mode 100644 0.2.1-FINAL/inc/libs/payout_functions.php create mode 100644 0.2.1-FINAL/inc/libs/primera_functions.php create mode 100644 0.2.1-FINAL/inc/libs/rallye_functions.php create mode 100644 0.2.1-FINAL/inc/libs/refback_functions.php create mode 100644 0.2.1-FINAL/inc/libs/register_functions.php create mode 100644 0.2.1-FINAL/inc/libs/removeip_functions.php create mode 100644 0.2.1-FINAL/inc/libs/rewrite_functions.php create mode 100644 0.2.1-FINAL/inc/libs/security_functions.php create mode 100644 0.2.1-FINAL/inc/libs/sponsor_functions.php create mode 100644 0.2.1-FINAL/inc/libs/surfbar_functions.php create mode 100644 0.2.1-FINAL/inc/libs/task_functions.php create mode 100644 0.2.1-FINAL/inc/libs/theme_functions.php create mode 100644 0.2.1-FINAL/inc/libs/transfer_functions.php create mode 100644 0.2.1-FINAL/inc/libs/user_functions.php create mode 100644 0.2.1-FINAL/inc/libs/wernis_functions.php create mode 100644 0.2.1-FINAL/inc/libs/yoomedia_functions.php create mode 100644 0.2.1-FINAL/inc/load_cache.php create mode 100644 0.2.1-FINAL/inc/load_extensions.php create mode 100644 0.2.1-FINAL/inc/loader/.htaccess create mode 100644 0.2.1-FINAL/inc/loader/load_cache-admin.php create mode 100644 0.2.1-FINAL/inc/loader/load_cache-config.php create mode 100644 0.2.1-FINAL/inc/loader/load_cache-modreg.php create mode 100644 0.2.1-FINAL/inc/loader/load_cache-refdepths.php create mode 100644 0.2.1-FINAL/inc/loader/load_cache-refsystem.php create mode 100644 0.2.1-FINAL/inc/loader/load_cache-them.php create mode 100644 0.2.1-FINAL/inc/mails/.htaccess create mode 100644 0.2.1-FINAL/inc/mails/_mails.php create mode 100644 0.2.1-FINAL/inc/mails/beg_mails.php create mode 100644 0.2.1-FINAL/inc/mails/birthday_mails.php create mode 100644 0.2.1-FINAL/inc/mails/bonus_mails.php create mode 100644 0.2.1-FINAL/inc/modules/.htaccess create mode 100644 0.2.1-FINAL/inc/modules/admin.php create mode 100644 0.2.1-FINAL/inc/modules/admin/.htaccess create mode 100644 0.2.1-FINAL/inc/modules/admin/action- create mode 100644 0.2.1-FINAL/inc/modules/admin/action-admins.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-bank.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-country.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-doubler.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-email.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-holiday.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-login.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-logout.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-menu.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-misc.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-mods.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-newsletter.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-payouts.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-primera.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-rallye.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-repair.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-setup.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-stats.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-surfbar.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-task.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-theme.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-transfer.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-user.php create mode 100644 0.2.1-FINAL/inc/modules/admin/action-wernis.php create mode 100644 0.2.1-FINAL/inc/modules/admin/admin-inc.php create mode 100644 0.2.1-FINAL/inc/modules/admin/overview-inc.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what- create mode 100644 0.2.1-FINAL/inc/modules/admin/what-add_bank_package.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-add_guestnl_cat.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-add_points.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-add_rallye.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-add_sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-add_surfbar_url.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-admin_add.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-adminedit.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-admins_add.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-admins_contct.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-admins_edit.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-admins_mails.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-bonus.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-cache_stats.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-chk_regs.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_active.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_admin.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_admins.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_autopurge.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_beg.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_birthday.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_bonus.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_cache.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_cats.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_doubler.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_email.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_extensions.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_holiday.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_home.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_mediadata.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_mods.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_newsletter.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_nickname.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_order.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_other.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_payouts.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_points.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_primera.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_proxy.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_rallye_prices.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_refback.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_refid.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_register.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_register2.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_removeip.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_rewrite.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_secure.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_session.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_stats.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_surfbar.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_title.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_top10.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_transfer.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_user.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_wernis.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-config_yoomedia.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-del_email.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-del_holiday.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-del_sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-del_task.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-del_transfer.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-del_user.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-edit_emails.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-edit_sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-edit_user.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-email_archiv.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-email_details.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-email_stats.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-extensions.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-guest_add.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-guestedit.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-holiday_list.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-holiday_remove.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_autopurge.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_bank_package.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_beg.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_bonus.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_cats.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_country.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_doubler.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_holiday.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_links.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_newsletter.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_notifications.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_payouts.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_primera.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_rallyes.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_refs.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_sponsor_pay.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_sponsor_pays.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_surfbar_actions.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_surfbar_urls.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_task.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_transfer.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_unconfirmed.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_user.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_wernis.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-list_yoomedia_tm.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-lock_sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-lock_user.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-logs.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-maintenance.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-mem_add.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-memedit.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-optimize.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-overview.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-payments.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-refbanner.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-repair_amenu.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-repair_cats.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-repair_gmenu.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-repair_mmenu.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-send_bonus.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-send_newsletter.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-stats_mods.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-sub_points.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-surfbar_stats.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-theme_check.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-theme_edit.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-theme_import.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-unlock_emails.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-unlock_sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-unlock_surfbar_urls.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-updates.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-usage.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-user_contct.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-user_online.php create mode 100644 0.2.1-FINAL/inc/modules/admin/what-usr_online.php create mode 100644 0.2.1-FINAL/inc/modules/chk_login.php create mode 100644 0.2.1-FINAL/inc/modules/frametester.php create mode 100644 0.2.1-FINAL/inc/modules/guest/.htaccess create mode 100644 0.2.1-FINAL/inc/modules/guest/action- create mode 100644 0.2.1-FINAL/inc/modules/guest/action-admin.php create mode 100644 0.2.1-FINAL/inc/modules/guest/action-main.php create mode 100644 0.2.1-FINAL/inc/modules/guest/action-members.php create mode 100644 0.2.1-FINAL/inc/modules/guest/action-online.php create mode 100644 0.2.1-FINAL/inc/modules/guest/action-sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/guest/action-themes.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what- create mode 100644 0.2.1-FINAL/inc/modules/guest/what-active.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-admin.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-agb.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-beg.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-confirm.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-doubler.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-impressum.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-infos.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-login.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-mediadata.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-rallyes.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-register.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-sponsor_agb.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-sponsor_infos.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-sponsor_login.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-sponsor_reg.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-stats.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-top10.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-welcome.php create mode 100644 0.2.1-FINAL/inc/modules/guest/what-wernis_portal.php create mode 100644 0.2.1-FINAL/inc/modules/index.php create mode 100644 0.2.1-FINAL/inc/modules/loader.php create mode 100644 0.2.1-FINAL/inc/modules/login.php create mode 100644 0.2.1-FINAL/inc/modules/member/.htaccess create mode 100644 0.2.1-FINAL/inc/modules/member/action- create mode 100644 0.2.1-FINAL/inc/modules/member/action-account.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-bank.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-extras.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-logout.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-main.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-order.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-rals.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-stats.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-surfbar.php create mode 100644 0.2.1-FINAL/inc/modules/member/action-themes.php create mode 100644 0.2.1-FINAL/inc/modules/member/what- create mode 100644 0.2.1-FINAL/inc/modules/member/what-bank_create.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-bank_deposit.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-bank_infos.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-bank_output.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-bank_withdraw.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-beg.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-beg2.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-bonus.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-categories.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-doubler.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-guest.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-holiday.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-html_mail.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-logout.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-mydata.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-newsletter.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-nickname.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-order.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-payout.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-points.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-primera.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-rallyes.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-refback.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-reflinks.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-reflist.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-stats.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-support.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-surfbar_book.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-surfbar_list.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-surfbar_start.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-surfbar_stats.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-themes.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-transfer.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-unconfirmed.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-welcome.php create mode 100644 0.2.1-FINAL/inc/modules/member/what-wernis.php create mode 100644 0.2.1-FINAL/inc/modules/order.php create mode 100644 0.2.1-FINAL/inc/modules/sponsor.php create mode 100644 0.2.1-FINAL/inc/modules/sponsor/.htaccess create mode 100644 0.2.1-FINAL/inc/modules/sponsor/.php create mode 100644 0.2.1-FINAL/inc/modules/sponsor/account.php create mode 100644 0.2.1-FINAL/inc/modules/sponsor/settings.php create mode 100644 0.2.1-FINAL/inc/modules/sponsor/welcome.php create mode 100644 0.2.1-FINAL/inc/modules/welcome.php create mode 100644 0.2.1-FINAL/inc/monthly/.htaccess create mode 100644 0.2.1-FINAL/inc/monthly/monthly_ create mode 100644 0.2.1-FINAL/inc/monthly/monthly_beg.php create mode 100644 0.2.1-FINAL/inc/monthly/monthly_bonus.php create mode 100644 0.2.1-FINAL/inc/monthly/monthly_newsletter.php create mode 100644 0.2.1-FINAL/inc/monthly/monthly_surfbar.php create mode 100644 0.2.1-FINAL/inc/mysql-connect.php create mode 100644 0.2.1-FINAL/inc/mysql-manager.php create mode 100644 0.2.1-FINAL/inc/patch-system.php create mode 100644 0.2.1-FINAL/inc/phpmailer/ChangeLog.txt create mode 100644 0.2.1-FINAL/inc/phpmailer/LICENSE create mode 100644 0.2.1-FINAL/inc/phpmailer/README create mode 100644 0.2.1-FINAL/inc/phpmailer/class.phpmailer.php create mode 100644 0.2.1-FINAL/inc/phpmailer/class.pop3.php create mode 100644 0.2.1-FINAL/inc/phpmailer/class.smtp.php create mode 100644 0.2.1-FINAL/inc/phpmailer/codeworxtech.html create mode 100644 0.2.1-FINAL/inc/phpmailer/docs/extending.html create mode 100644 0.2.1-FINAL/inc/phpmailer/docs/faq.html create mode 100644 0.2.1-FINAL/inc/phpmailer/docs/phpmailer_sm.gif create mode 100644 0.2.1-FINAL/inc/phpmailer/docs/pop3_article.txt create mode 100644 0.2.1-FINAL/inc/phpmailer/docs/use_gmail.txt create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/contents.html create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/images/bkgrnd.gif create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/images/phpmailer.gif create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/images/phpmailer.png create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/images/phpmailer_mini.gif create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/index.html create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/pop3_before_smtp_test.php create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/test1.php create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/test_gmail.php create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/test_mail.php create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/test_sendmail.php create mode 100644 0.2.1-FINAL/inc/phpmailer/examples/test_smtp.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-br.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-ca.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-cz.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-de.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-dk.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-en.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-es.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-et.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-fi.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-fo.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-fr.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-hu.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-it.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-ja.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-nl.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-no.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-pl.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-ro.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-ru.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-se.php create mode 100644 0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-tr.php create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/PHPMailer/PHPMailer.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/PHPMailer/SMTP.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/PHPMailer/_class_phpmailer_php.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/PHPMailer/_class_smtp_php.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/blank.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/classtrees_PHPMailer.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/elementindex.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/elementindex_PHPMailer.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/errors.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/index.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/li_PHPMailer.html create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/media/banner.css create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/media/stylesheet.css create mode 100644 0.2.1-FINAL/inc/phpmailer/phpdoc/packages.html create mode 100644 0.2.1-FINAL/inc/phpmailer/test/phpmailer_test.php create mode 100644 0.2.1-FINAL/inc/phpmailer/test/phpunit.php create mode 100644 0.2.1-FINAL/inc/phpmailer/test/test.png create mode 100644 0.2.1-FINAL/inc/pool-update.php create mode 100644 0.2.1-FINAL/inc/pool/.htaccess create mode 100644 0.2.1-FINAL/inc/pool/pool-bonus.php create mode 100644 0.2.1-FINAL/inc/pool/pool-user.php create mode 100644 0.2.1-FINAL/inc/profile-updte.php create mode 100644 0.2.1-FINAL/inc/rdf.class.php create mode 100644 0.2.1-FINAL/inc/reset/.htaccess create mode 100644 0.2.1-FINAL/inc/reset/reset_ create mode 100644 0.2.1-FINAL/inc/reset/reset_beg.php create mode 100644 0.2.1-FINAL/inc/reset/reset_bonus.php create mode 100644 0.2.1-FINAL/inc/reset/reset_daily.php create mode 100644 0.2.1-FINAL/inc/reset/reset_engine.php create mode 100644 0.2.1-FINAL/inc/reset/reset_holiday.php create mode 100644 0.2.1-FINAL/inc/reset/reset_surfbar.php create mode 100644 0.2.1-FINAL/inc/reset/reset_yoomedia.php create mode 100644 0.2.1-FINAL/inc/security.php create mode 100644 0.2.1-FINAL/inc/session.php create mode 100644 0.2.1-FINAL/inc/sql_error.php create mode 100644 0.2.1-FINAL/inc/stats_bonus.php create mode 100644 0.2.1-FINAL/inc/stylesheet.php create mode 100644 0.2.1-FINAL/inc/weekly/.htaccess create mode 100644 0.2.1-FINAL/inc/weekly/weekly_ create mode 100644 0.2.1-FINAL/inc/weekly/weekly_surfbar.php create mode 100644 0.2.1-FINAL/index.php create mode 100644 0.2.1-FINAL/install.php create mode 100644 0.2.1-FINAL/install/menu-de.sql create mode 100644 0.2.1-FINAL/install/menu-en.sql create mode 100644 0.2.1-FINAL/install/tables.sql create mode 100644 0.2.1-FINAL/js.php create mode 100644 0.2.1-FINAL/lead-confirm.php create mode 100644 0.2.1-FINAL/login.php create mode 100644 0.2.1-FINAL/mailid.php create mode 100644 0.2.1-FINAL/mailid_top.php create mode 100644 0.2.1-FINAL/modules.php create mode 100644 0.2.1-FINAL/ref.php create mode 100644 0.2.1-FINAL/robots.txt create mode 100644 0.2.1-FINAL/show_bonus.php create mode 100644 0.2.1-FINAL/sponsor_confirm.php create mode 100644 0.2.1-FINAL/sponsor_ref.php create mode 100644 0.2.1-FINAL/surfbar.php create mode 100644 0.2.1-FINAL/templates/.htaccess create mode 100644 0.2.1-FINAL/templates/de/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/add-points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin-del_links.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_del_mails.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_delete.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_inactive.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_tsks.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_turbo.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_unconfirmed.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_del_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_edit_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_ext_deactivated.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_holiday_deactivated.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_holiday_request.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_holiday_unlock.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_lock_active_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_lock_locked_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_mydata_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_newsletter_request.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_newsletter_reset.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_payout_request.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_payout_request_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_rallye_expired.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_rallye_expired_no.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_rallye_no_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_rallye_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_rallye_purged.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_refback.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_reset_password.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_change_data.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_change_email.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_reg.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_settings.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_support-ordr.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_support-reflink.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_support-unconfirmed.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_active_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_active_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_active_stopped.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_confirmed.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_depleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_locked_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_locked_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_migrate.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_migrated_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_migrated_migrated.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_migrated_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_pending_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_reg.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_rejected.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_stopped_continued.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_stopped_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_stopped_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_unlock.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_transfer_ap.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_transfer_points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_undelete_active_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admin/admin_wernis_request.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admins/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/admins/admins_mail_contct_admin.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admins/admins_msg_contct_admin.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admins_mail_contct_admin.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/admins_msg_contct_admin.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/back-admin.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/back-member.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/beg/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/beg/beg_di_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/beg/beg_en_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/beg/beg_en_notify_body.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/bonus-mail.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/bonus/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/bonus/bonus_di_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/bonus/bonus_en_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/bonus/bonus_en_notify_body.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/confirm-member.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/confirm-referral.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/del-user.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/del_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/done-admin.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/done-member.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/guest/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/guest/guest_request_confirm.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/header.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/lock-user.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/lock_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_autopurge_delete.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_autopurge_inactive.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_autopurge_points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_autopurge_unconfirmed.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_beg.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_birthday.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_birthday_confirm.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_bonus.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_contct.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_del_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_doubler.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_edit_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_holiday_activated.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_holiday_removed.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_holiday_request.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_holiday_unlock.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_lock_active_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_lock_locked_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_mydata_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_newsletter_done.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_newsletter_request.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_newsletter_reset.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_payout_accepted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_payout_rejected.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_payout_request.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_payout_request_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_rallye_expired.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_rallye_expired_bronce.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_rallye_expired_gold.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_rallye_expired_silver.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_rallye_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_refback.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_stats_bonus.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_support-ordr.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_support-reflink.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_support-unconfirmed.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_low_points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_active_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_active_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_active_stopped.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_confirmed.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_depleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_locked_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_locked_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_migrate.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_migrated_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_migrated_migrated.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_migrated_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_pending_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_reg.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_rejected.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_stopped_continued.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_stopped_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_stopped_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_unlock.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_transfer_recipient.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_transfer_sender.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_undelete_active_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_wernis_accepted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_wernis_rejected.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/member/member_wernis_request.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/new-pass.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/newsletter.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/newsletter_html.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/normal-mail.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/order-accept.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/order-admin.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/order-deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/order-member.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/order-reject.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/profile-updte.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/register-admin.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/register-member.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/.htaccess create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_activate.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_add_points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_change_data.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_change_email.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_confirm.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_email.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_lost.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_ref_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_settings.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_sub_points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_unlock.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor/sponsor_unlocked.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor_add_points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor_confirm.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor_pending.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor_sub_points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sponsor_unlocked.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/sub-points.tpl create mode 100644 0.2.1-FINAL/templates/de/emails/unlock-user.tpl create mode 100644 0.2.1-FINAL/templates/de/html/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/admin/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_bank_package.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_cat.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_country.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_max.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_payment.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_points_all.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_rallye.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_rallye_prices.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_reflvl.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_sponsor_already.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_sponsor_paytype.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_add_surfbar_url.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admin_add.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_add.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_add_acl.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_contct_default.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_contct_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_contct_select.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_edit_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_list_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_amenu_delete.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_amenu_delete_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_amenu_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_amenu_edit_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_amenu_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_cache_stats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_active.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_admin.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_admins.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_admins_del.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_admins_del_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_admins_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_admins_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_admins_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_autopurge.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_beg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_birthday.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_bonus.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_cache.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_cats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_cats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_doubler.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_email.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_email_del.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_email_del_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_email_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_email_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_email_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_extensions.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_holiday.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_home.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_home_main.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_home_settings.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_home_settings_pro.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_mediadata.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_newsletter.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_nickname.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_order.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_order_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_other.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_payouts.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_del.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_del_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_point_settings.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_primera.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_proxy.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_del.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_del_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_prices.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_prices_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_refback.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_refid.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_reg_pro.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_register.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_register2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_removeip.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_rewrite.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_rewrite_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_secure.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_session.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_stats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_sub_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_surfbar.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_title.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_top10.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_transfer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_user.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_wernis.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_config_yoomedia.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_contct_user_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_admins.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_admins_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_bank_packages.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_bank_packages_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_cats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_cats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_email_bonus.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_email_normal.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_email_notify.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_payments.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_payments_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_surfbar_urls_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_transfer_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_del_user.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_admins.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_admins_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_bank_packages.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_bank_packages_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_cats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_cats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_email.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_email_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_email_select.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_payments.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_payments_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_rallyes.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_rallyes_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_sponsor_add_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_sponsor_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_sponsor_sub_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_surfbar_urls_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_edit_user.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_email_archiv.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_email_archiv_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_email_nav_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_ext_notes.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_ext_reg_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_ext_sql_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_ext_sql_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_404.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_delete.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_delete_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_installed.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_extensions_text.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_gmenu_delete.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_gmenu_delete_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_gmenu_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_gmenu_edit_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_gmenu_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_gmenu_status.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_guest_add.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_admins.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_admins_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_autopurge.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_autopurge_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_bank_package.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_bank_package_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_beg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_beg_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_beg_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_bonus.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_bonus_emails.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_bonus_emails_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_bonus_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_bonus_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_cats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_cats_404.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_cats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_country.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_country_del_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_country_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_country_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_country_no_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_country_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_doubler_already.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_doubler_overview.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_doubler_waiting.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_emails.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_emails_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_extensions.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_extensions_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_holiday.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_holiday_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_links.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_links_problem.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_links_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_notify_emails.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_notify_emails_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_payments.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_payouts.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_payouts_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_payouts_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_payouts_txt.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_primera_main.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_primera_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_noselect.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_prices.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_prices_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_usr.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_usr_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_rallyes.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_rallyes_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_rallyes_row2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_refs.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_refs2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_refs_level.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_refs_norefs.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_refs_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_details.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_404.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_del.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_del_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_surfbar_actions.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_surfbar_actions_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_surfbar_urls_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_task_ext_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_task_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_transfer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_transfer_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_unconfirmed.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_unconfirmed_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_unconfirmed_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_user.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_user_alpha.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_user_pagenav.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_user_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_user_sort.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_user_sort_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_wernis_main.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_wernis_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_yoomedia_tm.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_yoomedia_tm_already.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_list_yoomedia_tm_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_lock_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_lock_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_lock_surfbar_urls_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_lock_user.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_login_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_login_msg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_logout.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_logout_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_logout_sql_patches_install.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_logout_sql_patches_remove.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_main_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_main_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_maintenance_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_member_add.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_member_selection_box.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_menu_404_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_menu_failed.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_menu_hints.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_menu_hints_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_menu_overview_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_menu_status_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_menu_unknown_okay.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mini_online.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mmenu_delete.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mmenu_delete_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mmenu_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mmenu_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mmenu_overview.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mmenu_status.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mods_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mods_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mods_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mods_list_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mods_stats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mods_stats2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mods_stats2_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_mods_stats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_new_ext.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_newsletter.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_newsletter_nohtml.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_newsletter_tsk.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_online_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_online_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_optimize.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_optimize_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_footer_task.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_header_task.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_list_ext_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_list_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_task.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_task_extras.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_overview_task_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_patches.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_patches_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_payments_list_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_payout_accept_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_payout_add_new.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_payout_failed_transfer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_payout_overview_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_payout_reject_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_points_del.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_points_del_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_points_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_points_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_points_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_refbanner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_refbanner_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_refbanner_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_refbanner_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_reg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_reg_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_reg_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_reset_pass_done.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_reset_password.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_reset_password_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_send_bonus_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_send_bonus_select.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_send_reset_link.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_send_yoomedia.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_settings_saved.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_sponsor_paytypes.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_sub_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_sub_points_all.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_surfbar_stats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_surfbar_stats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_surfbar_url_stats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_surfbar_url_stats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_task_holiday.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_theme_404.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_theme_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_theme_edit_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_theme_import.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_theme_installed.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_theme_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_undelete_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_undelete_surfbar_urls_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_unlock_emails.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_unlock_emails_redir.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_unlock_emails_redir_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_unlock_emails_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_unlock_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_unlock_sponsor_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_unlock_surfbar_urls.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_unlock_surfbar_urls_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_update_download.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_user_details.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_validate_reset_hash_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_welcome.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_welcome_admins.tpl create mode 100644 0.2.1-FINAL/templates/de/html/admin/admin_yoomedia_error.tpl create mode 100644 0.2.1-FINAL/templates/de/html/agb.tpl create mode 100644 0.2.1-FINAL/templates/de/html/beg/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/beg/beg_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/beg/beg_done.tpl create mode 100644 0.2.1-FINAL/templates/de/html/beg/beg_failed.tpl create mode 100644 0.2.1-FINAL/templates/de/html/beg/beg_link.tpl create mode 100644 0.2.1-FINAL/templates/de/html/beg/beg_login.tpl create mode 100644 0.2.1-FINAL/templates/de/html/beg/beg_pay_mode_both.tpl create mode 100644 0.2.1-FINAL/templates/de/html/birthday/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/birthday/birthday_confirm.tpl create mode 100644 0.2.1-FINAL/templates/de/html/birthday/birthday_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/birthday/birthday_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/birthday/birthday_msg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/copyright.tpl create mode 100644 0.2.1-FINAL/templates/de/html/copyright_backlink.tpl create mode 100644 0.2.1-FINAL/templates/de/html/doubler/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/doubler/doubler_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/doubler/doubler_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/doubler/doubler_index.tpl create mode 100644 0.2.1-FINAL/templates/de/html/doubler/doubler_reflink.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_active.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_admins.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_admintheme1.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_admintheme_default.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_autopurge.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_bank.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_beg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_birthday.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_bonus.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_booking.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_cache.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_country.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_debug.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_demo.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_doubler.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_events.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_holiday.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_html_mail.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_mailid.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_maintenance.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_mediadata.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_mods.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_mydata.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_network.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_newsletter.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_nickname.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_online.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_optimize.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_order.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_other.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_payout.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_primera.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_profile.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_rallye.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_refback.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_register.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_removeip.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_repair.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_rewrite.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_safe.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_sponsor.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_sql_patches.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_support.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_surfbar.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_task.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_theme.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_top10.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_transfer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_user.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_wernis.tpl create mode 100644 0.2.1-FINAL/templates/de/html/ext/ext_yoomedia.tpl create mode 100644 0.2.1-FINAL/templates/de/html/fatal_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/fatal_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_active_none_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_active_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_active_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_advert.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_advert2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_beg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_cat_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_cat_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_confirm_link.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_confirm_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_content_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_doubler.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_doubler_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_doubler_list_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_frametester.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_goto_top.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_login.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_menu_bottom.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_menu_content.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_menu_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_menu_td.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_menu_title.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_menu_whats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_nickname_login.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_no_rallyes.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_rallye_expired_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_rallye_expired_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_rallye_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_rallye_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_rallye_show.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_receive_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_register.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_register_refid.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_register_refid_hide.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_sponsor_act_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_sponsor_activate.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_sponsor_infos.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_sponsor_login.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_sponsor_lost.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_sponsor_pay_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_sponsor_reg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_stats_cats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_stats_member.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_stats_month_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_top10.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_top10_empty4.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_top10_empty5.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_top10_row_earner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_top10_row_login.tpl create mode 100644 0.2.1-FINAL/templates/de/html/guest/guest_top10_row_refs.tpl create mode 100644 0.2.1-FINAL/templates/de/html/header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/impressum.tpl create mode 100644 0.2.1-FINAL/templates/de/html/index.tpl create mode 100644 0.2.1-FINAL/templates/de/html/index_forward.tpl create mode 100644 0.2.1-FINAL/templates/de/html/infos.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/install/install_fatal_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/install_fatal_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/install_finished.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/install_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/install_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/install_page1.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/install_page2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/install_page3.tpl create mode 100644 0.2.1-FINAL/templates/de/html/install/install_welcome.tpl create mode 100644 0.2.1-FINAL/templates/de/html/lead_code.tpl create mode 100644 0.2.1-FINAL/templates/de/html/loader.tpl create mode 100644 0.2.1-FINAL/templates/de/html/login_failed_js.tpl create mode 100644 0.2.1-FINAL/templates/de/html/login_failtures.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_confirm_buttom.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_enter_code.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_frames.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_points_done.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_points_done2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_points_failed.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_points_lcoked2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_points_locked.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_points_locked2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mailid/mailid_timer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/main-welcome.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mediadata.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mediadata_extra_hrow.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mediadata_extra_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/mediadata_extra_row2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/member/member_advert.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_beg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_beg_404.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_bonus.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_bonus_404.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_bonus_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_cat_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_cats_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_cats_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_content_right.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_doubler.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_doubler_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_doubler_list_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_goto_top.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_holiday_deactivate.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_holiday_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_html_mail_settings.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_list_beg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_list_beg_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_login_js.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_bonus_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_bonus_new.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_bonus_queue.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_bonus_send.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_normal_active.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_normal_admin.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_normal_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_normal_new.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_normal_send.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mail_normal_temp.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_menu_bottom.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_menu_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_menu_title.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_menu_whats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mydata_button.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mydata_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mydata_locked.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_mydata_overview.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_newsletter.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_newsletter_note.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_nickname_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order-back.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order-html_ext.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order-html_intro.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order-zip1.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order-zip2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order_back.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order_frametester.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order_page1.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order_page2.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_order_send.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_payout.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_payout_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_payout_form_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_payout_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_points.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_points_bonus_disabled.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_points_bonus_rows.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_points_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_points_upgrade.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_pool_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_pool_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_primera.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_primera_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_primera_mode_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_primera_mode_list_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_primera_mode_pay.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_receive_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_ref_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_ref_list_level.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_ref_list_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_refback_edit.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_refback_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_refback_list_level.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_refback_list_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_refback_list_row_deleted.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_reflinks_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_reflinks_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_stats_pool.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_stats_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_stats_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_support_contcted.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_support_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_book_dynamic.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_book_static.tp create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_book_static.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_delete_action_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_edit_action_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_link.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_list_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_start_dynamic.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_surfbar_start_static.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_themes.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_transfer_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_transfer_new.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_transfer_overview.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_transfer_settings.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_unconfirmed_404.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_unconfirmed_404_nopoints.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_unconfirmed_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_unconfirmed_row_nopoints.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_unconfirmed_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_unconfirmed_table_nopoints.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_welcome.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_welcome_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_welcome_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_wernis.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_wernis_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_wernis_mode_choose.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_wernis_mode_list.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_wernis_mode_list_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_wernis_mode_payout.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_wernis_mode_withdraw.tpl create mode 100644 0.2.1-FINAL/templates/de/html/member/member_wernis_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/message.tpl create mode 100644 0.2.1-FINAL/templates/de/html/metadata.tpl create mode 100644 0.2.1-FINAL/templates/de/html/online_now.tpl create mode 100644 0.2.1-FINAL/templates/de/html/page_body.tpl create mode 100644 0.2.1-FINAL/templates/de/html/page_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/page_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/profile-update.tpl create mode 100644 0.2.1-FINAL/templates/de/html/rallye/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/rallye/rallye_test.tpl create mode 100644 0.2.1-FINAL/templates/de/html/redirect_url.tpl create mode 100644 0.2.1-FINAL/templates/de/html/register_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/removeip_level.tpl create mode 100644 0.2.1-FINAL/templates/de/html/runtime_fatal_row.tpl create mode 100644 0.2.1-FINAL/templates/de/html/runtime_fatal_table.tpl create mode 100644 0.2.1-FINAL/templates/de/html/show_bonus.tpl create mode 100644 0.2.1-FINAL/templates/de/html/show_bonus_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/show_bonus_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/show_bonus_msg.tpl create mode 100644 0.2.1-FINAL/templates/de/html/show_bonus_yr.tpl create mode 100644 0.2.1-FINAL/templates/de/html/show_timings.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_account_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_action.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_fillup_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_footer.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_header.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_main.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_settings_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_welcome.tpl create mode 100644 0.2.1-FINAL/templates/de/html/sponsor/sponsor_what.tpl create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_start.tpl create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_stats.tpl create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_textlinks.tpl create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_top.tpl create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/surfbar_frameset.tpl create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/surfbar_start_banner.tpl create mode 100644 0.2.1-FINAL/templates/de/html/surfbar/surfbar_stopped.tpl create mode 100644 0.2.1-FINAL/templates/de/html/task/.htaccess create mode 100644 0.2.1-FINAL/templates/de/html/task/task_ext_deactivated.tpl create mode 100644 0.2.1-FINAL/templates/de/html/theme_one.tpl create mode 100644 0.2.1-FINAL/templates/de/html/theme_select_box.tpl create mode 100644 0.2.1-FINAL/templates/de/html/theme_select_form.tpl create mode 100644 0.2.1-FINAL/templates/de/html/welcome.tpl create mode 100644 0.2.1-FINAL/templates/en/html/admin/admin_welcome.tpl create mode 100644 0.2.1-FINAL/templates/en/html/impressum.tpl create mode 100644 0.2.1-FINAL/templates/en/html/mailid/.htaccess create mode 100644 0.2.1-FINAL/templates/en/html/register_header.tpl create mode 100644 0.2.1-FINAL/templates/en/html/welcome.tpl create mode 100644 0.2.1-FINAL/theme/business/css/active.css create mode 100644 0.2.1-FINAL/theme/business/css/beg.css create mode 100644 0.2.1-FINAL/theme/business/css/bonus.css create mode 100644 0.2.1-FINAL/theme/business/css/doubler.css create mode 100644 0.2.1-FINAL/theme/business/css/general.css create mode 100644 0.2.1-FINAL/theme/business/css/install.css create mode 100644 0.2.1-FINAL/theme/business/css/register.css create mode 100644 0.2.1-FINAL/theme/business/css/sponsor.css create mode 100644 0.2.1-FINAL/theme/business/css/surfbar.css create mode 100644 0.2.1-FINAL/theme/business/css/top10.css create mode 100644 0.2.1-FINAL/theme/business/css/transfer.css create mode 100644 0.2.1-FINAL/theme/business/images/code_bg.jpg create mode 100644 0.2.1-FINAL/theme/business/images/code_bg.png create mode 100644 0.2.1-FINAL/theme/business/theme.php create mode 100644 0.2.1-FINAL/theme/default/css/active.css create mode 100644 0.2.1-FINAL/theme/default/css/beg.css create mode 100644 0.2.1-FINAL/theme/default/css/bonus.css create mode 100644 0.2.1-FINAL/theme/default/css/doubler.css create mode 100644 0.2.1-FINAL/theme/default/css/general.css create mode 100644 0.2.1-FINAL/theme/default/css/install.css create mode 100644 0.2.1-FINAL/theme/default/css/register.css create mode 100644 0.2.1-FINAL/theme/default/css/sponsor.css create mode 100644 0.2.1-FINAL/theme/default/css/surfbar.css create mode 100644 0.2.1-FINAL/theme/default/css/top10.css create mode 100644 0.2.1-FINAL/theme/default/css/transfer.css create mode 100644 0.2.1-FINAL/theme/default/images/code_bg.jpg create mode 100644 0.2.1-FINAL/theme/default/images/code_bg.png create mode 100644 0.2.1-FINAL/theme/default/theme.php create mode 100644 0.2.1-FINAL/theme/desert/css/active.css create mode 100644 0.2.1-FINAL/theme/desert/css/beg.css create mode 100644 0.2.1-FINAL/theme/desert/css/bonus.css create mode 100644 0.2.1-FINAL/theme/desert/css/doubler.css create mode 100644 0.2.1-FINAL/theme/desert/css/general.css create mode 100644 0.2.1-FINAL/theme/desert/css/help.css create mode 100644 0.2.1-FINAL/theme/desert/css/install.css create mode 100644 0.2.1-FINAL/theme/desert/css/paidlinks.css create mode 100644 0.2.1-FINAL/theme/desert/css/register.css create mode 100644 0.2.1-FINAL/theme/desert/css/sponsor.css create mode 100644 0.2.1-FINAL/theme/desert/css/surfbar.css create mode 100644 0.2.1-FINAL/theme/desert/css/top10.css create mode 100644 0.2.1-FINAL/theme/desert/css/transfer.css create mode 100644 0.2.1-FINAL/theme/desert/images/code_bg.jpg create mode 100644 0.2.1-FINAL/theme/desert/images/code_bg.png create mode 100644 0.2.1-FINAL/theme/desert/images/help/bullet.png create mode 100644 0.2.1-FINAL/theme/desert/images/help/down.jpg create mode 100644 0.2.1-FINAL/theme/desert/images/help/left.jpg create mode 100644 0.2.1-FINAL/theme/desert/images/help/right.jpg create mode 100644 0.2.1-FINAL/theme/desert/images/help/up.jpg create mode 100644 0.2.1-FINAL/theme/desert/theme.php create mode 100644 0.2.1-FINAL/view.php diff --git a/.gitattributes b/.gitattributes index 6f8ed87c6c..6e88056c87 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,1574 @@ * text=auto !eol /.htaccess -text /.svnignore -text +0.2.1-FINAL/.htaccess -text +0.2.1-FINAL/.svnignore -text +0.2.1-FINAL/DOCS/INSTALL.txt -text +0.2.1-FINAL/DOCS/LICENSE.txt -text +0.2.1-FINAL/DOCS/README -text +0.2.1-FINAL/DOCS/de/AUTHORS.txt -text +0.2.1-FINAL/DOCS/de/CHANGES.txt -text +0.2.1-FINAL/DOCS/de/CSS-PATCHES.txt -text +0.2.1-FINAL/DOCS/de/CSS-PATCHES_05092004.txt -text +0.2.1-FINAL/DOCS/de/DESIGNING.txt -text +0.2.1-FINAL/DOCS/de/EXTENSIONS.txt -text +0.2.1-FINAL/DOCS/de/LICENSE.txt -text +0.2.1-FINAL/DOCS/de/MENUE_HOVER.txt -text +0.2.1-FINAL/DOCS/de/PATCHES.txt -text +0.2.1-FINAL/DOCS/de/PATCH_320.txt -text +0.2.1-FINAL/DOCS/de/README.txt -text +0.2.1-FINAL/DOCS/de/SECURITY.txt -text +0.2.1-FINAL/DOCS/de/TEMPLATES.txt -text +0.2.1-FINAL/DOCS/de/THANK_YOU.txt -text +0.2.1-FINAL/DOCS/de/TODO.txt -text +0.2.1-FINAL/DOCS/de/UPGRADING.txt -text +0.2.1-FINAL/DOCS/de/cache/README.txt -text +0.2.1-FINAL/DOCS/de/country/README.txt -text +0.2.1-FINAL/DOCS/de/country/countries-europe.sql -text +0.2.1-FINAL/DOCS/de/country/countries-full.sql -text +0.2.1-FINAL/DOCS/de/country/countries-sorted.sql -text +0.2.1-FINAL/DOCS/de/doubler/README.txt -text +0.2.1-FINAL/DOCS/de/engine/README.txt -text +0.2.1-FINAL/DOCS/de/promoter.txt -text +0.2.1-FINAL/DOCS/de/rallye/README.txt -text +0.2.1-FINAL/DOCS/de/rewrite/.htaccess -text +0.2.1-FINAL/DOCS/de/rewrite/README.txt -text +0.2.1-FINAL/DOCS/de/rewrite/README_htaccess.de -text +0.2.1-FINAL/DOCS/de/task/README.txt -text +0.2.1-FINAL/DOCS/de/themes/README.txt -text +0.2.1-FINAL/DOCS/en/AUTHORS.txt -text +0.2.1-FINAL/DOCS/en/CHANGES.txt -text +0.2.1-FINAL/DOCS/en/CSS-PATCHES.txt -text +0.2.1-FINAL/DOCS/en/CSS-PATCHES_05092004.txt -text +0.2.1-FINAL/DOCS/en/DESIGNING.txt -text +0.2.1-FINAL/DOCS/en/EXTENSIONS.txt -text +0.2.1-FINAL/DOCS/en/LICENSE.txt -text +0.2.1-FINAL/DOCS/en/MENUE_HOVER.txt -text +0.2.1-FINAL/DOCS/en/PATCHES.txt -text +0.2.1-FINAL/DOCS/en/PATCH_320.txt -text +0.2.1-FINAL/DOCS/en/README.txt -text +0.2.1-FINAL/DOCS/en/SECURITY.txt -text +0.2.1-FINAL/DOCS/en/TEMPLATES.txt -text +0.2.1-FINAL/DOCS/en/THANK_YOU.txt -text +0.2.1-FINAL/DOCS/en/TODO.txt -text +0.2.1-FINAL/DOCS/en/UPGRADING.txt -text +0.2.1-FINAL/DOCS/en/cache/README.txt -text +0.2.1-FINAL/DOCS/en/country/README.txt -text +0.2.1-FINAL/DOCS/en/country/countries-europe.sql -text +0.2.1-FINAL/DOCS/en/country/countries-full.sql -text +0.2.1-FINAL/DOCS/en/country/countries-sorted.sql -text +0.2.1-FINAL/DOCS/en/doubler/README.txt -text +0.2.1-FINAL/DOCS/en/engine/README.txt -text +0.2.1-FINAL/DOCS/en/promoter.txt -text +0.2.1-FINAL/DOCS/en/rallye/README.txt -text +0.2.1-FINAL/DOCS/en/rewrite/.htaccess -text +0.2.1-FINAL/DOCS/en/rewrite/README.txt -text +0.2.1-FINAL/DOCS/en/rewrite/README_htaccess.de -text +0.2.1-FINAL/DOCS/en/task/README.txt -text +0.2.1-FINAL/DOCS/en/themes/README.txt -text +0.2.1-FINAL/DOCS/tpl-validator.php -text +0.2.1-FINAL/DOCS/validator.sh -text +0.2.1-FINAL/admin.php -text +0.2.1-FINAL/agb.php -text +0.2.1-FINAL/beg.php -text +0.2.1-FINAL/birthday_confirm.php -text +0.2.1-FINAL/click.php -text +0.2.1-FINAL/confirm.php -text +0.2.1-FINAL/css.php -text +0.2.1-FINAL/debug.php -text +0.2.1-FINAL/doubler.php -text +0.2.1-FINAL/img.php -text +0.2.1-FINAL/inc/.htaccess -text +0.2.1-FINAL/inc/.secret/.htaccess -text +0.2.1-FINAL/inc/autopurge.php -text +0.2.1-FINAL/inc/autopurge/.htaccess -text +0.2.1-FINAL/inc/autopurge/purge- -text +0.2.1-FINAL/inc/autopurge/purge-general.php -text +0.2.1-FINAL/inc/autopurge/purge-inact.php -text +0.2.1-FINAL/inc/autopurge/purge-mails.php -text +0.2.1-FINAL/inc/autopurge/purge-tsks.php -text +0.2.1-FINAL/inc/autopurge/purge-unconfirmed.php -text +0.2.1-FINAL/inc/cache/.htaccess -text +0.2.1-FINAL/inc/check-reset.php -text +0.2.1-FINAL/inc/config.php -text +0.2.1-FINAL/inc/databases.php -text +0.2.1-FINAL/inc/db/.htaccess -text +0.2.1-FINAL/inc/db/lib-mysql3.php -text +0.2.1-FINAL/inc/db/lib.php -text +0.2.1-FINAL/inc/debug/.htaccess -text +0.2.1-FINAL/inc/debug/client/.htaccess -text +0.2.1-FINAL/inc/debug/relay/.htaccess -text +0.2.1-FINAL/inc/debug/request_ -text +0.2.1-FINAL/inc/debug/server/.htaccess -text +0.2.1-FINAL/inc/doubler_send.php -text +0.2.1-FINAL/inc/extensions.php -text +0.2.1-FINAL/inc/extensions/.htaccess -text +0.2.1-FINAL/inc/extensions/ext- -text +0.2.1-FINAL/inc/extensions/ext-active.php -text +0.2.1-FINAL/inc/extensions/ext-admins.php -text +0.2.1-FINAL/inc/extensions/ext-admintheme1.php -text +0.2.1-FINAL/inc/extensions/ext-admintheme_default.php -text +0.2.1-FINAL/inc/extensions/ext-autopurge.php -text +0.2.1-FINAL/inc/extensions/ext-bank.php -text +0.2.1-FINAL/inc/extensions/ext-beg.php -text +0.2.1-FINAL/inc/extensions/ext-birthday.php -text +0.2.1-FINAL/inc/extensions/ext-bonus.php -text +0.2.1-FINAL/inc/extensions/ext-booking.php -text +0.2.1-FINAL/inc/extensions/ext-cache.php -text +0.2.1-FINAL/inc/extensions/ext-country.php -text +0.2.1-FINAL/inc/extensions/ext-debug.php -text +0.2.1-FINAL/inc/extensions/ext-demo.php -text +0.2.1-FINAL/inc/extensions/ext-doubler.php -text +0.2.1-FINAL/inc/extensions/ext-events.php -text +0.2.1-FINAL/inc/extensions/ext-holiday.php -text +0.2.1-FINAL/inc/extensions/ext-html_mail.php -text +0.2.1-FINAL/inc/extensions/ext-iso3166.php -text +0.2.1-FINAL/inc/extensions/ext-mailid.php -text +0.2.1-FINAL/inc/extensions/ext-maintenance.php -text +0.2.1-FINAL/inc/extensions/ext-mediadata.php -text +0.2.1-FINAL/inc/extensions/ext-mods.php -text +0.2.1-FINAL/inc/extensions/ext-mydata.php -text +0.2.1-FINAL/inc/extensions/ext-network.php -text +0.2.1-FINAL/inc/extensions/ext-newsletter.php -text +0.2.1-FINAL/inc/extensions/ext-nickname.php -text +0.2.1-FINAL/inc/extensions/ext-online.php -text +0.2.1-FINAL/inc/extensions/ext-optimize.php -text +0.2.1-FINAL/inc/extensions/ext-order.php -text +0.2.1-FINAL/inc/extensions/ext-other.php -text +0.2.1-FINAL/inc/extensions/ext-payout.php -text +0.2.1-FINAL/inc/extensions/ext-primera.php -text +0.2.1-FINAL/inc/extensions/ext-profile.php -text +0.2.1-FINAL/inc/extensions/ext-rallye.php -text +0.2.1-FINAL/inc/extensions/ext-refback.php -text +0.2.1-FINAL/inc/extensions/ext-register.php -text +0.2.1-FINAL/inc/extensions/ext-removeip.php -text +0.2.1-FINAL/inc/extensions/ext-repair.php -text +0.2.1-FINAL/inc/extensions/ext-rewrite.php -text +0.2.1-FINAL/inc/extensions/ext-safe.php -text +0.2.1-FINAL/inc/extensions/ext-sponsor.php -text +0.2.1-FINAL/inc/extensions/ext-sql_patches.php -text +0.2.1-FINAL/inc/extensions/ext-support.php -text +0.2.1-FINAL/inc/extensions/ext-surfbar.php -text +0.2.1-FINAL/inc/extensions/ext-task.php -text +0.2.1-FINAL/inc/extensions/ext-theme.php -text +0.2.1-FINAL/inc/extensions/ext-top10.php -text +0.2.1-FINAL/inc/extensions/ext-transfer.php -text +0.2.1-FINAL/inc/extensions/ext-user.php -text +0.2.1-FINAL/inc/extensions/ext-wernis.php -text +0.2.1-FINAL/inc/extensions/ext-yoomedia.php -text +0.2.1-FINAL/inc/fatal_errors.php -text +0.2.1-FINAL/inc/filters.php -text +0.2.1-FINAL/inc/footer.php -text +0.2.1-FINAL/inc/functions.php -text +0.2.1-FINAL/inc/gen_mediadata.php -text +0.2.1-FINAL/inc/gen_refback.php -text +0.2.1-FINAL/inc/gen_sql_patches.php -text +0.2.1-FINAL/inc/header.php -text +0.2.1-FINAL/inc/img/.htaccess -text +0.2.1-FINAL/inc/install-inc.php -text +0.2.1-FINAL/inc/js/.htaccess -text +0.2.1-FINAL/inc/language.php -text +0.2.1-FINAL/inc/language/.htaccess -text +0.2.1-FINAL/inc/language/_de.php -text +0.2.1-FINAL/inc/language/active_de.php -text +0.2.1-FINAL/inc/language/admins_de.php -text +0.2.1-FINAL/inc/language/autopurge_de.php -text +0.2.1-FINAL/inc/language/bank_de.php -text +0.2.1-FINAL/inc/language/beg_de.php -text +0.2.1-FINAL/inc/language/birthday_de.php -text +0.2.1-FINAL/inc/language/bonus_de.php -text +0.2.1-FINAL/inc/language/booking_de.php -text +0.2.1-FINAL/inc/language/cache_de.php -text +0.2.1-FINAL/inc/language/country_de.php -text +0.2.1-FINAL/inc/language/de.php -text +0.2.1-FINAL/inc/language/debug_de.php -text +0.2.1-FINAL/inc/language/doubler_de.php -text +0.2.1-FINAL/inc/language/en.ph -text +0.2.1-FINAL/inc/language/en.php -text +0.2.1-FINAL/inc/language/holiday_de.php -text +0.2.1-FINAL/inc/language/html_mail_de.php -text +0.2.1-FINAL/inc/language/install_de.php -text +0.2.1-FINAL/inc/language/mailid_de.php -text +0.2.1-FINAL/inc/language/maintenance_de.php -text +0.2.1-FINAL/inc/language/mediadata_de.php -text +0.2.1-FINAL/inc/language/mods_de.php -text +0.2.1-FINAL/inc/language/newsletter_de.php -text +0.2.1-FINAL/inc/language/nickname_de.php -text +0.2.1-FINAL/inc/language/online_de.php -text +0.2.1-FINAL/inc/language/optimize_de.php -text +0.2.1-FINAL/inc/language/order_de.php -text +0.2.1-FINAL/inc/language/other_de.php -text +0.2.1-FINAL/inc/language/payout_de.php -text +0.2.1-FINAL/inc/language/primera_de.php -text +0.2.1-FINAL/inc/language/rallye_de.php -text +0.2.1-FINAL/inc/language/refback_de.php -text +0.2.1-FINAL/inc/language/register_de.php -text +0.2.1-FINAL/inc/language/removeip_de.php -text +0.2.1-FINAL/inc/language/repair_de.php -text +0.2.1-FINAL/inc/language/rewrite_de.php -text +0.2.1-FINAL/inc/language/sponsor_de.php -text +0.2.1-FINAL/inc/language/support_de.php -text +0.2.1-FINAL/inc/language/surfbar_de.php -text +0.2.1-FINAL/inc/language/task_de.php -text +0.2.1-FINAL/inc/language/theme_de.php -text +0.2.1-FINAL/inc/language/top10_de.php -text +0.2.1-FINAL/inc/language/transfer_de.php -text +0.2.1-FINAL/inc/language/user_de.php -text +0.2.1-FINAL/inc/language/wernis_de.php -text +0.2.1-FINAL/inc/language/yoomedia_de.php -text +0.2.1-FINAL/inc/libs/.htaccess -text +0.2.1-FINAL/inc/libs/active_functions.php -text +0.2.1-FINAL/inc/libs/admins_functions.php -text +0.2.1-FINAL/inc/libs/autopurge_functions.php -text +0.2.1-FINAL/inc/libs/beg_functions.php -text +0.2.1-FINAL/inc/libs/bonus_functions.php -text +0.2.1-FINAL/inc/libs/booking_functions.php -text +0.2.1-FINAL/inc/libs/cache_functions.php -text +0.2.1-FINAL/inc/libs/country_functions.php -text +0.2.1-FINAL/inc/libs/debug_functions.php -text +0.2.1-FINAL/inc/libs/doubler_functions.php -text +0.2.1-FINAL/inc/libs/events_functions.php -text +0.2.1-FINAL/inc/libs/holiday_functions.php -text +0.2.1-FINAL/inc/libs/html_mail_functions.php -text +0.2.1-FINAL/inc/libs/mediadata_functions.php -text +0.2.1-FINAL/inc/libs/newsletter_functions.php -text +0.2.1-FINAL/inc/libs/nickname_functions.php -text +0.2.1-FINAL/inc/libs/online_functions.php -text +0.2.1-FINAL/inc/libs/optimize_functions.php -text +0.2.1-FINAL/inc/libs/order_functions.php -text +0.2.1-FINAL/inc/libs/payout_functions.php -text +0.2.1-FINAL/inc/libs/primera_functions.php -text +0.2.1-FINAL/inc/libs/rallye_functions.php -text +0.2.1-FINAL/inc/libs/refback_functions.php -text +0.2.1-FINAL/inc/libs/register_functions.php -text +0.2.1-FINAL/inc/libs/removeip_functions.php -text +0.2.1-FINAL/inc/libs/rewrite_functions.php -text +0.2.1-FINAL/inc/libs/security_functions.php -text +0.2.1-FINAL/inc/libs/sponsor_functions.php -text +0.2.1-FINAL/inc/libs/surfbar_functions.php -text +0.2.1-FINAL/inc/libs/task_functions.php -text +0.2.1-FINAL/inc/libs/theme_functions.php -text +0.2.1-FINAL/inc/libs/transfer_functions.php -text +0.2.1-FINAL/inc/libs/user_functions.php -text +0.2.1-FINAL/inc/libs/wernis_functions.php -text +0.2.1-FINAL/inc/libs/yoomedia_functions.php -text +0.2.1-FINAL/inc/load_cache.php -text +0.2.1-FINAL/inc/load_extensions.php -text +0.2.1-FINAL/inc/loader/.htaccess -text +0.2.1-FINAL/inc/loader/load_cache-admin.php -text +0.2.1-FINAL/inc/loader/load_cache-config.php -text +0.2.1-FINAL/inc/loader/load_cache-modreg.php -text +0.2.1-FINAL/inc/loader/load_cache-refdepths.php -text +0.2.1-FINAL/inc/loader/load_cache-refsystem.php -text +0.2.1-FINAL/inc/loader/load_cache-them.php -text +0.2.1-FINAL/inc/mails/.htaccess -text +0.2.1-FINAL/inc/mails/_mails.php -text +0.2.1-FINAL/inc/mails/beg_mails.php -text +0.2.1-FINAL/inc/mails/birthday_mails.php -text +0.2.1-FINAL/inc/mails/bonus_mails.php -text +0.2.1-FINAL/inc/modules/.htaccess -text +0.2.1-FINAL/inc/modules/admin.php -text +0.2.1-FINAL/inc/modules/admin/.htaccess -text +0.2.1-FINAL/inc/modules/admin/action- -text +0.2.1-FINAL/inc/modules/admin/action-admins.php -text +0.2.1-FINAL/inc/modules/admin/action-bank.php -text +0.2.1-FINAL/inc/modules/admin/action-country.php -text +0.2.1-FINAL/inc/modules/admin/action-doubler.php -text +0.2.1-FINAL/inc/modules/admin/action-email.php -text +0.2.1-FINAL/inc/modules/admin/action-holiday.php -text +0.2.1-FINAL/inc/modules/admin/action-login.php -text +0.2.1-FINAL/inc/modules/admin/action-logout.php -text +0.2.1-FINAL/inc/modules/admin/action-menu.php -text +0.2.1-FINAL/inc/modules/admin/action-misc.php -text +0.2.1-FINAL/inc/modules/admin/action-mods.php -text +0.2.1-FINAL/inc/modules/admin/action-newsletter.php -text +0.2.1-FINAL/inc/modules/admin/action-payouts.php -text +0.2.1-FINAL/inc/modules/admin/action-primera.php -text +0.2.1-FINAL/inc/modules/admin/action-rallye.php -text +0.2.1-FINAL/inc/modules/admin/action-repair.php -text +0.2.1-FINAL/inc/modules/admin/action-setup.php -text +0.2.1-FINAL/inc/modules/admin/action-sponsor.php -text +0.2.1-FINAL/inc/modules/admin/action-stats.php -text +0.2.1-FINAL/inc/modules/admin/action-surfbar.php -text +0.2.1-FINAL/inc/modules/admin/action-task.php -text +0.2.1-FINAL/inc/modules/admin/action-theme.php -text +0.2.1-FINAL/inc/modules/admin/action-transfer.php -text +0.2.1-FINAL/inc/modules/admin/action-user.php -text +0.2.1-FINAL/inc/modules/admin/action-wernis.php -text +0.2.1-FINAL/inc/modules/admin/admin-inc.php -text +0.2.1-FINAL/inc/modules/admin/overview-inc.php -text +0.2.1-FINAL/inc/modules/admin/what- -text +0.2.1-FINAL/inc/modules/admin/what-add_bank_package.php -text +0.2.1-FINAL/inc/modules/admin/what-add_guestnl_cat.php -text +0.2.1-FINAL/inc/modules/admin/what-add_points.php -text +0.2.1-FINAL/inc/modules/admin/what-add_rallye.php -text +0.2.1-FINAL/inc/modules/admin/what-add_sponsor.php -text +0.2.1-FINAL/inc/modules/admin/what-add_surfbar_url.php -text +0.2.1-FINAL/inc/modules/admin/what-admin_add.php -text +0.2.1-FINAL/inc/modules/admin/what-adminedit.php -text +0.2.1-FINAL/inc/modules/admin/what-admins_add.php -text +0.2.1-FINAL/inc/modules/admin/what-admins_contct.php -text +0.2.1-FINAL/inc/modules/admin/what-admins_edit.php -text +0.2.1-FINAL/inc/modules/admin/what-admins_mails.php -text +0.2.1-FINAL/inc/modules/admin/what-bonus.php -text +0.2.1-FINAL/inc/modules/admin/what-cache_stats.php -text +0.2.1-FINAL/inc/modules/admin/what-chk_regs.php -text +0.2.1-FINAL/inc/modules/admin/what-config_active.php -text +0.2.1-FINAL/inc/modules/admin/what-config_admin.php -text +0.2.1-FINAL/inc/modules/admin/what-config_admins.php -text +0.2.1-FINAL/inc/modules/admin/what-config_autopurge.php -text +0.2.1-FINAL/inc/modules/admin/what-config_beg.php -text +0.2.1-FINAL/inc/modules/admin/what-config_birthday.php -text +0.2.1-FINAL/inc/modules/admin/what-config_bonus.php -text +0.2.1-FINAL/inc/modules/admin/what-config_cache.php -text +0.2.1-FINAL/inc/modules/admin/what-config_cats.php -text +0.2.1-FINAL/inc/modules/admin/what-config_doubler.php -text +0.2.1-FINAL/inc/modules/admin/what-config_email.php -text +0.2.1-FINAL/inc/modules/admin/what-config_extensions.php -text +0.2.1-FINAL/inc/modules/admin/what-config_holiday.php -text +0.2.1-FINAL/inc/modules/admin/what-config_home.php -text +0.2.1-FINAL/inc/modules/admin/what-config_mediadata.php -text +0.2.1-FINAL/inc/modules/admin/what-config_mods.php -text +0.2.1-FINAL/inc/modules/admin/what-config_newsletter.php -text +0.2.1-FINAL/inc/modules/admin/what-config_nickname.php -text +0.2.1-FINAL/inc/modules/admin/what-config_order.php -text +0.2.1-FINAL/inc/modules/admin/what-config_other.php -text +0.2.1-FINAL/inc/modules/admin/what-config_payouts.php -text +0.2.1-FINAL/inc/modules/admin/what-config_points.php -text +0.2.1-FINAL/inc/modules/admin/what-config_primera.php -text +0.2.1-FINAL/inc/modules/admin/what-config_proxy.php -text +0.2.1-FINAL/inc/modules/admin/what-config_rallye_prices.php -text +0.2.1-FINAL/inc/modules/admin/what-config_refback.php -text +0.2.1-FINAL/inc/modules/admin/what-config_refid.php -text +0.2.1-FINAL/inc/modules/admin/what-config_register.php -text +0.2.1-FINAL/inc/modules/admin/what-config_register2.php -text +0.2.1-FINAL/inc/modules/admin/what-config_removeip.php -text +0.2.1-FINAL/inc/modules/admin/what-config_rewrite.php -text +0.2.1-FINAL/inc/modules/admin/what-config_secure.php -text +0.2.1-FINAL/inc/modules/admin/what-config_session.php -text +0.2.1-FINAL/inc/modules/admin/what-config_sponsor.php -text +0.2.1-FINAL/inc/modules/admin/what-config_stats.php -text +0.2.1-FINAL/inc/modules/admin/what-config_surfbar.php -text +0.2.1-FINAL/inc/modules/admin/what-config_title.php -text +0.2.1-FINAL/inc/modules/admin/what-config_top10.php -text +0.2.1-FINAL/inc/modules/admin/what-config_transfer.php -text +0.2.1-FINAL/inc/modules/admin/what-config_user.php -text +0.2.1-FINAL/inc/modules/admin/what-config_wernis.php -text +0.2.1-FINAL/inc/modules/admin/what-config_yoomedia.php -text +0.2.1-FINAL/inc/modules/admin/what-del_email.php -text +0.2.1-FINAL/inc/modules/admin/what-del_holiday.php -text +0.2.1-FINAL/inc/modules/admin/what-del_sponsor.php -text +0.2.1-FINAL/inc/modules/admin/what-del_task.php -text +0.2.1-FINAL/inc/modules/admin/what-del_transfer.php -text +0.2.1-FINAL/inc/modules/admin/what-del_user.php -text +0.2.1-FINAL/inc/modules/admin/what-edit_emails.php -text +0.2.1-FINAL/inc/modules/admin/what-edit_sponsor.php -text +0.2.1-FINAL/inc/modules/admin/what-edit_user.php -text +0.2.1-FINAL/inc/modules/admin/what-email_archiv.php -text +0.2.1-FINAL/inc/modules/admin/what-email_details.php -text +0.2.1-FINAL/inc/modules/admin/what-email_stats.php -text +0.2.1-FINAL/inc/modules/admin/what-extensions.php -text +0.2.1-FINAL/inc/modules/admin/what-guest_add.php -text +0.2.1-FINAL/inc/modules/admin/what-guestedit.php -text +0.2.1-FINAL/inc/modules/admin/what-holiday_list.php -text +0.2.1-FINAL/inc/modules/admin/what-holiday_remove.php -text +0.2.1-FINAL/inc/modules/admin/what-list_autopurge.php -text +0.2.1-FINAL/inc/modules/admin/what-list_bank_package.php -text +0.2.1-FINAL/inc/modules/admin/what-list_beg.php -text +0.2.1-FINAL/inc/modules/admin/what-list_bonus.php -text +0.2.1-FINAL/inc/modules/admin/what-list_cats.php -text +0.2.1-FINAL/inc/modules/admin/what-list_country.php -text +0.2.1-FINAL/inc/modules/admin/what-list_doubler.php -text +0.2.1-FINAL/inc/modules/admin/what-list_holiday.php -text +0.2.1-FINAL/inc/modules/admin/what-list_links.php -text +0.2.1-FINAL/inc/modules/admin/what-list_newsletter.php -text +0.2.1-FINAL/inc/modules/admin/what-list_notifications.php -text +0.2.1-FINAL/inc/modules/admin/what-list_payouts.php -text +0.2.1-FINAL/inc/modules/admin/what-list_primera.php -text +0.2.1-FINAL/inc/modules/admin/what-list_rallyes.php -text +0.2.1-FINAL/inc/modules/admin/what-list_refs.php -text +0.2.1-FINAL/inc/modules/admin/what-list_sponsor.php -text +0.2.1-FINAL/inc/modules/admin/what-list_sponsor_pay.php -text +0.2.1-FINAL/inc/modules/admin/what-list_sponsor_pays.php -text +0.2.1-FINAL/inc/modules/admin/what-list_surfbar_actions.php -text +0.2.1-FINAL/inc/modules/admin/what-list_surfbar_urls.php -text +0.2.1-FINAL/inc/modules/admin/what-list_task.php -text +0.2.1-FINAL/inc/modules/admin/what-list_transfer.php -text +0.2.1-FINAL/inc/modules/admin/what-list_unconfirmed.php -text +0.2.1-FINAL/inc/modules/admin/what-list_user.php -text +0.2.1-FINAL/inc/modules/admin/what-list_wernis.php -text +0.2.1-FINAL/inc/modules/admin/what-list_yoomedia_tm.php -text +0.2.1-FINAL/inc/modules/admin/what-lock_sponsor.php -text +0.2.1-FINAL/inc/modules/admin/what-lock_user.php -text +0.2.1-FINAL/inc/modules/admin/what-logs.php -text +0.2.1-FINAL/inc/modules/admin/what-maintenance.php -text +0.2.1-FINAL/inc/modules/admin/what-mem_add.php -text +0.2.1-FINAL/inc/modules/admin/what-memedit.php -text +0.2.1-FINAL/inc/modules/admin/what-optimize.php -text +0.2.1-FINAL/inc/modules/admin/what-overview.php -text +0.2.1-FINAL/inc/modules/admin/what-payments.php -text +0.2.1-FINAL/inc/modules/admin/what-refbanner.php -text +0.2.1-FINAL/inc/modules/admin/what-repair_amenu.php -text +0.2.1-FINAL/inc/modules/admin/what-repair_cats.php -text +0.2.1-FINAL/inc/modules/admin/what-repair_gmenu.php -text +0.2.1-FINAL/inc/modules/admin/what-repair_mmenu.php -text +0.2.1-FINAL/inc/modules/admin/what-send_bonus.php -text +0.2.1-FINAL/inc/modules/admin/what-send_newsletter.php -text +0.2.1-FINAL/inc/modules/admin/what-stats_mods.php -text +0.2.1-FINAL/inc/modules/admin/what-sub_points.php -text +0.2.1-FINAL/inc/modules/admin/what-surfbar_stats.php -text +0.2.1-FINAL/inc/modules/admin/what-theme_check.php -text +0.2.1-FINAL/inc/modules/admin/what-theme_edit.php -text +0.2.1-FINAL/inc/modules/admin/what-theme_import.php -text +0.2.1-FINAL/inc/modules/admin/what-unlock_emails.php -text +0.2.1-FINAL/inc/modules/admin/what-unlock_sponsor.php -text +0.2.1-FINAL/inc/modules/admin/what-unlock_surfbar_urls.php -text +0.2.1-FINAL/inc/modules/admin/what-updates.php -text +0.2.1-FINAL/inc/modules/admin/what-usage.php -text +0.2.1-FINAL/inc/modules/admin/what-user_contct.php -text +0.2.1-FINAL/inc/modules/admin/what-user_online.php -text +0.2.1-FINAL/inc/modules/admin/what-usr_online.php -text +0.2.1-FINAL/inc/modules/chk_login.php -text +0.2.1-FINAL/inc/modules/frametester.php -text +0.2.1-FINAL/inc/modules/guest/.htaccess -text +0.2.1-FINAL/inc/modules/guest/action- -text +0.2.1-FINAL/inc/modules/guest/action-admin.php -text +0.2.1-FINAL/inc/modules/guest/action-main.php -text +0.2.1-FINAL/inc/modules/guest/action-members.php -text +0.2.1-FINAL/inc/modules/guest/action-online.php -text +0.2.1-FINAL/inc/modules/guest/action-sponsor.php -text +0.2.1-FINAL/inc/modules/guest/action-themes.php -text +0.2.1-FINAL/inc/modules/guest/what- -text +0.2.1-FINAL/inc/modules/guest/what-active.php -text +0.2.1-FINAL/inc/modules/guest/what-admin.php -text +0.2.1-FINAL/inc/modules/guest/what-agb.php -text +0.2.1-FINAL/inc/modules/guest/what-beg.php -text +0.2.1-FINAL/inc/modules/guest/what-confirm.php -text +0.2.1-FINAL/inc/modules/guest/what-doubler.php -text +0.2.1-FINAL/inc/modules/guest/what-impressum.php -text +0.2.1-FINAL/inc/modules/guest/what-infos.php -text +0.2.1-FINAL/inc/modules/guest/what-login.php -text +0.2.1-FINAL/inc/modules/guest/what-mediadata.php -text +0.2.1-FINAL/inc/modules/guest/what-rallyes.php -text +0.2.1-FINAL/inc/modules/guest/what-register.php -text +0.2.1-FINAL/inc/modules/guest/what-sponsor_agb.php -text +0.2.1-FINAL/inc/modules/guest/what-sponsor_infos.php -text +0.2.1-FINAL/inc/modules/guest/what-sponsor_login.php -text +0.2.1-FINAL/inc/modules/guest/what-sponsor_reg.php -text +0.2.1-FINAL/inc/modules/guest/what-stats.php -text +0.2.1-FINAL/inc/modules/guest/what-top10.php -text +0.2.1-FINAL/inc/modules/guest/what-welcome.php -text +0.2.1-FINAL/inc/modules/guest/what-wernis_portal.php -text +0.2.1-FINAL/inc/modules/index.php -text +0.2.1-FINAL/inc/modules/loader.php -text +0.2.1-FINAL/inc/modules/login.php -text +0.2.1-FINAL/inc/modules/member/.htaccess -text +0.2.1-FINAL/inc/modules/member/action- -text +0.2.1-FINAL/inc/modules/member/action-account.php -text +0.2.1-FINAL/inc/modules/member/action-bank.php -text +0.2.1-FINAL/inc/modules/member/action-extras.php -text +0.2.1-FINAL/inc/modules/member/action-logout.php -text +0.2.1-FINAL/inc/modules/member/action-main.php -text +0.2.1-FINAL/inc/modules/member/action-order.php -text +0.2.1-FINAL/inc/modules/member/action-rals.php -text +0.2.1-FINAL/inc/modules/member/action-stats.php -text +0.2.1-FINAL/inc/modules/member/action-surfbar.php -text +0.2.1-FINAL/inc/modules/member/action-themes.php -text +0.2.1-FINAL/inc/modules/member/what- -text +0.2.1-FINAL/inc/modules/member/what-bank_create.php -text +0.2.1-FINAL/inc/modules/member/what-bank_deposit.php -text +0.2.1-FINAL/inc/modules/member/what-bank_infos.php -text +0.2.1-FINAL/inc/modules/member/what-bank_output.php -text +0.2.1-FINAL/inc/modules/member/what-bank_withdraw.php -text +0.2.1-FINAL/inc/modules/member/what-beg.php -text +0.2.1-FINAL/inc/modules/member/what-beg2.php -text +0.2.1-FINAL/inc/modules/member/what-bonus.php -text +0.2.1-FINAL/inc/modules/member/what-categories.php -text +0.2.1-FINAL/inc/modules/member/what-doubler.php -text +0.2.1-FINAL/inc/modules/member/what-guest.php -text +0.2.1-FINAL/inc/modules/member/what-holiday.php -text +0.2.1-FINAL/inc/modules/member/what-html_mail.php -text +0.2.1-FINAL/inc/modules/member/what-logout.php -text +0.2.1-FINAL/inc/modules/member/what-mydata.php -text +0.2.1-FINAL/inc/modules/member/what-newsletter.php -text +0.2.1-FINAL/inc/modules/member/what-nickname.php -text +0.2.1-FINAL/inc/modules/member/what-order.php -text +0.2.1-FINAL/inc/modules/member/what-payout.php -text +0.2.1-FINAL/inc/modules/member/what-points.php -text +0.2.1-FINAL/inc/modules/member/what-primera.php -text +0.2.1-FINAL/inc/modules/member/what-rallyes.php -text +0.2.1-FINAL/inc/modules/member/what-refback.php -text +0.2.1-FINAL/inc/modules/member/what-reflinks.php -text +0.2.1-FINAL/inc/modules/member/what-reflist.php -text +0.2.1-FINAL/inc/modules/member/what-sponsor.php -text +0.2.1-FINAL/inc/modules/member/what-stats.php -text +0.2.1-FINAL/inc/modules/member/what-support.php -text +0.2.1-FINAL/inc/modules/member/what-surfbar_book.php -text +0.2.1-FINAL/inc/modules/member/what-surfbar_list.php -text +0.2.1-FINAL/inc/modules/member/what-surfbar_start.php -text +0.2.1-FINAL/inc/modules/member/what-surfbar_stats.php -text +0.2.1-FINAL/inc/modules/member/what-themes.php -text +0.2.1-FINAL/inc/modules/member/what-transfer.php -text +0.2.1-FINAL/inc/modules/member/what-unconfirmed.php -text +0.2.1-FINAL/inc/modules/member/what-welcome.php -text +0.2.1-FINAL/inc/modules/member/what-wernis.php -text +0.2.1-FINAL/inc/modules/order.php -text +0.2.1-FINAL/inc/modules/sponsor.php -text +0.2.1-FINAL/inc/modules/sponsor/.htaccess -text +0.2.1-FINAL/inc/modules/sponsor/.php -text +0.2.1-FINAL/inc/modules/sponsor/account.php -text +0.2.1-FINAL/inc/modules/sponsor/settings.php -text +0.2.1-FINAL/inc/modules/sponsor/welcome.php -text +0.2.1-FINAL/inc/modules/welcome.php -text +0.2.1-FINAL/inc/monthly/.htaccess -text +0.2.1-FINAL/inc/monthly/monthly_ -text +0.2.1-FINAL/inc/monthly/monthly_beg.php -text +0.2.1-FINAL/inc/monthly/monthly_bonus.php -text +0.2.1-FINAL/inc/monthly/monthly_newsletter.php -text +0.2.1-FINAL/inc/monthly/monthly_surfbar.php -text +0.2.1-FINAL/inc/mysql-connect.php -text +0.2.1-FINAL/inc/mysql-manager.php -text +0.2.1-FINAL/inc/patch-system.php -text +0.2.1-FINAL/inc/phpmailer/ChangeLog.txt -text +0.2.1-FINAL/inc/phpmailer/LICENSE -text +0.2.1-FINAL/inc/phpmailer/README -text +0.2.1-FINAL/inc/phpmailer/class.phpmailer.php -text +0.2.1-FINAL/inc/phpmailer/class.pop3.php -text +0.2.1-FINAL/inc/phpmailer/class.smtp.php -text +0.2.1-FINAL/inc/phpmailer/codeworxtech.html -text +0.2.1-FINAL/inc/phpmailer/docs/extending.html -text +0.2.1-FINAL/inc/phpmailer/docs/faq.html -text +0.2.1-FINAL/inc/phpmailer/docs/phpmailer_sm.gif -text +0.2.1-FINAL/inc/phpmailer/docs/pop3_article.txt -text +0.2.1-FINAL/inc/phpmailer/docs/use_gmail.txt -text +0.2.1-FINAL/inc/phpmailer/examples/contents.html -text +0.2.1-FINAL/inc/phpmailer/examples/images/bkgrnd.gif -text +0.2.1-FINAL/inc/phpmailer/examples/images/phpmailer.gif -text +0.2.1-FINAL/inc/phpmailer/examples/images/phpmailer.png -text +0.2.1-FINAL/inc/phpmailer/examples/images/phpmailer_mini.gif -text +0.2.1-FINAL/inc/phpmailer/examples/index.html -text +0.2.1-FINAL/inc/phpmailer/examples/pop3_before_smtp_test.php -text +0.2.1-FINAL/inc/phpmailer/examples/test1.php -text +0.2.1-FINAL/inc/phpmailer/examples/test_gmail.php -text +0.2.1-FINAL/inc/phpmailer/examples/test_mail.php -text +0.2.1-FINAL/inc/phpmailer/examples/test_sendmail.php -text +0.2.1-FINAL/inc/phpmailer/examples/test_smtp.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-br.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-ca.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-cz.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-de.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-dk.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-en.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-es.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-et.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-fi.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-fo.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-fr.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-hu.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-it.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-ja.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-nl.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-no.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-pl.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-ro.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-ru.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-se.php -text +0.2.1-FINAL/inc/phpmailer/language/phpmailer.lang-tr.php -text +0.2.1-FINAL/inc/phpmailer/phpdoc/PHPMailer/PHPMailer.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/PHPMailer/SMTP.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/PHPMailer/_class_phpmailer_php.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/PHPMailer/_class_smtp_php.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/blank.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/classtrees_PHPMailer.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/elementindex.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/elementindex_PHPMailer.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/errors.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/index.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/li_PHPMailer.html -text +0.2.1-FINAL/inc/phpmailer/phpdoc/media/banner.css -text +0.2.1-FINAL/inc/phpmailer/phpdoc/media/stylesheet.css -text +0.2.1-FINAL/inc/phpmailer/phpdoc/packages.html -text +0.2.1-FINAL/inc/phpmailer/test/phpmailer_test.php -text +0.2.1-FINAL/inc/phpmailer/test/phpunit.php -text +0.2.1-FINAL/inc/phpmailer/test/test.png -text +0.2.1-FINAL/inc/pool-update.php -text +0.2.1-FINAL/inc/pool/.htaccess -text +0.2.1-FINAL/inc/pool/pool-bonus.php -text +0.2.1-FINAL/inc/pool/pool-user.php -text +0.2.1-FINAL/inc/profile-updte.php -text +0.2.1-FINAL/inc/rdf.class.php -text +0.2.1-FINAL/inc/reset/.htaccess -text +0.2.1-FINAL/inc/reset/reset_ -text +0.2.1-FINAL/inc/reset/reset_beg.php -text +0.2.1-FINAL/inc/reset/reset_bonus.php -text +0.2.1-FINAL/inc/reset/reset_daily.php -text +0.2.1-FINAL/inc/reset/reset_engine.php -text +0.2.1-FINAL/inc/reset/reset_holiday.php -text +0.2.1-FINAL/inc/reset/reset_surfbar.php -text +0.2.1-FINAL/inc/reset/reset_yoomedia.php -text +0.2.1-FINAL/inc/security.php -text +0.2.1-FINAL/inc/session.php -text +0.2.1-FINAL/inc/sql_error.php -text +0.2.1-FINAL/inc/stats_bonus.php -text +0.2.1-FINAL/inc/stylesheet.php -text +0.2.1-FINAL/inc/weekly/.htaccess -text +0.2.1-FINAL/inc/weekly/weekly_ -text +0.2.1-FINAL/inc/weekly/weekly_surfbar.php -text +0.2.1-FINAL/index.php -text +0.2.1-FINAL/install.php -text +0.2.1-FINAL/install/menu-de.sql -text +0.2.1-FINAL/install/menu-en.sql -text +0.2.1-FINAL/install/tables.sql -text +0.2.1-FINAL/js.php -text +0.2.1-FINAL/lead-confirm.php -text +0.2.1-FINAL/login.php -text +0.2.1-FINAL/mailid.php -text +0.2.1-FINAL/mailid_top.php -text +0.2.1-FINAL/modules.php -text +0.2.1-FINAL/ref.php -text +0.2.1-FINAL/robots.txt -text +0.2.1-FINAL/show_bonus.php -text +0.2.1-FINAL/sponsor_confirm.php -text +0.2.1-FINAL/sponsor_ref.php -text +0.2.1-FINAL/surfbar.php -text +0.2.1-FINAL/templates/.htaccess -text +0.2.1-FINAL/templates/de/.htaccess -text +0.2.1-FINAL/templates/de/emails/.htaccess -text +0.2.1-FINAL/templates/de/emails/add-points.tpl -text +0.2.1-FINAL/templates/de/emails/admin-del_links.tpl -text +0.2.1-FINAL/templates/de/emails/admin/.htaccess -text +0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_del_mails.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_delete.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_inactive.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_points.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_tsks.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_turbo.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_autopurge_unconfirmed.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_del_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_edit_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_ext_deactivated.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_holiday_deactivated.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_holiday_request.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_holiday_unlock.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_lock_active_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_lock_locked_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_mydata_notify.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_newsletter_request.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_newsletter_reset.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_payout_request.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_payout_request_banner.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_rallye_expired.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_rallye_expired_no.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_rallye_no_notify.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_rallye_notify.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_rallye_purged.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_refback.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_reset_password.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_change_data.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_change_email.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_edit.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_pending.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_reg.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_sponsor_settings.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_support-ordr.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_support-reflink.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_support-unconfirmed.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_active_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_active_pending.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_active_stopped.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_confirmed.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_depleted.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_locked_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_locked_pending.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_migrate.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_migrated_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_migrated_migrated.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_migrated_pending.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_pending.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_pending_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_reg.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_rejected.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_stopped_continued.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_stopped_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_stopped_pending.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_surfbar_url_unlock.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_transfer_ap.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_transfer_points.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_undelete_active_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/admin/admin_wernis_request.tpl -text +0.2.1-FINAL/templates/de/emails/admins/.htaccess -text +0.2.1-FINAL/templates/de/emails/admins/admins_mail_contct_admin.tpl -text +0.2.1-FINAL/templates/de/emails/admins/admins_msg_contct_admin.tpl -text +0.2.1-FINAL/templates/de/emails/admins_mail_contct_admin.tpl -text +0.2.1-FINAL/templates/de/emails/admins_msg_contct_admin.tpl -text +0.2.1-FINAL/templates/de/emails/back-admin.tpl -text +0.2.1-FINAL/templates/de/emails/back-member.tpl -text +0.2.1-FINAL/templates/de/emails/beg/.htaccess -text +0.2.1-FINAL/templates/de/emails/beg/beg_di_notify.tpl -text +0.2.1-FINAL/templates/de/emails/beg/beg_en_notify.tpl -text +0.2.1-FINAL/templates/de/emails/beg/beg_en_notify_body.tpl -text +0.2.1-FINAL/templates/de/emails/bonus-mail.tpl -text +0.2.1-FINAL/templates/de/emails/bonus/.htaccess -text +0.2.1-FINAL/templates/de/emails/bonus/bonus_di_notify.tpl -text +0.2.1-FINAL/templates/de/emails/bonus/bonus_en_notify.tpl -text +0.2.1-FINAL/templates/de/emails/bonus/bonus_en_notify_body.tpl -text +0.2.1-FINAL/templates/de/emails/confirm-member.tpl -text +0.2.1-FINAL/templates/de/emails/confirm-referral.tpl -text +0.2.1-FINAL/templates/de/emails/del-user.tpl -text +0.2.1-FINAL/templates/de/emails/del_sponsor.tpl -text +0.2.1-FINAL/templates/de/emails/done-admin.tpl -text +0.2.1-FINAL/templates/de/emails/done-member.tpl -text +0.2.1-FINAL/templates/de/emails/guest/.htaccess -text +0.2.1-FINAL/templates/de/emails/guest/guest_request_confirm.tpl -text +0.2.1-FINAL/templates/de/emails/header.tpl -text +0.2.1-FINAL/templates/de/emails/lock-user.tpl -text +0.2.1-FINAL/templates/de/emails/lock_sponsor.tpl -text +0.2.1-FINAL/templates/de/emails/member/.htaccess -text +0.2.1-FINAL/templates/de/emails/member/member_autopurge_delete.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_autopurge_inactive.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_autopurge_points.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_autopurge_unconfirmed.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_beg.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_birthday.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_birthday_confirm.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_bonus.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_contct.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_del_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_doubler.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_edit_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_holiday_activated.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_holiday_removed.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_holiday_request.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_holiday_unlock.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_lock_active_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_lock_locked_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_mydata_notify.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_newsletter_done.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_newsletter_request.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_newsletter_reset.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_payout_accepted.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_payout_rejected.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_payout_request.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_payout_request_banner.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_rallye_expired.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_rallye_expired_bronce.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_rallye_expired_gold.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_rallye_expired_silver.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_rallye_notify.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_refback.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_stats_bonus.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_support-ordr.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_support-reflink.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_support-unconfirmed.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_low_points.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_active_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_active_pending.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_active_stopped.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_confirmed.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_depleted.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_locked_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_locked_pending.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_migrate.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_migrated_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_migrated_migrated.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_migrated_pending.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_pending.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_pending_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_reg.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_rejected.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_stopped_continued.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_stopped_deleted.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_stopped_pending.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_surfbar_url_unlock.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_transfer_recipient.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_transfer_sender.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_undelete_active_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_wernis_accepted.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_wernis_rejected.tpl -text +0.2.1-FINAL/templates/de/emails/member/member_wernis_request.tpl -text +0.2.1-FINAL/templates/de/emails/new-pass.tpl -text +0.2.1-FINAL/templates/de/emails/newsletter.tpl -text +0.2.1-FINAL/templates/de/emails/newsletter_html.tpl -text +0.2.1-FINAL/templates/de/emails/normal-mail.tpl -text +0.2.1-FINAL/templates/de/emails/order-accept.tpl -text +0.2.1-FINAL/templates/de/emails/order-admin.tpl -text +0.2.1-FINAL/templates/de/emails/order-deleted.tpl -text +0.2.1-FINAL/templates/de/emails/order-member.tpl -text +0.2.1-FINAL/templates/de/emails/order-reject.tpl -text +0.2.1-FINAL/templates/de/emails/profile-updte.tpl -text +0.2.1-FINAL/templates/de/emails/register-admin.tpl -text +0.2.1-FINAL/templates/de/emails/register-member.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/.htaccess -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_activate.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_add_points.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_change_data.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_change_email.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_confirm.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_email.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_lost.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_pending.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_ref_notify.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_settings.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_sub_points.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_unlock.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor/sponsor_unlocked.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor_add_points.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor_confirm.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor_pending.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor_sub_points.tpl -text +0.2.1-FINAL/templates/de/emails/sponsor_unlocked.tpl -text +0.2.1-FINAL/templates/de/emails/sub-points.tpl -text +0.2.1-FINAL/templates/de/emails/unlock-user.tpl -text +0.2.1-FINAL/templates/de/html/.htaccess -text +0.2.1-FINAL/templates/de/html/admin/.htaccess -text +0.2.1-FINAL/templates/de/html/admin/admin_add_bank_package.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_banner.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_cat.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_country.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_max.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_payment.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_points.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_points_all.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_rallye.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_rallye_prices.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_reflvl.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_sponsor.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_sponsor_already.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_sponsor_paytype.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_add_surfbar_url.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admin_add.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_add.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_add_acl.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_contct_default.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_contct_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_contct_select.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_edit_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_list.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_admins_mails_list_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_amenu_delete.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_amenu_delete_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_amenu_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_amenu_edit_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_amenu_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_cache_stats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_active.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_admin.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_admins.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_admins_del.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_admins_del_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_admins_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_admins_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_admins_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_autopurge.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_beg.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_birthday.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_bonus.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_cache.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_cats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_cats_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_doubler.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_email.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_email_del.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_email_del_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_email_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_email_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_email_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_extensions.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_holiday.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_home.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_home_main.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_home_settings.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_home_settings_pro.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_mediadata.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_newsletter.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_nickname.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_order.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_order_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_other.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_payouts.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_del.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_del_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_payouts_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_point_settings.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_points.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_primera.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_proxy.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_del.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_del_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_prices.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_rallye_prices_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_refback.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_refid.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_reg_pro.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_register.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_register2.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_removeip.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_rewrite.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_rewrite_rows.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_secure.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_session.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_sponsor.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_stats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_sub_points.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_surfbar.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_title.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_top10.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_transfer.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_user.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_wernis.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_config_yoomedia.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_contct_user_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_admins.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_admins_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_bank_packages.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_bank_packages_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_cats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_cats_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_email_bonus.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_email_normal.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_email_notify.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_payments.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_payments_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_sponsor.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_surfbar_urls_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_transfer_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_del_user.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_admins.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_admins_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_bank_packages.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_bank_packages_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_cats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_cats_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_email.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_email_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_email_select.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_payments.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_payments_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_rallyes.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_rallyes_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_sponsor_add_points.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_sponsor_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_sponsor_sub_points.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_surfbar_urls_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_edit_user.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_email_archiv.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_email_archiv_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_email_nav_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_ext_notes.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_ext_reg_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_ext_sql_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_ext_sql_table.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_404.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_delete.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_delete_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_installed.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_list.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_extensions_text.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_footer.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_gmenu_delete.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_gmenu_delete_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_gmenu_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_gmenu_edit_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_gmenu_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_gmenu_status.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_guest_add.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_admins.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_admins_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_autopurge.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_autopurge_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_bank_package.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_bank_package_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_beg.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_beg_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_beg_rows.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_bonus.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_bonus_emails.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_bonus_emails_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_bonus_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_bonus_rows.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_cats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_cats_404.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_cats_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_country.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_country_del_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_country_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_country_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_country_no_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_country_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_doubler_already.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_doubler_overview.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_doubler_waiting.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_emails.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_emails_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_extensions.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_extensions_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_holiday.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_holiday_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_links.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_links_problem.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_links_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_notify_emails.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_notify_emails_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_payments.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_payouts.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_payouts_banner.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_payouts_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_payouts_txt.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_primera_main.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_primera_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_noselect.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_prices.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_prices_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_usr.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_rallye_usr_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_rallyes.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_rallyes_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_rallyes_row2.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_refs.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_refs2.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_refs_level.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_refs_norefs.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_refs_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_details.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_404.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_del.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_del_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_pay_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_sponsor_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_surfbar_actions.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_surfbar_actions_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_surfbar_urls_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_task_ext_rows.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_task_rows.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_transfer.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_transfer_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_unconfirmed.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_unconfirmed_header.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_unconfirmed_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_user.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_user_alpha.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_user_pagenav.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_user_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_user_sort.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_user_sort_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_wernis_main.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_wernis_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_yoomedia_tm.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_yoomedia_tm_already.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_list_yoomedia_tm_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_lock_sponsor.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_lock_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_lock_surfbar_urls_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_lock_user.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_login_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_login_msg.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_logout.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_logout_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_logout_sql_patches_install.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_logout_sql_patches_remove.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_main_footer.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_main_header.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_maintenance_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_member_add.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_member_selection_box.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_menu_404_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_menu_failed.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_menu_hints.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_menu_hints_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_menu_overview_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_menu_status_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_menu_unknown_okay.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mini_online.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mmenu_delete.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mmenu_delete_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mmenu_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mmenu_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mmenu_overview.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mmenu_status.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mods_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mods_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mods_list.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mods_list_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mods_stats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mods_stats2.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mods_stats2_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_mods_stats_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_new_ext.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_newsletter.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_newsletter_nohtml.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_newsletter_tsk.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_online_footer.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_online_header.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_optimize.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_optimize_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_footer.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_footer_task.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_header.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_header_task.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_list.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_list_ext_rows.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_list_rows.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_task.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_task_extras.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_overview_task_rows.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_patches.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_patches_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_payments_list_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_payout_accept_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_payout_add_new.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_payout_failed_transfer.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_payout_overview_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_payout_reject_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_points.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_points_del.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_points_del_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_points_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_points_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_points_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_refbanner.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_refbanner_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_refbanner_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_refbanner_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_reg.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_reg_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_reg_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_reset_pass_done.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_reset_password.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_reset_password_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_send_bonus_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_send_bonus_select.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_send_reset_link.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_send_yoomedia.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_settings_saved.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_sponsor_paytypes.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_sub_points.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_sub_points_all.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_surfbar_stats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_surfbar_stats_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_surfbar_url_stats.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_surfbar_url_stats_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_task_holiday.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_theme_404.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_theme_edit.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_theme_edit_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_theme_import.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_theme_installed.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_theme_list.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_undelete_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_undelete_surfbar_urls_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_unlock_emails.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_unlock_emails_redir.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_unlock_emails_redir_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_unlock_emails_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_unlock_sponsor.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_unlock_sponsor_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_unlock_surfbar_urls.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_unlock_surfbar_urls_row.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_update_download.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_user_details.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_validate_reset_hash_form.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_welcome.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_welcome_admins.tpl -text +0.2.1-FINAL/templates/de/html/admin/admin_yoomedia_error.tpl -text +0.2.1-FINAL/templates/de/html/agb.tpl -text +0.2.1-FINAL/templates/de/html/beg/.htaccess -text +0.2.1-FINAL/templates/de/html/beg/beg_banner.tpl -text +0.2.1-FINAL/templates/de/html/beg/beg_done.tpl -text +0.2.1-FINAL/templates/de/html/beg/beg_failed.tpl -text +0.2.1-FINAL/templates/de/html/beg/beg_link.tpl -text +0.2.1-FINAL/templates/de/html/beg/beg_login.tpl -text +0.2.1-FINAL/templates/de/html/beg/beg_pay_mode_both.tpl -text +0.2.1-FINAL/templates/de/html/birthday/.htaccess -text +0.2.1-FINAL/templates/de/html/birthday/birthday_confirm.tpl -text +0.2.1-FINAL/templates/de/html/birthday/birthday_footer.tpl -text +0.2.1-FINAL/templates/de/html/birthday/birthday_header.tpl -text +0.2.1-FINAL/templates/de/html/birthday/birthday_msg.tpl -text +0.2.1-FINAL/templates/de/html/copyright.tpl -text +0.2.1-FINAL/templates/de/html/copyright_backlink.tpl -text +0.2.1-FINAL/templates/de/html/doubler/.htaccess -text +0.2.1-FINAL/templates/de/html/doubler/doubler_footer.tpl -text +0.2.1-FINAL/templates/de/html/doubler/doubler_header.tpl -text +0.2.1-FINAL/templates/de/html/doubler/doubler_index.tpl -text +0.2.1-FINAL/templates/de/html/doubler/doubler_reflink.tpl -text +0.2.1-FINAL/templates/de/html/ext/.htaccess -text +0.2.1-FINAL/templates/de/html/ext/ext_active.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_admins.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_admintheme1.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_admintheme_default.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_autopurge.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_bank.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_beg.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_birthday.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_bonus.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_booking.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_cache.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_country.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_debug.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_demo.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_doubler.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_events.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_holiday.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_html_mail.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_mailid.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_maintenance.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_mediadata.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_mods.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_mydata.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_network.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_newsletter.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_nickname.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_online.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_optimize.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_order.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_other.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_payout.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_primera.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_profile.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_rallye.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_refback.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_register.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_removeip.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_repair.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_rewrite.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_safe.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_sponsor.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_sql_patches.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_support.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_surfbar.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_task.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_theme.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_top10.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_transfer.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_user.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_wernis.tpl -text +0.2.1-FINAL/templates/de/html/ext/ext_yoomedia.tpl -text +0.2.1-FINAL/templates/de/html/fatal_footer.tpl -text +0.2.1-FINAL/templates/de/html/fatal_header.tpl -text +0.2.1-FINAL/templates/de/html/guest/.htaccess -text +0.2.1-FINAL/templates/de/html/guest/guest_active_none_row.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_active_row.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_active_table.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_advert.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_advert2.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_beg.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_cat_row.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_cat_table.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_confirm_link.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_confirm_table.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_content_footer.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_doubler.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_doubler_list.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_doubler_list_rows.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_footer.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_frametester.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_goto_top.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_header.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_login.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_menu_bottom.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_menu_content.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_menu_row.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_menu_td.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_menu_title.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_menu_whats.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_nickname_login.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_no_rallyes.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_rallye_expired_footer.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_rallye_expired_header.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_rallye_footer.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_rallye_header.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_rallye_show.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_receive_table.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_register.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_register_refid.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_register_refid_hide.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_sponsor_act_row.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_sponsor_activate.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_sponsor_infos.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_sponsor_login.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_sponsor_lost.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_sponsor_pay_row.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_sponsor_reg.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_stats_cats_row.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_stats_member.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_stats_month_row.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_top10.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_top10_empty4.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_top10_empty5.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_top10_row_earner.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_top10_row_login.tpl -text +0.2.1-FINAL/templates/de/html/guest/guest_top10_row_refs.tpl -text +0.2.1-FINAL/templates/de/html/header.tpl -text +0.2.1-FINAL/templates/de/html/impressum.tpl -text +0.2.1-FINAL/templates/de/html/index.tpl -text +0.2.1-FINAL/templates/de/html/index_forward.tpl -text +0.2.1-FINAL/templates/de/html/infos.tpl -text +0.2.1-FINAL/templates/de/html/install/.htaccess -text +0.2.1-FINAL/templates/de/html/install/install_fatal_row.tpl -text +0.2.1-FINAL/templates/de/html/install/install_fatal_table.tpl -text +0.2.1-FINAL/templates/de/html/install/install_finished.tpl -text +0.2.1-FINAL/templates/de/html/install/install_footer.tpl -text +0.2.1-FINAL/templates/de/html/install/install_header.tpl -text +0.2.1-FINAL/templates/de/html/install/install_page1.tpl -text +0.2.1-FINAL/templates/de/html/install/install_page2.tpl -text +0.2.1-FINAL/templates/de/html/install/install_page3.tpl -text +0.2.1-FINAL/templates/de/html/install/install_welcome.tpl -text +0.2.1-FINAL/templates/de/html/lead_code.tpl -text +0.2.1-FINAL/templates/de/html/loader.tpl -text +0.2.1-FINAL/templates/de/html/login_failed_js.tpl -text +0.2.1-FINAL/templates/de/html/login_failtures.tpl -text +0.2.1-FINAL/templates/de/html/mailid/.htaccess -text +0.2.1-FINAL/templates/de/html/mailid/mailid_banner.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_confirm_buttom.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_enter_code.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_frames.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_points_done.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_points_done2.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_points_failed.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_points_lcoked2.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_points_locked.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_points_locked2.tpl -text +0.2.1-FINAL/templates/de/html/mailid/mailid_timer.tpl -text +0.2.1-FINAL/templates/de/html/main-welcome.tpl -text +0.2.1-FINAL/templates/de/html/mediadata.tpl -text +0.2.1-FINAL/templates/de/html/mediadata_extra_hrow.tpl -text +0.2.1-FINAL/templates/de/html/mediadata_extra_row.tpl -text +0.2.1-FINAL/templates/de/html/mediadata_extra_row2.tpl -text +0.2.1-FINAL/templates/de/html/member/.htaccess -text +0.2.1-FINAL/templates/de/html/member/member_advert.tpl -text +0.2.1-FINAL/templates/de/html/member/member_beg.tpl -text +0.2.1-FINAL/templates/de/html/member/member_beg_404.tpl -text +0.2.1-FINAL/templates/de/html/member/member_bonus.tpl -text +0.2.1-FINAL/templates/de/html/member/member_bonus_404.tpl -text +0.2.1-FINAL/templates/de/html/member/member_bonus_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_cat_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_cats_footer.tpl -text +0.2.1-FINAL/templates/de/html/member/member_cats_header.tpl -text +0.2.1-FINAL/templates/de/html/member/member_content_right.tpl -text +0.2.1-FINAL/templates/de/html/member/member_doubler.tpl -text +0.2.1-FINAL/templates/de/html/member/member_doubler_list.tpl -text +0.2.1-FINAL/templates/de/html/member/member_doubler_list_rows.tpl -text +0.2.1-FINAL/templates/de/html/member/member_footer.tpl -text +0.2.1-FINAL/templates/de/html/member/member_goto_top.tpl -text +0.2.1-FINAL/templates/de/html/member/member_header.tpl -text +0.2.1-FINAL/templates/de/html/member/member_holiday_deactivate.tpl -text +0.2.1-FINAL/templates/de/html/member/member_holiday_form.tpl -text +0.2.1-FINAL/templates/de/html/member/member_html_mail_settings.tpl -text +0.2.1-FINAL/templates/de/html/member/member_list_beg.tpl -text +0.2.1-FINAL/templates/de/html/member/member_list_beg_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_login_js.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_bonus_deleted.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_bonus_new.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_bonus_queue.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_bonus_send.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_normal_active.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_normal_admin.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_normal_deleted.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_normal_new.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_normal_send.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mail_normal_temp.tpl -text +0.2.1-FINAL/templates/de/html/member/member_menu_bottom.tpl -text +0.2.1-FINAL/templates/de/html/member/member_menu_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_menu_title.tpl -text +0.2.1-FINAL/templates/de/html/member/member_menu_whats.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mydata_button.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mydata_edit.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mydata_locked.tpl -text +0.2.1-FINAL/templates/de/html/member/member_mydata_overview.tpl -text +0.2.1-FINAL/templates/de/html/member/member_newsletter.tpl -text +0.2.1-FINAL/templates/de/html/member/member_newsletter_note.tpl -text +0.2.1-FINAL/templates/de/html/member/member_nickname_form.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order-back.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order-html_ext.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order-html_intro.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order-zip1.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order-zip2.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order_back.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order_frametester.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order_page1.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order_page2.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order_points.tpl -text +0.2.1-FINAL/templates/de/html/member/member_order_send.tpl -text +0.2.1-FINAL/templates/de/html/member/member_payout.tpl -text +0.2.1-FINAL/templates/de/html/member/member_payout_form.tpl -text +0.2.1-FINAL/templates/de/html/member/member_payout_form_banner.tpl -text +0.2.1-FINAL/templates/de/html/member/member_payout_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_points.tpl -text +0.2.1-FINAL/templates/de/html/member/member_points_bonus_disabled.tpl -text +0.2.1-FINAL/templates/de/html/member/member_points_bonus_rows.tpl -text +0.2.1-FINAL/templates/de/html/member/member_points_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_points_upgrade.tpl -text +0.2.1-FINAL/templates/de/html/member/member_pool_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_pool_table.tpl -text +0.2.1-FINAL/templates/de/html/member/member_primera.tpl -text +0.2.1-FINAL/templates/de/html/member/member_primera_form.tpl -text +0.2.1-FINAL/templates/de/html/member/member_primera_mode_list.tpl -text +0.2.1-FINAL/templates/de/html/member/member_primera_mode_list_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_primera_mode_pay.tpl -text +0.2.1-FINAL/templates/de/html/member/member_receive_table.tpl -text +0.2.1-FINAL/templates/de/html/member/member_ref_list.tpl -text +0.2.1-FINAL/templates/de/html/member/member_ref_list_level.tpl -text +0.2.1-FINAL/templates/de/html/member/member_ref_list_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_refback_edit.tpl -text +0.2.1-FINAL/templates/de/html/member/member_refback_list.tpl -text +0.2.1-FINAL/templates/de/html/member/member_refback_list_level.tpl -text +0.2.1-FINAL/templates/de/html/member/member_refback_list_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_refback_list_row_deleted.tpl -text +0.2.1-FINAL/templates/de/html/member/member_reflinks_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_reflinks_table.tpl -text +0.2.1-FINAL/templates/de/html/member/member_stats_pool.tpl -text +0.2.1-FINAL/templates/de/html/member/member_stats_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_stats_table.tpl -text +0.2.1-FINAL/templates/de/html/member/member_support_contcted.tpl -text +0.2.1-FINAL/templates/de/html/member/member_support_form.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_book_dynamic.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_book_static.tp -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_book_static.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_delete_action_form.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_edit_action_form.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_link.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_list.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_list_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_start_dynamic.tpl -text +0.2.1-FINAL/templates/de/html/member/member_surfbar_start_static.tpl -text +0.2.1-FINAL/templates/de/html/member/member_themes.tpl -text +0.2.1-FINAL/templates/de/html/member/member_transfer_list.tpl -text +0.2.1-FINAL/templates/de/html/member/member_transfer_new.tpl -text +0.2.1-FINAL/templates/de/html/member/member_transfer_overview.tpl -text +0.2.1-FINAL/templates/de/html/member/member_transfer_settings.tpl -text +0.2.1-FINAL/templates/de/html/member/member_unconfirmed_404.tpl -text +0.2.1-FINAL/templates/de/html/member/member_unconfirmed_404_nopoints.tpl -text +0.2.1-FINAL/templates/de/html/member/member_unconfirmed_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_unconfirmed_row_nopoints.tpl -text +0.2.1-FINAL/templates/de/html/member/member_unconfirmed_table.tpl -text +0.2.1-FINAL/templates/de/html/member/member_unconfirmed_table_nopoints.tpl -text +0.2.1-FINAL/templates/de/html/member/member_welcome.tpl -text +0.2.1-FINAL/templates/de/html/member/member_welcome_footer.tpl -text +0.2.1-FINAL/templates/de/html/member/member_welcome_header.tpl -text +0.2.1-FINAL/templates/de/html/member/member_wernis.tpl -text +0.2.1-FINAL/templates/de/html/member/member_wernis_form.tpl -text +0.2.1-FINAL/templates/de/html/member/member_wernis_mode_choose.tpl -text +0.2.1-FINAL/templates/de/html/member/member_wernis_mode_list.tpl -text +0.2.1-FINAL/templates/de/html/member/member_wernis_mode_list_row.tpl -text +0.2.1-FINAL/templates/de/html/member/member_wernis_mode_payout.tpl -text +0.2.1-FINAL/templates/de/html/member/member_wernis_mode_withdraw.tpl -text +0.2.1-FINAL/templates/de/html/member/member_wernis_row.tpl -text +0.2.1-FINAL/templates/de/html/message.tpl -text +0.2.1-FINAL/templates/de/html/metadata.tpl -text +0.2.1-FINAL/templates/de/html/online_now.tpl -text +0.2.1-FINAL/templates/de/html/page_body.tpl -text +0.2.1-FINAL/templates/de/html/page_footer.tpl -text +0.2.1-FINAL/templates/de/html/page_header.tpl -text +0.2.1-FINAL/templates/de/html/profile-update.tpl -text +0.2.1-FINAL/templates/de/html/rallye/.htaccess -text +0.2.1-FINAL/templates/de/html/rallye/rallye_test.tpl -text +0.2.1-FINAL/templates/de/html/redirect_url.tpl -text +0.2.1-FINAL/templates/de/html/register_header.tpl -text +0.2.1-FINAL/templates/de/html/removeip_level.tpl -text +0.2.1-FINAL/templates/de/html/runtime_fatal_row.tpl -text +0.2.1-FINAL/templates/de/html/runtime_fatal_table.tpl -text +0.2.1-FINAL/templates/de/html/show_bonus.tpl -text +0.2.1-FINAL/templates/de/html/show_bonus_footer.tpl -text +0.2.1-FINAL/templates/de/html/show_bonus_header.tpl -text +0.2.1-FINAL/templates/de/html/show_bonus_msg.tpl -text +0.2.1-FINAL/templates/de/html/show_bonus_yr.tpl -text +0.2.1-FINAL/templates/de/html/show_timings.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_account_form.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_action.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_fillup_form.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_footer.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_header.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_main.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_settings_form.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_welcome.tpl -text +0.2.1-FINAL/templates/de/html/sponsor/sponsor_what.tpl -text +0.2.1-FINAL/templates/de/html/surfbar/.htaccess -text +0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_banner.tpl -text +0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_start.tpl -text +0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_stats.tpl -text +0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_textlinks.tpl -text +0.2.1-FINAL/templates/de/html/surfbar/surfbar_frame_top.tpl -text +0.2.1-FINAL/templates/de/html/surfbar/surfbar_frameset.tpl -text +0.2.1-FINAL/templates/de/html/surfbar/surfbar_start_banner.tpl -text +0.2.1-FINAL/templates/de/html/surfbar/surfbar_stopped.tpl -text +0.2.1-FINAL/templates/de/html/task/.htaccess -text +0.2.1-FINAL/templates/de/html/task/task_ext_deactivated.tpl -text +0.2.1-FINAL/templates/de/html/theme_one.tpl -text +0.2.1-FINAL/templates/de/html/theme_select_box.tpl -text +0.2.1-FINAL/templates/de/html/theme_select_form.tpl -text +0.2.1-FINAL/templates/de/html/welcome.tpl -text +0.2.1-FINAL/templates/en/html/admin/admin_welcome.tpl -text +0.2.1-FINAL/templates/en/html/impressum.tpl -text +0.2.1-FINAL/templates/en/html/mailid/.htaccess -text +0.2.1-FINAL/templates/en/html/register_header.tpl -text +0.2.1-FINAL/templates/en/html/welcome.tpl -text +0.2.1-FINAL/theme/business/css/active.css -text +0.2.1-FINAL/theme/business/css/beg.css -text +0.2.1-FINAL/theme/business/css/bonus.css -text +0.2.1-FINAL/theme/business/css/doubler.css -text +0.2.1-FINAL/theme/business/css/general.css -text +0.2.1-FINAL/theme/business/css/install.css -text +0.2.1-FINAL/theme/business/css/register.css -text +0.2.1-FINAL/theme/business/css/sponsor.css -text +0.2.1-FINAL/theme/business/css/surfbar.css -text +0.2.1-FINAL/theme/business/css/top10.css -text +0.2.1-FINAL/theme/business/css/transfer.css -text +0.2.1-FINAL/theme/business/images/code_bg.jpg -text +0.2.1-FINAL/theme/business/images/code_bg.png -text +0.2.1-FINAL/theme/business/theme.php -text +0.2.1-FINAL/theme/default/css/active.css -text +0.2.1-FINAL/theme/default/css/beg.css -text +0.2.1-FINAL/theme/default/css/bonus.css -text +0.2.1-FINAL/theme/default/css/doubler.css -text +0.2.1-FINAL/theme/default/css/general.css -text +0.2.1-FINAL/theme/default/css/install.css -text +0.2.1-FINAL/theme/default/css/register.css -text +0.2.1-FINAL/theme/default/css/sponsor.css -text +0.2.1-FINAL/theme/default/css/surfbar.css -text +0.2.1-FINAL/theme/default/css/top10.css -text +0.2.1-FINAL/theme/default/css/transfer.css -text +0.2.1-FINAL/theme/default/images/code_bg.jpg -text +0.2.1-FINAL/theme/default/images/code_bg.png -text +0.2.1-FINAL/theme/default/theme.php -text +0.2.1-FINAL/theme/desert/css/active.css -text +0.2.1-FINAL/theme/desert/css/beg.css -text +0.2.1-FINAL/theme/desert/css/bonus.css -text +0.2.1-FINAL/theme/desert/css/doubler.css -text +0.2.1-FINAL/theme/desert/css/general.css -text +0.2.1-FINAL/theme/desert/css/help.css -text +0.2.1-FINAL/theme/desert/css/install.css -text +0.2.1-FINAL/theme/desert/css/paidlinks.css -text +0.2.1-FINAL/theme/desert/css/register.css -text +0.2.1-FINAL/theme/desert/css/sponsor.css -text +0.2.1-FINAL/theme/desert/css/surfbar.css -text +0.2.1-FINAL/theme/desert/css/top10.css -text +0.2.1-FINAL/theme/desert/css/transfer.css -text +0.2.1-FINAL/theme/desert/images/code_bg.jpg -text +0.2.1-FINAL/theme/desert/images/code_bg.png -text +0.2.1-FINAL/theme/desert/images/help/bullet.png -text +0.2.1-FINAL/theme/desert/images/help/down.jpg -text +0.2.1-FINAL/theme/desert/images/help/left.jpg -text +0.2.1-FINAL/theme/desert/images/help/right.jpg -text +0.2.1-FINAL/theme/desert/images/help/up.jpg -text +0.2.1-FINAL/theme/desert/theme.php -text +0.2.1-FINAL/view.php -text DOCS/INSTALL.txt -text DOCS/LICENSE.txt -text DOCS/README -text diff --git a/.gitignore b/.gitignore index 9df491e110..b65319ff32 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,12 @@ /.cache /.project /.settings +0.2.1-FINAL/.cache +0.2.1-FINAL/.project +0.2.1-FINAL/.settings +0.2.1-FINAL/inc/.secret/.* +0.2.1-FINAL/inc/cache/*.cache +0.2.1-FINAL/inc/cache/*.log inc/.secret/.* inc/.secret/dummy.php inc/cache/*.cache diff --git a/0.2.1-FINAL/.htaccess b/0.2.1-FINAL/.htaccess new file mode 100644 index 0000000000..bea521ae53 --- /dev/null +++ b/0.2.1-FINAL/.htaccess @@ -0,0 +1,9 @@ +Options -Indexes +DirectoryIndex index.php + + + RewriteEngine On + RewriteRule ^cms/(.*)/wht/(.*)$ modules.php?module=$1&what=$2 [L] + RewriteRule ^cms/(.*)/act/(.*)$ modules.php?module=$1&action=$2 [L] + RewriteRule ^cms/(.*)$ modules.php?module=$1 [L] + diff --git a/0.2.1-FINAL/.svnignore b/0.2.1-FINAL/.svnignore new file mode 100644 index 0000000000..7b9019de13 --- /dev/null +++ b/0.2.1-FINAL/.svnignore @@ -0,0 +1 @@ +inc/config.php diff --git a/0.2.1-FINAL/DOCS/INSTALL.txt b/0.2.1-FINAL/DOCS/INSTALL.txt new file mode 100644 index 0000000000..da98f0cccc --- /dev/null +++ b/0.2.1-FINAL/DOCS/INSTALL.txt @@ -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-FINAL/DOCS/LICENSE.txt b/0.2.1-FINAL/DOCS/LICENSE.txt new file mode 100644 index 0000000000..d511905c16 --- /dev/null +++ b/0.2.1-FINAL/DOCS/LICENSE.txt @@ -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. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have 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. + + , 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-FINAL/DOCS/README b/0.2.1-FINAL/DOCS/README new file mode 100644 index 0000000000..ec9a1ecfe0 --- /dev/null +++ b/0.2.1-FINAL/DOCS/README @@ -0,0 +1,21 @@ +All documents including licence file are moved into the new DOCS directory! + +Alle Dokumente inklusive Lizenz wurden in das neue DOCS-Verzeichnis verschoben! + +------------------------------- +Copyright notes: +------------------------------- + +MXChange is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or any +later version. + +MXChange is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA diff --git a/0.2.1-FINAL/DOCS/de/AUTHORS.txt b/0.2.1-FINAL/DOCS/de/AUTHORS.txt new file mode 100644 index 0000000000..b00a16c373 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/AUTHORS.txt @@ -0,0 +1,64 @@ +[------------------------------------] +[-- Aktive Autoren dieses Scriptes --] +[------------------------------------] + +- Roland "Quix0r" Haeder + + (Projektleiter, Hauptprogrammierer, Webmaster) + +- Wolfang "profi-concept" Stelzhammer + + (Contributed the extension "iso3166" which depends on country extension + and gives you a ISO 3166 confirm list of country codes) + +- Mr. X + + (Will gerne aufgenommen werden... ;-) ) + +[----------------------------] +[-- Alpha- und Beta-Tester --] +[----------------------------] + +- Peter "Piter01" Llorens y Rilk + (Beta-Tester, hat bei der 0.2.1-Bugsuche mitgemacht und sonst immer jede + neue Version getestet. Vielen Dank! :) + +- Michael "The Shadowmaster" Wollweber + + (Beta-Tester, hat mir bei der Fehlersuche wegen unterschiedlichen IP-Nummern + in $_SERVER['SERVER_ADDR'] und getaddrbyname($_SERVER['SERVER_NAME']) seinen + FTP-Zugang ausgeliehen) + +- Dominik "monakoianar/Nike" Schmauder + + (Beta-Tester, hat mir bei der Fehlersuche auf Win32-PCs (apachefriends.org, + kein Bindestrich!!!) und bei der allgemeinen Bugsuche geholfen) + +- 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 + + (Sekundaerer Programmierer, einige Bugfixes und viele Verbesserungen: + "Andere Einstellungen" im Admin-Menue, EMails loeschen, Medidaten, + EMail-Archiv und -Details Menuepunkte) + +- Lars Moehlenbruch + + (Verbesserter HTML-Template Support, Referals eines Mitgliedes auflisten, + veraltete Version, die nur die erste Ebene anzeigt) + +- Erol Ilkan + + (Neuer Entwickler, einige Bugfixes, SQL-Fehler beseitigt) + +- Lothar Mengens + + (Hat mir eine SQL-Datei mit Laendercodes zur Verfuegung gestellt) diff --git a/0.2.1-FINAL/DOCS/de/CHANGES.txt b/0.2.1-FINAL/DOCS/de/CHANGES.txt new file mode 100644 index 0000000000..7777c33a2c --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/CHANGES.txt @@ -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-FINAL/DOCS/de/CSS-PATCHES.txt b/0.2.1-FINAL/DOCS/de/CSS-PATCHES.txt new file mode 100644 index 0000000000..967d5dd3e5 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/CSS-PATCHES.txt @@ -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-FINAL/DOCS/de/CSS-PATCHES_05092004.txt b/0.2.1-FINAL/DOCS/de/CSS-PATCHES_05092004.txt new file mode 100644 index 0000000000..be3f16e410 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/CSS-PATCHES_05092004.txt @@ -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: --] + + +[-- 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: --] +·  + +[-- OPEN: --] +templates/guest_menu_row.tpl.de + +[-- SEARCH FOR: --] +$content + +[-- ADD BEFORE: --] +·  + +[-- CLOSE/SAVE FILES --] diff --git a/0.2.1-FINAL/DOCS/de/DESIGNING.txt b/0.2.1-FINAL/DOCS/de/DESIGNING.txt new file mode 100644 index 0000000000..4d9f98c09c --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/DESIGNING.txt @@ -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-FINAL/DOCS/de/EXTENSIONS.txt b/0.2.1-FINAL/DOCS/de/EXTENSIONS.txt new file mode 100644 index 0000000000..ca38d1327c --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/EXTENSIONS.txt @@ -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 oder im Bug-Tracker! + +http://forum.mxchange.org - http://bugs.mxchange.org + +[EOF] diff --git a/0.2.1-FINAL/DOCS/de/LICENSE.txt b/0.2.1-FINAL/DOCS/de/LICENSE.txt new file mode 100644 index 0000000000..719ba8e409 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/LICENSE.txt @@ -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-FINAL/DOCS/de/MENUE_HOVER.txt b/0.2.1-FINAL/DOCS/de/MENUE_HOVER.txt new file mode 100644 index 0000000000..19ace59402 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/MENUE_HOVER.txt @@ -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-FINAL/DOCS/de/PATCHES.txt b/0.2.1-FINAL/DOCS/de/PATCHES.txt new file mode 100644 index 0000000000..70dad90dd7 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/PATCHES.txt @@ -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-FINAL/DOCS/de/PATCH_320.txt b/0.2.1-FINAL/DOCS/de/PATCH_320.txt new file mode 100644 index 0000000000..fb57696807 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/PATCH_320.txt @@ -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-FINAL/DOCS/de/README.txt b/0.2.1-FINAL/DOCS/de/README.txt new file mode 100644 index 0000000000..ccef51a39d --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/README.txt @@ -0,0 +1,352 @@ +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 + +Auch sollten Sie meinen Bug-Tracker aufsuchen und dort Fehlermeldungen posten: + +http://bugs.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ü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 + Referal-Gutschrift (nur erste Ebene!) ein. + + * Referal-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 Referal-Ebenen koennen Sie noch nichts aendern / loeschen! + Loeschen von Referal-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 Referal-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-FINAL/DOCS/de/SECURITY.txt b/0.2.1-FINAL/DOCS/de/SECURITY.txt new file mode 100644 index 0000000000..007bc2673a --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/SECURITY.txt @@ -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-FINAL/DOCS/de/TEMPLATES.txt b/0.2.1-FINAL/DOCS/de/TEMPLATES.txt new file mode 100644 index 0000000000..39eca18e3c --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/TEMPLATES.txt @@ -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-FINAL/DOCS/de/THANK_YOU.txt b/0.2.1-FINAL/DOCS/de/THANK_YOU.txt new file mode 100644 index 0000000000..5e17dc516e --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/THANK_YOU.txt @@ -0,0 +1,52 @@ +======================= += 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! +- Meinem 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 Referals + 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) +- AndreasJung aus dem MXChange-Community Forum wegen zahlreicher Bugmeldungen. + (http://www.onlinewerbebombe.de) +- Der User profi-concept aus meinem Forum hat mir sehr viele gute Patches zur + Verfuegung gestellt (http://www.stelzi.net) +- Irgentjemand, den ich noch vergessen habe... + +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. + +Danke euch allen fuer die Unterstuetzung! + +Roland Haeder (webmaster@mxchange.org) diff --git a/0.2.1-FINAL/DOCS/de/TODO.txt b/0.2.1-FINAL/DOCS/de/TODO.txt new file mode 100644 index 0000000000..b9732b3c54 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/TODO.txt @@ -0,0 +1,29 @@ +============== += TODO-Liste = +============== + +[16.12.2008 14:40 Uhr]: + +--- OFFEN: --- +- Alle JavaScripte aus den HTML-Templates umlagern und per js.php?tag=xxx + aufrufen +- Die Datenbankspalten ext_has_css nach ext_css und id nach ext_id umbenennen +- Dokumentation erweitern +- Englische Uebersetzung komplettieren +- Mehr Datenbank-Schichten hinzufuegen, wie fuer ODBC/M$SQL/Oracle +- CSS-Klassen reduzieren und weiter vereinfachen +- Von TABLE auf DIV-Container umstellen +- AJAX einbinden +- Hoere auf, "unfreie" Software zu verwenden und trete meiner Community bei. +- Kaempft gegen Softwarepatente! Das ist Teufelszeug! + +--- ERLEDIGT: (alte TODO) --- + +- 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-FINAL/DOCS/de/UPGRADING.txt b/0.2.1-FINAL/DOCS/de/UPGRADING.txt new file mode 100644 index 0000000000..0aa51b7c3c --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/UPGRADING.txt @@ -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-FINAL/DOCS/de/cache/README.txt b/0.2.1-FINAL/DOCS/de/cache/README.txt new file mode 100644 index 0000000000..2ddeeeb8b7 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/cache/README.txt @@ -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-FINAL/DOCS/de/country/README.txt b/0.2.1-FINAL/DOCS/de/country/README.txt new file mode 100644 index 0000000000..24e4f79acb --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/country/README.txt @@ -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 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-FINAL/DOCS/de/country/countries-europe.sql b/0.2.1-FINAL/DOCS/de/country/countries-europe.sql new file mode 100644 index 0000000000..f6cc3ad58b --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/country/countries-europe.sql @@ -0,0 +1,36 @@ +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y'); diff --git a/0.2.1-FINAL/DOCS/de/country/countries-full.sql b/0.2.1-FINAL/DOCS/de/country/countries-full.sql new file mode 100644 index 0000000000..6e9c7ea8e0 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/country/countries-full.sql @@ -0,0 +1,257 @@ +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AC','Ascension','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AD','Andorra','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AE','United Arab Emirates','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AF','Afghanistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AG','Antigua and Barbuda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AI','Anguilla','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AL','Albania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AM','Armenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AN','Netherlands Antilles','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AO','Angola','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AQ','Antarctica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AR','Argentina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AS','American Samoa','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AU','Australia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AW','Aruba','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AZ','Azerbaijan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BB','Barbados','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BD','Bangladesh','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BF','Burkina Faso','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BH','Bahrain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BI','Burundi','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BJ','Benin','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BM','Bermuda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BN','Brunei Darussalam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BO','Bolivia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BR','Brazil','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BS','Bahamas','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BT','Bhutan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BV','Bouvet','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BW','Botswana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BY','Belarus','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BZ','Belize','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CA','Canada','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CC','Cocos','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CD','Congo Democratc Repuplic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CF','Central African Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CG','Congo Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CI','Cote D Ivoire','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CK','Cook Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CL','Chile','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CM','Cameroon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CN','China','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CO','Colombia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CR','Costa Rica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CS','Serbia and Montenegro','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CT','Canton and Enderbury','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CU','Cuba','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CV','Cape Verde','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CX','Christmas Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CY','Cyprus','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DJ','Djibuti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DM','Dominica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DO','Dominican Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DZ','Algeria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EC','Ecuador','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EG','Egypt','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EH','Western Sahara','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ER','Eritrea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ET','Ethiopia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FJ','Fiji','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FK','Falkland Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FM','Micronesia Fed. S.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FO','Faroe Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FR','Frabce','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GA','Gabon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GD','Grenada','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GE','Georgia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GF','French Guiana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GG','Guernsey','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GH','Ghana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GI','Gibraltar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GL','Greenland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GM','Gambia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GN','Guinea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GP','Guadeloupe','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GQ','Guinea Equatorial','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GS','South Georgia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GT','Guatemala','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GU','Guam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GW','Guinea-Bissau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GY','Guyana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HK','Hong Kong','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HM','Heard- and MC Donald Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HN','Honduras','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HT','Haiti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ID','Indonesia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IL','Israel','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IM','Isle of Man','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IN','India','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IO','British Indian O.T.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IQ','Iraq','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IR','Iran Islamic Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JE','Jersey Bailwick','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JM','Jamaica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JO','Jordan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JP','Japan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JT','Johnston Atoll','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KE','Kenya','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KG','Kyrgyzstan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KH','Cambodia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KI','Kiribati','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KM','Comoros','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KN','Saint Kitts and Nevis','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KP','Korea Democratic P. Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KR','Korea Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KW','Kuwait','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KY','Cayman Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KZ','Kazakhstan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LA','Lao People Democratic Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LB','Lebanon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LC','St. Lucia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LK','Sri Lanka','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LR','Liberia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LS','Lesotho','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LT','Lithuania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LV','Latvia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LY','Libyan Arab Jamahiriya','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MA','Morocco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MD','Moldova Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MG','Madagascar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MH','Marshall Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MI','Midway Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MK','Macedonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ML','Mali','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MM','Myanmar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MN','Mongolia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MO','Macau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MP','Northern Mariana Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MQ','Martinique','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MR','Mauritania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MS','Montserat','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MT','Malta','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MU','Mauritius','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MV','Maldives','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MW','Malawi','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MX','Mexico','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MY','Malaysia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MZ','Mozambique','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NA','Namibia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NC','New Caledonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NE','Niger','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NF','Norfolk Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NG','Nigeria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NI','Nicaragua','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NP','Nepal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NQ','Dronning Mauds Land','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NR','Nauru','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NU','Niue','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('OM','Oman','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PA','Panama','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PE','Peru','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PF','French Polynesia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PG','Papua New Guinea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PH','Philippines','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PK','Parkistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PM','St. Pierre and Miquelon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PN','Pitcairn Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PR','Puerto Rico','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Palestian Authority','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Gaza Strip','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','West Bank','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PW','Palau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PY','Paraguay','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('QA','Qatar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RE','Reunion','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RU','Russian Federation','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RW','Rwanda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SA','Saudi Arabia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SB','Solomon Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SC','Seychelles','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SD','Sudan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SG','Singapore','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SH','St. Helena','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SJ','Svalbard and Jan Mayen','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SL','Sierra Leone','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SM','San Marino','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SN','Senegal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SO','Somalia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SR','Suriname','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ST','Sao Tome and Principe','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SV','El Salvador','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SY','Syrian Arab Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SZ','Swaziland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TA','Tahiti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TC','Turks and Caicos Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TD','Chad','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TF','French Southern Ter.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TG','Togo','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TH','Thailand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TJ','Tajikistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TK','Ttokelau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TM','Turkmenistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TN','Tunisia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TO','Tonga','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TP','East Timor','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TT','Trinidad and Tobago','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TV','Tuvalu','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TW','Taiwan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TZ','Tanzania U. Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UA','Ukraine','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UG','Uganda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UM','U.S. Minor Outlying Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('US','United States','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UY','Uruguay','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UZ','Uzbekistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Vatican City State','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Holy See','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VC','St. Vincent and Grenadines','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VE','Venezuela','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VG','Virgin Iland (British)','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VI','Virgin Iland (U.S.)','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VN','Viet Nam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VU','Vanuatu','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WF','Wallis anf Futuna Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WK','Wake Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WS','Samoa West','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YE','Yemen','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YT','Mayotte','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZA','South Africa','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZM','Zambia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZW','Zimbabwe','Y'); diff --git a/0.2.1-FINAL/DOCS/de/country/countries-sorted.sql b/0.2.1-FINAL/DOCS/de/country/countries-sorted.sql new file mode 100644 index 0000000000..85c0b1aa7b --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/country/countries-sorted.sql @@ -0,0 +1,257 @@ +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CR','Costa Rica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FR','Frabce','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RU','Russian Federation','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AC','Ascension','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AD','Andorra','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AE','United Arab Emirates','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AF','Afghanistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AG','Antigua and Barbuda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AI','Anguilla','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AL','Albania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AM','Armenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AN','Netherlands Antilles','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AO','Angola','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AQ','Antarctica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AR','Argentina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AS','American Samoa','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AU','Australia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AW','Aruba','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AZ','Azerbaijan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BB','Barbados','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BD','Bangladesh','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BF','Burkina Faso','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BH','Bahrain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BI','Burundi','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BJ','Benin','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BM','Bermuda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BN','Brunei Darussalam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BO','Bolivia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BR','Brazil','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BS','Bahamas','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BT','Bhutan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BV','Bouvet','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BW','Botswana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BY','Belarus','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BZ','Belize','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CA','Canada','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CC','Cocos','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CD','Congo Democratc Repuplic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CF','Central African Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CG','Congo Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CI','Cote D Ivoire','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CK','Cook Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CL','Chile','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CM','Cameroon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CN','China','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CO','Colombia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CS','Serbia and Montenegro','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CT','Canton and Enderbury','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CU','Cuba','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CV','Cape Verde','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CX','Christmas Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CY','Cyprus','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DJ','Djibuti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DM','Dominica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DO','Dominican Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DZ','Algeria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EC','Ecuador','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EG','Egypt','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EH','Western Sahara','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ER','Eritrea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ET','Ethiopia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FJ','Fiji','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FK','Falkland Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FM','Micronesia Fed. S.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FO','Faroe Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GA','Gabon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GD','Grenada','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GE','Georgia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GF','French Guiana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GG','Guernsey','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GH','Ghana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GI','Gibraltar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GL','Greenland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GM','Gambia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GN','Guinea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GP','Guadeloupe','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GQ','Guinea Equatorial','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GS','South Georgia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GT','Guatemala','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GU','Guam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GW','Guinea-Bissau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GY','Guyana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HK','Hong Kong','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HM','Heard- and MC Donald Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HN','Honduras','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HT','Haiti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ID','Indonesia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IL','Israel','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IM','Isle of Man','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IN','India','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IO','British Indian O.T.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IQ','Iraq','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IR','Iran Islamic Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JE','Jersey Bailwick','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JM','Jamaica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JO','Jordan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JP','Japan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JT','Johnston Atoll','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KE','Kenya','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KG','Kyrgyzstan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KH','Cambodia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KI','Kiribati','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KM','Comoros','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KN','Saint Kitts and Nevis','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KP','Korea Democratic P. Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KR','Korea Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KW','Kuwait','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KY','Cayman Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KZ','Kazakhstan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LA','Lao People Democratic Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LB','Lebanon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LC','St. Lucia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LK','Sri Lanka','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LR','Liberia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LS','Lesotho','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LT','Lithuania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LV','Latvia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LY','Libyan Arab Jamahiriya','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MA','Morocco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MD','Moldova Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MG','Madagascar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MH','Marshall Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MI','Midway Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MK','Macedonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ML','Mali','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MM','Myanmar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MN','Mongolia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MO','Macau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MP','Northern Mariana Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MQ','Martinique','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MR','Mauritania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MS','Montserat','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MT','Malta','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MU','Mauritius','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MV','Maldives','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MW','Malawi','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MX','Mexico','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MY','Malaysia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MZ','Mozambique','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NA','Namibia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NC','New Caledonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NE','Niger','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NF','Norfolk Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NG','Nigeria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NI','Nicaragua','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NP','Nepal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NQ','Dronning Mauds Land','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NR','Nauru','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NU','Niue','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('OM','Oman','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PA','Panama','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PE','Peru','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PF','French Polynesia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PG','Papua New Guinea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PH','Philippines','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PK','Parkistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PM','St. Pierre and Miquelon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PN','Pitcairn Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PR','Puerto Rico','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Palestian Authority','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Gaza Strip','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','West Bank','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PW','Palau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PY','Paraguay','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('QA','Qatar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RE','Reunion','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RW','Rwanda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SA','Saudi Arabia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SB','Solomon Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SC','Seychelles','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SD','Sudan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SG','Singapore','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SH','St. Helena','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SJ','Svalbard and Jan Mayen','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SL','Sierra Leone','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SM','San Marino','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SN','Senegal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SO','Somalia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SR','Suriname','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ST','Sao Tome and Principe','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SV','El Salvador','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SY','Syrian Arab Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SZ','Swaziland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TA','Tahiti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TC','Turks and Caicos Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TD','Chad','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TF','French Southern Ter.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TG','Togo','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TH','Thailand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TJ','Tajikistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TK','Ttokelau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TM','Turkmenistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TN','Tunisia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TO','Tonga','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TP','East Timor','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TT','Trinidad and Tobago','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TV','Tuvalu','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TW','Taiwan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TZ','Tanzania U. Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UA','Ukraine','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UG','Uganda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UM','U.S. Minor Outlying Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('US','United States','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UY','Uruguay','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UZ','Uzbekistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Vatican City State','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Holy See','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VC','St. Vincent and Grenadines','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VE','Venezuela','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VG','Virgin Iland (British)','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VI','Virgin Iland (U.S.)','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VN','Viet Nam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VU','Vanuatu','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WF','Wallis anf Futuna Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WK','Wake Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WS','Samoa West','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YE','Yemen','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YT','Mayotte','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZA','South Africa','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZM','Zambia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZW','Zimbabwe','Y'); diff --git a/0.2.1-FINAL/DOCS/de/doubler/README.txt b/0.2.1-FINAL/DOCS/de/doubler/README.txt new file mode 100644 index 0000000000..5a745a09cd --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/doubler/README.txt @@ -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-FINAL/DOCS/de/engine/README.txt b/0.2.1-FINAL/DOCS/de/engine/README.txt new file mode 100644 index 0000000000..08f061e49f --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/engine/README.txt @@ -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-FINAL/DOCS/de/promoter.txt b/0.2.1-FINAL/DOCS/de/promoter.txt new file mode 100644 index 0000000000..5e17b83fbd --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/promoter.txt @@ -0,0 +1 @@ +[GELEERT] \ No newline at end of file diff --git a/0.2.1-FINAL/DOCS/de/rallye/README.txt b/0.2.1-FINAL/DOCS/de/rallye/README.txt new file mode 100644 index 0000000000..20fb1c512c --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/rallye/README.txt @@ -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-FINAL/DOCS/de/rewrite/.htaccess b/0.2.1-FINAL/DOCS/de/rewrite/.htaccess new file mode 100644 index 0000000000..b5b7925479 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/rewrite/.htaccess @@ -0,0 +1,5 @@ +RewriteEngine On + +RewriteRule ^cms/(.*)/wht/(.*)$ modules.php?module=$1&what=$2 [L] +RewriteRule ^cms/(.*)/act/(.*)$ modules.php?module=$1&action=$2 [L] +RewriteRule ^cms/(.*)$ modules.php?module=$1 [L] diff --git a/0.2.1-FINAL/DOCS/de/rewrite/README.txt b/0.2.1-FINAL/DOCS/de/rewrite/README.txt new file mode 100644 index 0000000000..2c49a4d56e --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/rewrite/README.txt @@ -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-FINAL/DOCS/de/rewrite/README_htaccess.de b/0.2.1-FINAL/DOCS/de/rewrite/README_htaccess.de new file mode 100644 index 0000000000..2c49a4d56e --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/rewrite/README_htaccess.de @@ -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-FINAL/DOCS/de/task/README.txt b/0.2.1-FINAL/DOCS/de/task/README.txt new file mode 100644 index 0000000000..e7b79475ec --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/task/README.txt @@ -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-FINAL/DOCS/de/themes/README.txt b/0.2.1-FINAL/DOCS/de/themes/README.txt new file mode 100644 index 0000000000..beff0c06c1 --- /dev/null +++ b/0.2.1-FINAL/DOCS/de/themes/README.txt @@ -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-FINAL/DOCS/en/AUTHORS.txt b/0.2.1-FINAL/DOCS/en/AUTHORS.txt new file mode 100644 index 0000000000..4ddb89d2e5 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/AUTHORS.txt @@ -0,0 +1,37 @@ +[--------------------------------------] +[-- All main authors of this script: --] +[--------------------------------------] + +- Roland Haeder + + (Project leader, Webmaster, main coder) + +[----------------------------------------] +[-- Contributors (code, designs, etc.) --] +[----------------------------------------] + +- Mr. X + + (requested to be listed... ;-) ) + +[----------------------------------------] +[-- Inactive developers / contributors --] +[----------------------------------------] + +- Robert Niedziela + + (secondary programmer, some bugfixes and many improvements: + other settings in admin menu, delete emails, media data, + email archive email details) + +- Lars Moehlenbruch + + (Better HTML template support, list referals of a member) + +- Erol Ilkan + + (New coder, some bugfixes, SQL fixes) + +- Lothar Mengens + + (Has contributed an SQL file with country codes) diff --git a/0.2.1-FINAL/DOCS/en/CHANGES.txt b/0.2.1-FINAL/DOCS/en/CHANGES.txt new file mode 100644 index 0000000000..7777c33a2c --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/CHANGES.txt @@ -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-FINAL/DOCS/en/CSS-PATCHES.txt b/0.2.1-FINAL/DOCS/en/CSS-PATCHES.txt new file mode 100644 index 0000000000..ea6931e5aa --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/CSS-PATCHES.txt @@ -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-FINAL/DOCS/en/CSS-PATCHES_05092004.txt b/0.2.1-FINAL/DOCS/en/CSS-PATCHES_05092004.txt new file mode 100644 index 0000000000..ec0c4a416e --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/CSS-PATCHES_05092004.txt @@ -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: --] +
+ +[-- COMMENT: --] +If you want to have back the small dot (·) 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: --] +·  + +[-- OPEN: --] +templates/guest_menu_row.tpl.de + +[-- SEARCH FOR: --] +$content + +[-- ADD BEFORE: --] +·  + +[-- CLOSE/SAVE FILES --] diff --git a/0.2.1-FINAL/DOCS/en/DESIGNING.txt b/0.2.1-FINAL/DOCS/en/DESIGNING.txt new file mode 100644 index 0000000000..979146dc91 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/DESIGNING.txt @@ -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-FINAL/DOCS/en/EXTENSIONS.txt b/0.2.1-FINAL/DOCS/en/EXTENSIONS.txt new file mode 100644 index 0000000000..63a933e790 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/EXTENSIONS.txt @@ -0,0 +1,5 @@ +Not yet translated! :( + +http://forum.mxchange.org - http://bugs.mxchange.org + +[EOF] diff --git a/0.2.1-FINAL/DOCS/en/LICENSE.txt b/0.2.1-FINAL/DOCS/en/LICENSE.txt new file mode 100644 index 0000000000..a3fb4dbe1e --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/LICENSE.txt @@ -0,0 +1,3 @@ +Please read the license file DOCS/LICENSE.txt for details. + +[EOF] diff --git a/0.2.1-FINAL/DOCS/en/MENUE_HOVER.txt b/0.2.1-FINAL/DOCS/en/MENUE_HOVER.txt new file mode 100644 index 0000000000..3c9aaa7b9a --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/MENUE_HOVER.txt @@ -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-FINAL/DOCS/en/PATCHES.txt b/0.2.1-FINAL/DOCS/en/PATCHES.txt new file mode 100644 index 0000000000..d1cd3f30f4 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/PATCHES.txt @@ -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-FINAL/DOCS/en/PATCH_320.txt b/0.2.1-FINAL/DOCS/en/PATCH_320.txt new file mode 100644 index 0000000000..6e10d1a3de --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/PATCH_320.txt @@ -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-FINAL/DOCS/en/README.txt b/0.2.1-FINAL/DOCS/en/README.txt new file mode 100644 index 0000000000..cf8226ebb3 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/README.txt @@ -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-FINAL/DOCS/en/SECURITY.txt b/0.2.1-FINAL/DOCS/en/SECURITY.txt new file mode 100644 index 0000000000..3bee3cc7e2 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/SECURITY.txt @@ -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-FINAL/DOCS/en/TEMPLATES.txt b/0.2.1-FINAL/DOCS/en/TEMPLATES.txt new file mode 100644 index 0000000000..36843c37dd --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/TEMPLATES.txt @@ -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-FINAL/DOCS/en/THANK_YOU.txt b/0.2.1-FINAL/DOCS/en/THANK_YOU.txt new file mode 100644 index 0000000000..5973b3e630 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/THANK_YOU.txt @@ -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 referal 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-FINAL/DOCS/en/TODO.txt b/0.2.1-FINAL/DOCS/en/TODO.txt new file mode 100644 index 0000000000..481a7c11e9 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/TODO.txt @@ -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-FINAL/DOCS/en/UPGRADING.txt b/0.2.1-FINAL/DOCS/en/UPGRADING.txt new file mode 100644 index 0000000000..bb937b9ca3 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/UPGRADING.txt @@ -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-FINAL/DOCS/en/cache/README.txt b/0.2.1-FINAL/DOCS/en/cache/README.txt new file mode 100644 index 0000000000..b154de7d8d --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/cache/README.txt @@ -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-FINAL/DOCS/en/country/README.txt b/0.2.1-FINAL/DOCS/en/country/README.txt new file mode 100644 index 0000000000..24e4f79acb --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/country/README.txt @@ -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 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-FINAL/DOCS/en/country/countries-europe.sql b/0.2.1-FINAL/DOCS/en/country/countries-europe.sql new file mode 100644 index 0000000000..f6cc3ad58b --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/country/countries-europe.sql @@ -0,0 +1,36 @@ +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y'); diff --git a/0.2.1-FINAL/DOCS/en/country/countries-full.sql b/0.2.1-FINAL/DOCS/en/country/countries-full.sql new file mode 100644 index 0000000000..6e9c7ea8e0 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/country/countries-full.sql @@ -0,0 +1,257 @@ +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AC','Ascension','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AD','Andorra','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AE','United Arab Emirates','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AF','Afghanistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AG','Antigua and Barbuda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AI','Anguilla','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AL','Albania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AM','Armenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AN','Netherlands Antilles','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AO','Angola','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AQ','Antarctica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AR','Argentina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AS','American Samoa','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AU','Australia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AW','Aruba','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AZ','Azerbaijan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BB','Barbados','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BD','Bangladesh','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BF','Burkina Faso','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BH','Bahrain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BI','Burundi','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BJ','Benin','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BM','Bermuda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BN','Brunei Darussalam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BO','Bolivia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BR','Brazil','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BS','Bahamas','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BT','Bhutan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BV','Bouvet','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BW','Botswana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BY','Belarus','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BZ','Belize','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CA','Canada','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CC','Cocos','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CD','Congo Democratc Repuplic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CF','Central African Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CG','Congo Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CI','Cote D Ivoire','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CK','Cook Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CL','Chile','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CM','Cameroon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CN','China','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CO','Colombia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CR','Costa Rica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CS','Serbia and Montenegro','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CT','Canton and Enderbury','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CU','Cuba','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CV','Cape Verde','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CX','Christmas Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CY','Cyprus','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DJ','Djibuti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DM','Dominica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DO','Dominican Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DZ','Algeria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EC','Ecuador','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EG','Egypt','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EH','Western Sahara','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ER','Eritrea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ET','Ethiopia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FJ','Fiji','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FK','Falkland Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FM','Micronesia Fed. S.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FO','Faroe Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FR','Frabce','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GA','Gabon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GD','Grenada','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GE','Georgia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GF','French Guiana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GG','Guernsey','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GH','Ghana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GI','Gibraltar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GL','Greenland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GM','Gambia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GN','Guinea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GP','Guadeloupe','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GQ','Guinea Equatorial','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GS','South Georgia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GT','Guatemala','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GU','Guam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GW','Guinea-Bissau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GY','Guyana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HK','Hong Kong','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HM','Heard- and MC Donald Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HN','Honduras','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HT','Haiti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ID','Indonesia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IL','Israel','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IM','Isle of Man','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IN','India','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IO','British Indian O.T.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IQ','Iraq','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IR','Iran Islamic Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JE','Jersey Bailwick','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JM','Jamaica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JO','Jordan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JP','Japan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JT','Johnston Atoll','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KE','Kenya','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KG','Kyrgyzstan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KH','Cambodia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KI','Kiribati','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KM','Comoros','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KN','Saint Kitts and Nevis','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KP','Korea Democratic P. Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KR','Korea Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KW','Kuwait','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KY','Cayman Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KZ','Kazakhstan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LA','Lao People Democratic Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LB','Lebanon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LC','St. Lucia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LK','Sri Lanka','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LR','Liberia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LS','Lesotho','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LT','Lithuania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LV','Latvia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LY','Libyan Arab Jamahiriya','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MA','Morocco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MD','Moldova Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MG','Madagascar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MH','Marshall Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MI','Midway Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MK','Macedonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ML','Mali','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MM','Myanmar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MN','Mongolia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MO','Macau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MP','Northern Mariana Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MQ','Martinique','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MR','Mauritania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MS','Montserat','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MT','Malta','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MU','Mauritius','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MV','Maldives','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MW','Malawi','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MX','Mexico','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MY','Malaysia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MZ','Mozambique','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NA','Namibia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NC','New Caledonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NE','Niger','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NF','Norfolk Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NG','Nigeria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NI','Nicaragua','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NP','Nepal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NQ','Dronning Mauds Land','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NR','Nauru','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NU','Niue','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('OM','Oman','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PA','Panama','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PE','Peru','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PF','French Polynesia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PG','Papua New Guinea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PH','Philippines','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PK','Parkistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PM','St. Pierre and Miquelon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PN','Pitcairn Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PR','Puerto Rico','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Palestian Authority','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Gaza Strip','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','West Bank','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PW','Palau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PY','Paraguay','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('QA','Qatar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RE','Reunion','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RU','Russian Federation','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RW','Rwanda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SA','Saudi Arabia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SB','Solomon Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SC','Seychelles','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SD','Sudan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SG','Singapore','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SH','St. Helena','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SJ','Svalbard and Jan Mayen','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SL','Sierra Leone','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SM','San Marino','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SN','Senegal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SO','Somalia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SR','Suriname','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ST','Sao Tome and Principe','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SV','El Salvador','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SY','Syrian Arab Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SZ','Swaziland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TA','Tahiti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TC','Turks and Caicos Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TD','Chad','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TF','French Southern Ter.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TG','Togo','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TH','Thailand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TJ','Tajikistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TK','Ttokelau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TM','Turkmenistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TN','Tunisia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TO','Tonga','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TP','East Timor','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TT','Trinidad and Tobago','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TV','Tuvalu','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TW','Taiwan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TZ','Tanzania U. Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UA','Ukraine','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UG','Uganda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UM','U.S. Minor Outlying Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('US','United States','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UY','Uruguay','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UZ','Uzbekistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Vatican City State','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Holy See','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VC','St. Vincent and Grenadines','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VE','Venezuela','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VG','Virgin Iland (British)','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VI','Virgin Iland (U.S.)','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VN','Viet Nam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VU','Vanuatu','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WF','Wallis anf Futuna Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WK','Wake Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WS','Samoa West','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YE','Yemen','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YT','Mayotte','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZA','South Africa','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZM','Zambia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZW','Zimbabwe','Y'); diff --git a/0.2.1-FINAL/DOCS/en/country/countries-sorted.sql b/0.2.1-FINAL/DOCS/en/country/countries-sorted.sql new file mode 100644 index 0000000000..85c0b1aa7b --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/country/countries-sorted.sql @@ -0,0 +1,257 @@ +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AT','Austria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BE','Belgium','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CH','Switzerland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CR','Costa Rica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CZ','Czech Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DK','Denmark','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ES','Spain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FI','Finland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FR','Frabce','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','United Kingdom','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','England','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Great Britain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Scotland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GB','Channel Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GR','Greece','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HR','Croatia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HU','Hungary','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IE','Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IF','Northern Ireland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IS','Iceland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IT','Italy','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LI','Liechtenstein','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LU','Luxembourg','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MC','Monaco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NL','Netherlands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NO','Norway','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PL','Poland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RO','Romania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RU','Russian Federation','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SE','Sweden','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SI','Slovenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SK','Slovakia Slovak Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TR','Turkey','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AC','Ascension','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AD','Andorra','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AE','United Arab Emirates','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AF','Afghanistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AG','Antigua and Barbuda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AI','Anguilla','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AL','Albania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AM','Armenia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AN','Netherlands Antilles','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AO','Angola','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AQ','Antarctica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AR','Argentina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AS','American Samoa','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AU','Australia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AW','Aruba','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('AZ','Azerbaijan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BA','Bosnia and Herzegovina','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BB','Barbados','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BD','Bangladesh','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BF','Burkina Faso','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BG','Bulgaria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BH','Bahrain','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BI','Burundi','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BJ','Benin','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BM','Bermuda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BN','Brunei Darussalam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BO','Bolivia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BR','Brazil','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BS','Bahamas','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BT','Bhutan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BV','Bouvet','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BW','Botswana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BY','Belarus','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('BZ','Belize','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CA','Canada','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CC','Cocos','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CD','Congo Democratc Repuplic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CF','Central African Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CG','Congo Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CI','Cote D Ivoire','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CK','Cook Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CL','Chile','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CM','Cameroon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CN','China','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CO','Colombia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CS','Serbia and Montenegro','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CT','Canton and Enderbury','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CU','Cuba','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CV','Cape Verde','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CX','Christmas Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('CY','Cyprus','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DJ','Djibuti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DM','Dominica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DO','Dominican Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('DZ','Algeria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EC','Ecuador','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EE','Estonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EG','Egypt','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EH','Western Sahara','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ER','Eritrea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ET','Ethiopia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('EU','European Union','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FJ','Fiji','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FK','Falkland Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FM','Micronesia Fed. S.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('FO','Faroe Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GA','Gabon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GD','Grenada','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GE','Georgia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GF','French Guiana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GG','Guernsey','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GH','Ghana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GI','Gibraltar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GL','Greenland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GM','Gambia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GN','Guinea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GP','Guadeloupe','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GQ','Guinea Equatorial','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GS','South Georgia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GT','Guatemala','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GU','Guam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GW','Guinea-Bissau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('GY','Guyana','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HK','Hong Kong','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HM','Heard- and MC Donald Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HN','Honduras','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('HT','Haiti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ID','Indonesia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IL','Israel','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IM','Isle of Man','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IN','India','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IO','British Indian O.T.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IQ','Iraq','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('IR','Iran Islamic Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JE','Jersey Bailwick','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JM','Jamaica','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JO','Jordan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JP','Japan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('JT','Johnston Atoll','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KE','Kenya','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KG','Kyrgyzstan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KH','Cambodia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KI','Kiribati','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KM','Comoros','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KN','Saint Kitts and Nevis','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KP','Korea Democratic P. Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KR','Korea Republic','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KW','Kuwait','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KY','Cayman Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('KZ','Kazakhstan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LA','Lao People Democratic Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LB','Lebanon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LC','St. Lucia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LK','Sri Lanka','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LR','Liberia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LS','Lesotho','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LT','Lithuania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LV','Latvia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('LY','Libyan Arab Jamahiriya','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MA','Morocco','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MD','Moldova Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MG','Madagascar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MH','Marshall Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MI','Midway Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MK','Macedonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ML','Mali','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MM','Myanmar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MN','Mongolia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MO','Macau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MP','Northern Mariana Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MQ','Martinique','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MR','Mauritania','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MS','Montserat','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MT','Malta','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MU','Mauritius','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MV','Maldives','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MW','Malawi','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MX','Mexico','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MY','Malaysia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('MZ','Mozambique','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NA','Namibia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NC','New Caledonia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NE','Niger','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NF','Norfolk Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NG','Nigeria','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NI','Nicaragua','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NP','Nepal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NQ','Dronning Mauds Land','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NR','Nauru','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NU','Niue','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('NZ','New Zealand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('OM','Oman','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PA','Panama','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PE','Peru','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PF','French Polynesia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PG','Papua New Guinea','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PH','Philippines','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PK','Parkistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PM','St. Pierre and Miquelon','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PN','Pitcairn Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PR','Puerto Rico','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Palestian Authority','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','Gaza Strip','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PS','West Bank','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PT','Portugal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PW','Palau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('PY','Paraguay','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('QA','Qatar','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RE','Reunion','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('RW','Rwanda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SA','Saudi Arabia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SB','Solomon Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SC','Seychelles','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SD','Sudan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SG','Singapore','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SH','St. Helena','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SJ','Svalbard and Jan Mayen','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SL','Sierra Leone','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SM','San Marino','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SN','Senegal','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SO','Somalia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SR','Suriname','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ST','Sao Tome and Principe','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SV','El Salvador','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SY','Syrian Arab Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('SZ','Swaziland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TA','Tahiti','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TC','Turks and Caicos Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TD','Chad','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TF','French Southern Ter.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TG','Togo','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TH','Thailand','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TJ','Tajikistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TK','Ttokelau','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TM','Turkmenistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TN','Tunisia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TO','Tonga','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TP','East Timor','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TT','Trinidad and Tobago','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TV','Tuvalu','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TW','Taiwan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('TZ','Tanzania U. Rep.','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UA','Ukraine','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UG','Uganda','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UM','U.S. Minor Outlying Ilands','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('US','United States','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UY','Uruguay','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('UZ','Uzbekistan','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Vatican City State','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VA','Holy See','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VC','St. Vincent and Grenadines','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VE','Venezuela','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VG','Virgin Iland (British)','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VI','Virgin Iland (U.S.)','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VN','Viet Nam','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('VU','Vanuatu','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WF','Wallis anf Futuna Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WK','Wake Iland','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('WS','Samoa West','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YE','Yemen','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('YT','Mayotte','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZA','South Africa','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZM','Zambia','Y'); +INSERT INTO `mxchange_countries` (`code`, `descr`, `is_active`) VALUES ('ZW','Zimbabwe','Y'); diff --git a/0.2.1-FINAL/DOCS/en/doubler/README.txt b/0.2.1-FINAL/DOCS/en/doubler/README.txt new file mode 100644 index 0000000000..5a745a09cd --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/doubler/README.txt @@ -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-FINAL/DOCS/en/engine/README.txt b/0.2.1-FINAL/DOCS/en/engine/README.txt new file mode 100644 index 0000000000..08f061e49f --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/engine/README.txt @@ -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-FINAL/DOCS/en/promoter.txt b/0.2.1-FINAL/DOCS/en/promoter.txt new file mode 100644 index 0000000000..463049555c --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/promoter.txt @@ -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-FINAL/DOCS/en/rallye/README.txt b/0.2.1-FINAL/DOCS/en/rallye/README.txt new file mode 100644 index 0000000000..20fb1c512c --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/rallye/README.txt @@ -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-FINAL/DOCS/en/rewrite/.htaccess b/0.2.1-FINAL/DOCS/en/rewrite/.htaccess new file mode 100644 index 0000000000..114ce6623f --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/rewrite/.htaccess @@ -0,0 +1,5 @@ +RewriteEngine On + +RewriteRule ^cms/(.*)/wht/(.*)$ modules.php?module=$1&what=$2 [L] +RewriteRule ^cms/(.*)/act/(.*)$ modules.php?module=$1&action=$2 [L] +RewriteRule ^cms/(.*)$ modules.php?module=$1 [L] diff --git a/0.2.1-FINAL/DOCS/en/rewrite/README.txt b/0.2.1-FINAL/DOCS/en/rewrite/README.txt new file mode 100644 index 0000000000..2c49a4d56e --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/rewrite/README.txt @@ -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-FINAL/DOCS/en/rewrite/README_htaccess.de b/0.2.1-FINAL/DOCS/en/rewrite/README_htaccess.de new file mode 100644 index 0000000000..2c49a4d56e --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/rewrite/README_htaccess.de @@ -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-FINAL/DOCS/en/task/README.txt b/0.2.1-FINAL/DOCS/en/task/README.txt new file mode 100644 index 0000000000..e7b79475ec --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/task/README.txt @@ -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-FINAL/DOCS/en/themes/README.txt b/0.2.1-FINAL/DOCS/en/themes/README.txt new file mode 100644 index 0000000000..eaac1a96a2 --- /dev/null +++ b/0.2.1-FINAL/DOCS/en/themes/README.txt @@ -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-FINAL/DOCS/tpl-validator.php b/0.2.1-FINAL/DOCS/tpl-validator.php new file mode 100644 index 0000000000..5576f66e07 --- /dev/null +++ b/0.2.1-FINAL/DOCS/tpl-validator.php @@ -0,0 +1,64 @@ + [--write]\n\n"; + echo "Validates a template against the DOM model. Use --write with caution!\n"; + exit; +} + +$doc = new DOMDocument(); +$doc->formatOutput = true; +$doc->preserveWhiteSpace = false; +$doc->encoding = "utf-8"; +$doc->xmlVersion = "1.1"; +$doc->loadHTMLFile($_SERVER['argv'][1]); + +$data = $doc->saveHTML(); +$data = str_replace("
", "
\n", $data); +$data = str_replace("\n\n", "\n", $data); + +$array = explode("\n", $data); +array_shift($array); +array_shift($array); +unset($array[count($array) - 1]); +unset($array[count($array) - 1]); + +$data = implode("\n", $array)."\n"; + +if (strtolower($_SERVER['arv'][2]) == "--write") { + echo "Writing document...\n"; + file_put_contents($_SERVER['argv'][1], $data); +} + +?> diff --git a/0.2.1-FINAL/DOCS/validator.sh b/0.2.1-FINAL/DOCS/validator.sh new file mode 100644 index 0000000000..95539002a0 --- /dev/null +++ b/0.2.1-FINAL/DOCS/validator.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +find templates/de/html/ -type f -name *.tpl -exec php DOCS/tpl-validator.php {} \; | grep Warning | cut -d "/" -f 1-5 | grep -v "error parsing attribute name">warnings.log diff --git a/0.2.1-FINAL/admin.php b/0.2.1-FINAL/admin.php new file mode 100644 index 0000000000..5a04fc8eb9 --- /dev/null +++ b/0.2.1-FINAL/admin.php @@ -0,0 +1,58 @@ + diff --git a/0.2.1-FINAL/agb.php b/0.2.1-FINAL/agb.php new file mode 100644 index 0000000000..7f020fcd60 --- /dev/null +++ b/0.2.1-FINAL/agb.php @@ -0,0 +1,60 @@ + diff --git a/0.2.1-FINAL/beg.php b/0.2.1-FINAL/beg.php new file mode 100644 index 0000000000..531e8dbf71 --- /dev/null +++ b/0.2.1-FINAL/beg.php @@ -0,0 +1,246 @@ + 0) && (getConfig('beg_uid') != $uid)) { + // Update counter + SQL_QUERY_ESC("UPDATE `"._MYSQL_PREFIX."_user_data` SET beg_clicks=beg_clicks+1 WHERE userid=%s 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 > (UNIX_TIMESTAMP() - ".getConfig('beg_timeout').") OR (timeout > (UNIX_TIMESTAMP() - ".getConfig('beg_uid_timeout').") AND userid=%s)) AND (remote_ip='%s' OR sid='%s') LIMIT 1", + array($uid, GET_REMOTE_ADDR(), session_id()), __FILE__, __LINE__); + + // Entry not found, points set and not logged in? + if (((SQL_NUMROWS($result) == 0) || (IS_ADMIN())) && ($points > 0) && (!IS_MEMBER()) && (getConfig('beg_pay_mode') == "NONE")) { + + // Admin is testing? + 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! + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_beg_ips (userid, remote_ip,sid, timeout) VALUES ('%s','%s','%s', UNIX_TIMESTAMP())", + array($uid, GET_REMOTE_ADDR(), session_id()), __FILE__, __LINE__); + + // Was is successfull? + if (SQL_AFFECTEDROWS() == 1) { + // Okay! + $pay = true; + } // END - if + } else { + // Is admin! + $pay = true; + } + + // Pay points? + if ($pay) { + // Add points to user or begging rallye account + if (BEG_ADD_POINTS($uid, $points)) { + // Set "done" message + define('__BEG_MSG', LOAD_TEMPLATE("beg_done", true)); + } else { + // Error! + define('__BEG_MSG', LOAD_TEMPLATE("beg_failed", true)); + } + } else { + // Error! + define('__BEG_MSG', LOAD_TEMPLATE("beg_failed", true)); + } + } elseif (IS_MEMBER()) { + // Logged in user found! + define('__BEG_MSG', LOAD_TEMPLATE("beg_login", true)); + } elseif (getConfig('beg_pay_mode') != "NONE") { // Other pay-mode active! + // Prepare content for template + $content = array( + 'clicks' => __BEG_CLICKS, + 'points' => __BEG_POINTS, + 'uid' => __BEG_UID + ); + + // Load message template depending on pay-mode + define('__BEG_MSG', LOAD_TEMPLATE("beg_pay_mode_".strtolower(getConfig('beg_pay_mode')), true, $content)); + $pay = true; + } else { + // Clicked received while reload lock is active + define('__BEG_MSG', LOAD_TEMPLATE("beg_failed", true)); + } + + // Free memory + SQL_FREERESULT($result); + + // Include header + require_once(PATH."inc/header.php"); + + // Load final template + LOAD_TEMPLATE("beg_link"); + + // Tracker code enabled? (We don't track users here! + if ((getConfig('beg_pay_mode') != "NONE") && ($pay)) { + // Prepare content for template + $content = array( + ); + + // Include config-depending template + LOAD_TEMPLATE("beg_pay_code_".strtolower(getConfig('beg_pay_mode')), false, $content); + } elseif ((!$pay) && (!defined('__BEG_MSG'))) { + // Cannot pay! :-( + define('__BEG_MSG', LOAD_TEMPLATE("beg_failed", true)); + } + + // 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 == getConfig('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("modules.php?module=index&msg=".$msg."&ext=beg"); + } else { + // No userid entered + LOAD_URL("modules.php?module=index"); + } +} else { + // You have to configure first! + LOAD_URL("install.php"); +} + +// Really all done here... ;-) +?> diff --git a/0.2.1-FINAL/birthday_confirm.php b/0.2.1-FINAL/birthday_confirm.php new file mode 100644 index 0000000000..1c71ee60db --- /dev/null +++ b/0.2.1-FINAL/birthday_confirm.php @@ -0,0 +1,137 @@ +\n"; + + // Is an entry there? + if (SQL_NUMROWS($result) == 1) { + // Ok, congratulation again! Here's your gift from us... + $data = SQL_FETCHARRAY($result, false); + + // Is the account confirmed? + if ($data['status'] == "CONFIRMED") { + // Set mode depending on how many mails the member has to confirm + $locked = false; + if (($data['ref_payout'] > 0) && (getConfig('allow_direct_pay') == "N")) $locked = true; + + // Add points to account + unset($GLOBALS['ref_level']); + ADD_POINTS_REFSYSTEM("birthday_confirm", $uid, $data['points'], false, "0", $locked, strtolower(getConfig('birthday_mode'))); + + // Remove entry from table + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_birthday WHERE userid=%s AND chk_value='%s' LIMIT 1", + array($uid, $chk), __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", $data['points']); + } + + // Transfer data to constants for the template + define('__GENDER', TRANSLATE_GENDER($data['gender'])); + define('__SNAME', $data['surname']); + define('__FNAME', $data['family']); + define('__GIFT' , $data['points']); + + // 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($data['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("install.php"); +} +// Really all done here... ;-) +?> diff --git a/0.2.1-FINAL/click.php b/0.2.1-FINAL/click.php new file mode 100644 index 0000000000..f5dbe4bd91 --- /dev/null +++ b/0.2.1-FINAL/click.php @@ -0,0 +1,64 @@ + diff --git a/0.2.1-FINAL/confirm.php b/0.2.1-FINAL/confirm.php new file mode 100644 index 0000000000..e55e503ee8 --- /dev/null +++ b/0.2.1-FINAL/confirm.php @@ -0,0 +1,69 @@ + diff --git a/0.2.1-FINAL/css.php b/0.2.1-FINAL/css.php new file mode 100644 index 0000000000..1917cee822 --- /dev/null +++ b/0.2.1-FINAL/css.php @@ -0,0 +1,63 @@ + diff --git a/0.2.1-FINAL/debug.php b/0.2.1-FINAL/debug.php new file mode 100644 index 0000000000..0d6150cadb --- /dev/null +++ b/0.2.1-FINAL/debug.php @@ -0,0 +1,84 @@ + diff --git a/0.2.1-FINAL/doubler.php b/0.2.1-FINAL/doubler.php new file mode 100644 index 0000000000..d002ed7c28 --- /dev/null +++ b/0.2.1-FINAL/doubler.php @@ -0,0 +1,280 @@ + 0) { + // Probe for nickname extension and if a nickname was supplied by URL + $probe_nickname = ((EXT_IS_ACTIVE("nickname")) && (("".round($GLOBALS['refid'])."") != $GLOBALS['refid'])); + + // Do we have nickname or userid set? + 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=%s 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); + } // END - if + + // Init userid + $uid = 0; + + // If no account was found set default refid and status to CONFIRMED + if (empty($GLOBALS['refid'])) { + $GLOBALS['refid'] = getConfig('def_refid'); + $status = "CONFIRMED"; + } // END - if + + // 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=%s 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(REVERT_COMMA($_POST['points']))); + + // Probe for enough points + $probe_points = (($_POST['points'] >= getConfig('doubler_min')) && ($_POST['points'] <= getConfig('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 - getConfig('doubler_left') - $_POST['points'] * getConfig('doubler_charge')) >= 0) + { + // Enough points are left so let's continue with the doubling process + // Create doubling "account" width *DOUBLED* points + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_doubler (userid, refid, points, remote_ip, timemark, completed, is_ref) VALUES ('%s','%s','%s','".GET_REMOTE_ADDR()."', UNIX_TIMESTAMP(), 'N','N')", + array($uid, bigintval($GLOBALS['refid']), bigintval($_POST['points'] * 2)), __FILE__, __LINE__); + + // Subtract entered points + SUB_POINTS("doubler", $uid, $_POST['points']); + + // Add points to "total payed" including charge + $points = $_POST['points'] - $_POST['points'] * getConfig('doubler_charge'); + UPDATE_CONFIG("doubler_points", $points, "+"); + getConfig('doubler_points') += $points; + + // Add second line for the referal but only when uid != refid + if (($GLOBALS['refid'] > 0) && ($GLOBALS['refid'] != $uid)) { + // Okay add a refid line and apply refid percents + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_doubler (userid,refid,points,remote_ip,timemark,completed,is_ref) VALUES ('%s',0,'%s','".GET_REMOTE_ADDR()."',UNIX_TIMESTAMP(),'N','Y')", + array(bigintval($GLOBALS['refid']), bigintval($_POST['points'] * 2 * getConfig('doubler_ref'))), __FILE__, __LINE__); + + // And that's why we dont't want to you more than one referal level of doubler-points. ^^^ + } // END - if + + // Update usage counter + UPDATE_CONFIG("doubler_counter", 1, "+"); + incrementCondigEntry('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'] < getConfig('doubler_min')) { + // Not enougth points entered + define('__ERROR_MSG', DOUBLER_FORM_POINTS_MIN); + } elseif ($_POST['points'] > getConfig('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 (getConfig('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); + } else { + // Transfer userid/nickname to constant + define('__REFID', $GLOBALS['refid']); + } + + // Percent values etc. + define('__CHARGE_VALUE', TRANSLATE_COMMA(getConfig('doubler_charge') * 100)); + define('__REF_VALUE' , TRANSLATE_COMMA(getConfig('doubler_ref') * 100)); + define('__TOTAL_VALUE' , TRANSLATE_COMMA(getConfig('doubler_points'))); + define('__MIN_VALUE' , TRANSLATE_COMMA(getConfig('doubler_min'))); + define('__MAX_VALUE' , TRANSLATE_COMMA(getConfig('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 (getConfig('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(getConfig('doubler_timeout'))); + + // Usage counter + define('__DOUBLER_COUNTER', getConfig('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("install.php"); +} + +// Really all done here... ;-) +?> diff --git a/0.2.1-FINAL/img.php b/0.2.1-FINAL/img.php new file mode 100644 index 0000000000..09cafe5146 --- /dev/null +++ b/0.2.1-FINAL/img.php @@ -0,0 +1,78 @@ + diff --git a/0.2.1-FINAL/inc/.htaccess b/0.2.1-FINAL/inc/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/.secret/.htaccess b/0.2.1-FINAL/inc/.secret/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/.secret/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/autopurge.php b/0.2.1-FINAL/inc/autopurge.php new file mode 100644 index 0000000000..75bddcd86b --- /dev/null +++ b/0.2.1-FINAL/inc/autopurge.php @@ -0,0 +1,50 @@ + diff --git a/0.2.1-FINAL/inc/autopurge/.htaccess b/0.2.1-FINAL/inc/autopurge/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/autopurge/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/autopurge/purge- b/0.2.1-FINAL/inc/autopurge/purge- new file mode 100644 index 0000000000..ff9a9afdc2 --- /dev/null +++ b/0.2.1-FINAL/inc/autopurge/purge- @@ -0,0 +1,47 @@ + diff --git a/0.2.1-FINAL/inc/autopurge/purge-general.php b/0.2.1-FINAL/inc/autopurge/purge-general.php new file mode 100644 index 0000000000..a24b4c7cdc --- /dev/null +++ b/0.2.1-FINAL/inc/autopurge/purge-general.php @@ -0,0 +1,151 @@ + 0)) { + // First calculate the timestamp + if (function_exists('CREATE_TIME_SELECTIONS')) { + $PURGE = getConfig('auto_purge'); + } else { + $PURGE = getConfig('auto_purge') * getConfig('one_day'); + } + + // 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 <= (UNIX_TIMESTAMP() - %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=%s 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; + } // END - if + + // Add points + $uid = $sender; $points += $price; $admin_points += $price; + + // Remove confirmation links from queue + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%s", + array(bigintval($mid)), __FILE__, __LINE__); + + // Update status of order + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='DELETED' WHERE id=%s LIMIT 1", + array(bigintval($pool)), __FILE__, __LINE__); + } // END - if + } // END - while + + // Add last points to last user account + if ($points > 0) AUTOPURGE_ADD_POINTS($uid, $points); + } // END - if + + // 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=%s", + 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 + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%s", + array(bigintval($bid)), __FILE__, __LINE__); + + // Update status of order + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='DELETED' WHERE id=%s LIMIT 1", + array(bigintval($bid)), __FILE__, __LINE__); + } // END - if + } // END - while + + // Add points to jackpot + ADD_JACKPOT($points); + + // Add points for the admin + $admin_points += $points; + } // END - if + + // Free memory + SQL_FREERESULT($result); + } // END - if + + // Add points from deleted accounts to jackpot, but here just add to notify mail + if ($admin_points > 0) { + // Send mail to admin + SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_SUBJECT, "admin_autopurge_points", TRANSLATE_COMMA($points), "0"); + } // END - if +} // END - if + +// +?> diff --git a/0.2.1-FINAL/inc/autopurge/purge-inact.php b/0.2.1-FINAL/inc/autopurge/purge-inact.php new file mode 100644 index 0000000000..679bd906bc --- /dev/null +++ b/0.2.1-FINAL/inc/autopurge/purge-inact.php @@ -0,0 +1,147 @@ + 0) { + $EXCLUDE_LIST = " AND d.userid != ".getConfig('def_refid'); + } // END - if + + // Check for more extensions + if (EXT_IS_ACTIVE("beg")) $EXCLUDE_LIST .= " AND d.userid != ".getConfig('beg_uid').""; + if (EXT_IS_ACTIVE("bonus")) $EXCLUDE_LIST .= " AND d.userid != ".getConfig('bonus_uid').""; + if (EXT_IS_ACTIVE("doubler")) $EXCLUDE_LIST .= " AND d.userid != ".getConfig('doubler_uid').""; + + // Check for new holiday extension + if (GET_EXT_VERSION("holiday") >= "0.1.3") { + // Include only users with no active holiday + $EXCLUDE_LIST .= " AND d.holiday_active='N'"; + } // END - if + + // 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 +WHERE d.status='CONFIRMED' AND d.joined < (UNIX_TIMESTAMP() - %s) AND d.last_online < (UNIX_TIMESTAMP() - %s) AND d.ap_notified < (UNIX_TIMESTAMP() - %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', (getConfig('ap_inactive_since') / 60 / 60)); + define('__INACTIVE_TIME' , (getConfig('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 + SQL_QUERY_ESC("UPDATE `"._MYSQL_PREFIX."_user_data` SET ap_notified=UNIX_TIMESTAMP() WHERE userid=%s LIMIT 1", + array(bigintval($uid)), __FILE__, __LINE__); + } // END - while + + // Remove last comma + $UIDs = str_replace(", ", "\n", substr($UIDs, 0, -2)); + + // Send mail notification to admin + SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_INACTIVE_SUBJECT, "admin_autopurge_inactive", $UIDs, ""); + } // END - if + + // 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(getConfig('ap_in_time')); + $result_inactive = SQL_QUERY_ESC("SELECT d.userid, d.email, d.last_online +FROM `"._MYSQL_PREFIX."_user_data` AS d +WHERE status='CONFIRMED' AND joined < (UNIX_TIMESTAMP() - %s) AND last_online < (UNIX_TIMESTAMP() - %s) AND ap_notified < (UNIX_TIMESTAMP() - %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, "")); + } // END - while + + // Remove last comma + $UIDs = str_replace(", ", "\n", substr($UIDs, 0, -2)); + + // Send mail notification to admin + if (getConfig('ap_in_notify') == "Y") { + SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_DELETE_SUBJECT, "admin_autopurge_delete", $UIDs, ""); + } // END - if + } // END - if + + // Free memory + SQL_FREERESULT($result_inactive); +} // END - if + +// +?> diff --git a/0.2.1-FINAL/inc/autopurge/purge-mails.php b/0.2.1-FINAL/inc/autopurge/purge-mails.php new file mode 100644 index 0000000000..c523c807ac --- /dev/null +++ b/0.2.1-FINAL/inc/autopurge/purge-mails.php @@ -0,0 +1,127 @@ + 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=%s LIMIT 1", + array(bigintval($sender)), __FILE__, __LINE__)); + if ($found == 0) { + // Okay we found some mails! + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_pool WHERE sender=%s", + array(bigintval($sender)), __FILE__, __LINE__); + $DELETED += SQL_AFFECTEDROWS(); + + // Reset query (to prevent possible errors) ... + $since = bigintval(getConfig('ap_dm_timeout')); + $result_mails = SQL_QUERY_ESC("SELECT sender +FROM "._MYSQL_PREFIX."_pool +WHERE data_type='DELETED' AND timestamp <= (UNIX_TIMESTAMP() - %s) +ORDER BY sender ASC", + array($since), __FILE__, __LINE__); + } + } + } + + // Free memory + SQL_FREERESULT($result_mails); + + // Now let's check for stats entries as well + $since = bigintval(getConfig('ap_dm_timeout')); + $result_mails = SQL_QUERY_ESC("SELECT sender +FROM "._MYSQL_PREFIX."_user_stats +WHERE data_type='DELETED' AND timestamp_send <= (UNIX_TIMESTAMP() - %s) +ORDER BY sender ASC", + 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=%s LIMIT 1", array(bigintval($sender)), __FILE__, __LINE__)); + if ($found == 0) { + // Okay we found some mails! + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_stats WHERE sender=%s", array(bigintval($sender)), __FILE__, __LINE__); + $DELETED += SQL_AFFECTEDROWS(); + + // Reset query (to prevent possible errors) ... + $since = bigintval(getConfig('ap_dm_timeout')); + $result_mails = SQL_QUERY_ESC("SELECT sender +FROM "._MYSQL_PREFIX."_user_stats +WHERE data_type='DELETED' AND timestamp_send <= (UNIX_TIMESTAMP() - %s) +ORDER BY sender ASC", + 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) && (getConfig('ap_dm_notify') == "Y")) { + // Send out email to admin + SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_DEL_MAILS_SUBJECT, "admin_autopurge_del_mails", $DELETED, ""); + } +} + +// +?> diff --git a/0.2.1-FINAL/inc/autopurge/purge-tsks.php b/0.2.1-FINAL/inc/autopurge/purge-tsks.php new file mode 100644 index 0000000000..ed61827b87 --- /dev/null +++ b/0.2.1-FINAL/inc/autopurge/purge-tsks.php @@ -0,0 +1,65 @@ + 0.0) +if ((GET_EXT_VERSION("task") > "0.0") && (getConfig('ap_tasks') == "Y")) { + // Since when shall we purge? + $since = bigintval(getConfig('ap_tasks_time')); + + // Purge deleted tasks (no notification to admin) + SQL_QUERY_ESC("DELETE LOW_PRIORITY +FROM "._MYSQL_PREFIX."_task_system +WHERE status='DELETED' AND task_created <= (UNIX_TIMESTAMP() - %s)", + array($since), __FILE__, __LINE__); + $DELETED = SQL_AFFECTEDROWS(); + + if (($DELETED > 0) && (getConfig('ap_tasks_notify') == "Y")) { + // Send out email to admin + SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_TASKS_SUBJECT, "admin_autopurge_tsks", $DELETED, ""); + } // END - if +} // END - if + +// +?> diff --git a/0.2.1-FINAL/inc/autopurge/purge-unconfirmed.php b/0.2.1-FINAL/inc/autopurge/purge-unconfirmed.php new file mode 100644 index 0000000000..2471dfcf27 --- /dev/null +++ b/0.2.1-FINAL/inc/autopurge/purge-unconfirmed.php @@ -0,0 +1,86 @@ + 0) { + // Prepare variable... + $UIDs = ""; + define('__UNCONFIRMED_TIME' , (getConfig('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, "")); + } // END - while + + // Remove last comma + $UIDs = str_replace(", ", "\n", substr($UIDs, 0, -2)); + + // Send mail notification to admin + if (getConfig('ap_un_notify') == "Y") { + SEND_ADMIN_NOTIFICATION(AUTOPURGE_ADMIN_UNCONFIRMED_SUBJECT, "admin_autopurge_unconfirmed", $UIDs, ""); + } // END - if + } // END - if + + // Free memory + SQL_FREERESULT($result_uncon); +} + +// +?> diff --git a/0.2.1-FINAL/inc/cache/.htaccess b/0.2.1-FINAL/inc/cache/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/cache/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/check-reset.php b/0.2.1-FINAL/inc/check-reset.php new file mode 100644 index 0000000000..88335c12cc --- /dev/null +++ b/0.2.1-FINAL/inc/check-reset.php @@ -0,0 +1,54 @@ + diff --git a/0.2.1-FINAL/inc/config.php b/0.2.1-FINAL/inc/config.php new file mode 100644 index 0000000000..536cae8378 --- /dev/null +++ b/0.2.1-FINAL/inc/config.php @@ -0,0 +1,168 @@ + "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!) +// CFG: SMTP-HOSTNAME +define('SMTP_HOSTNAME', ""); +// CFG: SMTP-USER +define('SMTP_USER' , ""); +// CFG: SMTP-PASSWORD +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-FINAL/inc/databases.php b/0.2.1-FINAL/inc/databases.php new file mode 100644 index 0000000000..102ac3ed94 --- /dev/null +++ b/0.2.1-FINAL/inc/databases.php @@ -0,0 +1,133 @@ + "%uid%", // User-ID + 'surname' => "%vorname%", // Surname + 'family' => "%nachname%", // Family name + 'gender' => "%anrede%", // Gender +); + +// One day +$_CONFIG['one_day'] = 60*60*24; + +// +// Timestamp for yesterday, today ... all at 00:00 am +define('START_YDAY', MAKE_TIME(0, 0, 0, time() - getConfig('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"); + +// Current SVN revision +define('CURR_SVN_REVISION', "708"); + +// Take a prime number which is long (if you know a longer one please try it out!) +define('_PRIME', 591623); + +// Calculate "entropy" with the prime number (for code generation) +define('_ADD', (_PRIME * _PRIME / (pi() * getConfig('code_length') + 1))); + +// Random number for e.g. "cache-buster" used in OpenX script +define('CACHE_BUSTER', mt_rand(1000000, 9999999)); + +// Extra title is empty by default +$EXTRA_TITLE = ""; + +// +?> diff --git a/0.2.1-FINAL/inc/db/.htaccess b/0.2.1-FINAL/inc/db/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/db/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/db/lib-mysql3.php b/0.2.1-FINAL/inc/db/lib-mysql3.php new file mode 100644 index 0000000000..fe37cb6699 --- /dev/null +++ b/0.2.1-FINAL/inc/db/lib-mysql3.php @@ -0,0 +1,336 @@ +\n"; + $result = @mysql_query($sql_string, $link) + or ADD_FATAL($F." (".$L."):".mysql_error()."
+Query string:
+".$sql_string); + + // Ending time + $querytimeAfter = array_sum(explode(' ', microtime())); + + // Calculate query time + $queryTime = $querytimeAfter - $querytimeBefore; + + // Save last successfull query + $_CONFIG['db_last_query'] = $sql_string; + + // Count this query + incrementConfigEntry('sql_count'); + + // Debug output + //* DEBUG: */ print "Query=
".$sql_string."
, affected=".SQL_AFFECTEDROWS().", numrows=".SQL_NUMROWS($result)."
\n"; + + if (($CSS != "1") && ($CSS != "-1") && (isBooleanConstantAndTrue('DEBUG_MODE')) && (isBooleanConstantAndTrue('DEBUG_SQL'))) { + // + // Debugging stuff... + // + $fp = @fopen(PATH."inc/cache/mysql.log", 'a') or mxchange_die("Cannot write mysql.log!"); + if (!isset($OK)) { + // Write first entry + fwrite($fp, "Module=".$GLOBALS['module']."\n"); + $OK = true; + } // END - if + fwrite($fp, $F."(LINE=".$L."|NUM=".SQL_NUMROWS($result)."|AFFECTED=".SQL_AFFECTEDROWS()."|QUERYTIME:".$queryTime."): ".str_replace('\r', "", str_replace('\n', " ", $sql_string))."\n"); + fclose($fp); + } // END - if + + // Count DB hits + if (getConfig('db_hits_run') == null) { + // Count in dummy variable + $_CONFIG['db_hits_run'] = 1; + } else { + // Count to config array + $_CONFIG['db_hits_run']++; + } + + // Return the result + return $result; +} + +// SQL num rows +function SQL_NUMROWS($result) { + // Is the result a valid resource? + if (is_resource($result)) { + // Get the count of rows from database + $lines = @mysql_num_rows($result); + + // Is the result empty? Then we have an error! + if (empty($lines)) $lines = 0; + } else { + // No resource given, no lines found! + $lines = 0; + } + return $lines; +} + +// SQL affected rows +function SQL_AFFECTEDROWS() { + global $link; + + // Valid link resource? + if (!is_resource($link)) return false; + + // Get affected rows + $lines = @mysql_affected_rows($link); + + // Return it + return $lines; +} + +// SQL fetch row +function SQL_FETCHROW($result) { + // Init data + $DATA = array(); + + // Is a result resource set? + if (!is_resource($result)) return false; + + $DATA = @mysql_fetch_row($result); + return $DATA; +} + +// SQL fetch array +function SQL_FETCHARRAY($res, $nr=0, $remove_numerical=true) { + // Is a result resource set? + if (!is_resource($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($dbName, $link, $F, $L) { + $select = false; + if (is_resource($link)) { + $select = @mysql_select_db($dbName, $link) or ADD_FATAL($F." (".$L."):".mysql_error()); + } + return $select; +} +// SQL close link +function SQL_CLOSE(&$link, $F, $L) { + global $_CONFIG, $cacheInstance, $cacheArray; + + // Is there still a valid link? + if (!is_resource($link)) { + // Skip double close + return false; + } // END - if + + // Do we need to update cache/db counter? + //* DEBUG: */ echo "DB=".getConfig('db_hits').",CACHE=".getConfig('cache_hits')."
\n"; + if ((GET_EXT_VERSION("cache") >= "0.0.7") && (getConfig('db_hits') > 0) && (getConfig('cache_hits') > 0) && (is_object($cacheInstance))) { + // Add new hits + $_CONFIG['db_hits'] += getConfig('db_hits_run'); + + // Update counter for db/cache + UPDATE_CONFIG(array("db_hits", "cache_hits"), array(bigintval(getConfig('db_hits')), bigintval(getConfig('cache_hits')))); + } // END - if + + // Close database link and forget the link + $close = @mysql_close($link) or ADD_FATAL($F." (".$L."):".mysql_error()); + $link = null; + return $close; +} +// SQL free result +function SQL_FREERESULT($result) { + if (!is_resource($result)) { + // Abort here + return false; + } // END - if + + $res = @mysql_free_result($result); + return $res; +} +// SQL string escaping +function SQL_QUERY_ESC($qstring, $data, $file, $line, $run=true, $strip=true) { + global $link; + + if ($strip) { + $strip = "true"; + } else { + $strip = "false"; + } + + $query = ""; + $eval = "\$query = sprintf(\"".$qstring."\""; + foreach ($data as $var) { + if ((!empty($var)) || ($var === 0)) { + $eval .= ", SQL_ESCAPE(\"".$var."\",true,".$strip.")"; + } else { + $eval .= ", ''"; + } + } + $eval .= ");"; + // + // Debugging + // + //* DEBUG: */ $fp = fopen(PATH."inc/cache/escape_debug.log", 'a') or mxchange_die("Cannot write debug.log!"); + //* DEBUG: */ fwrite($fp, $file."(".$line."): ".str_replace("\r", "", str_replace("\n", " ", $eval))."\n"); + //* DEBUG: */ fclose($fp); + + // Run the code + @eval($eval); + + // Was the eval() command fine? + if (empty($query)) { + // Something went wrong? + print "eval=".htmlentities($eval)."
";
+		debug_print_backtrace();
+		die("
"); + } // END - if + + 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, $secureString=true,$strip=true) { + global $link; + + // Secure string first? (which is the default behaviour!) + if ($secureString) { + // Then do it here + $str = secureString($str, $strip); + } // END - if + + if (!is_resource($link)) { + // Fall-back to addslashes() when there is no link + return addslashes($str); + } // END - if + + if (function_exists('mysql_real_escape_string')) { + // The new and improved version + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):str={$str}
\n"; + return mysql_real_escape_string($str, $link); + } elseif (function_exists('mysql_escape_string')) { + // The obsolete 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, $F, $L) { + // Prepare the SQL statement + $SQL = "SELECT ".implode(", ", $columns)." FROM "._MYSQL_PREFIX."_".$table." WHERE ".$idRow."=%s LIMIT 1"; + + // Return the result + return SQL_QUERY_ESC($SQL, array(bigintval($id)), $F, $L); +} +// ALTER TABLE wrapper function +function SQL_ALTER_TABLE($sql, $F, $L) { + // Shall we add? + if (eregi("ADD", $sql) > 0) { + // Extract table name + $tableArray = explode(" ", $sql); + $tableName = str_replace("`", "", $tableArray[2]); + + // And column name as well + $columnName = str_replace("`", "", $tableArray[4]); + + // Get column information + $result = SQL_QUERY_ESC("SHOW COLUMNS FROM %s LIKE '%s'", + array($tableName, $columnName), $F, $L); + + // Do we have no entry? + if (SQL_NUMROWS($result) == 0) { + // Do the query + return SQL_QUERY($sql, $F, $L, false); + } // END - if + } else { + // Send it to the SQL_QUERY() function + return SQL_QUERY($sql, $F, $L, false); + } +} +// +?> diff --git a/0.2.1-FINAL/inc/db/lib.php b/0.2.1-FINAL/inc/db/lib.php new file mode 100644 index 0000000000..4384bfea81 --- /dev/null +++ b/0.2.1-FINAL/inc/db/lib.php @@ -0,0 +1,58 @@ + diff --git a/0.2.1-FINAL/inc/debug/.htaccess b/0.2.1-FINAL/inc/debug/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/debug/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/debug/client/.htaccess b/0.2.1-FINAL/inc/debug/client/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/debug/client/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/debug/relay/.htaccess b/0.2.1-FINAL/inc/debug/relay/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/debug/relay/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/debug/request_ b/0.2.1-FINAL/inc/debug/request_ new file mode 100644 index 0000000000..9f719900cc --- /dev/null +++ b/0.2.1-FINAL/inc/debug/request_ @@ -0,0 +1,41 @@ + diff --git a/0.2.1-FINAL/inc/debug/server/.htaccess b/0.2.1-FINAL/inc/debug/server/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/debug/server/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/doubler_send.php b/0.2.1-FINAL/inc/doubler_send.php new file mode 100644 index 0000000000..d584f47f4b --- /dev/null +++ b/0.2.1-FINAL/inc/doubler_send.php @@ -0,0 +1,163 @@ += %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 %d", array($DOUBLER_POINTS, $min, getConfig('doubler_max_sent')), __FILE__, __LINE__); + +// Do we have entries found? +if (((SQL_NUMROWS($result_total) > 0) && (getConfig('doubler_sent_all') == "Y")) || ((SQL_NUMROWS($result_main) == getConfig('doubler_group_sent')) && (getConfig('doubler_sent_all') == "N"))) { + // Switch to matching SQL resource + $result_load = $result_main; + if ((SQL_NUMROWS($result_total) > 0) && (getConfig('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 + $ref = GET_TOTAL_DATA($uid, "doubler", "points", "refid", false, " AND completed='N' AND is_ref='Y'"); + + // Zero refid when empty (might be helpful!) + if (empty($ref)) $ref = 0; + if (($ref > 0) && ($DOUBLER_UID == $uid) && (!empty($ref))) { + // Referal points found so add them and set line(s) to completed='Y' + $points += $ref; + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE refid=%s AND completed='N' AND is_ref='Y'", + array(bigintval($uid)), __FILE__, __LINE__); + } else { + // No referal points found + $ref = 0; + } + + // Exclude webmaster from doubling... + if ($uid != getConfig('doubler_uid')) { + // Add points + ADD_POINTS_REFSYSTEM(sprintf("doubler_%s", strtolower(getConfig('doubler_send_mode'))), $uid, $points, false, "0", false, "direct"); + } // END - if + + // Set entry as "payed" + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE id=%s LIMIT 1", + array(bigintval($id)), __FILE__, __LINE__); + + $OK = false; + // Check for jackpot inclusion in doubling process + if (($jackpot > 0) && ($jackpot >= $points) && (getConfig('doubler_jackpot') == "Y")) { + // Subtract points from jackpot + SUB_JACKPOT($points); + $jackpot -= $points; + + // Okay, done! + $OK = true; + } // END - if + + // Exclude also webmaster's ID in taking points from webmaster's account + if (($user > 0) && ($user >= $points) && (!$OK) && (getConfig('doubler_uid') > 0) && ($uid != getConfig('doubler_uid'))) { + // Add points to used points + SUB_POINTS("doubler_payout", getConfig('doubler_uid'), $points); + + // Okay, done! + $OK = true; + } // END - if + + // Update doubler's account only when others are not updated + if (!$OK) { + // Add points to used doubler points + UPDATE_CONFIG("doubler_used", $points, "+"); + } // END - if + + // 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); + } // END - if + } // END - while +} // END - if + +// Free memory +SQL_FREERESULT($result_total); +SQL_FREERESULT($result_main); + +// +?> diff --git a/0.2.1-FINAL/inc/extensions.php b/0.2.1-FINAL/inc/extensions.php new file mode 100644 index 0000000000..a59e17b086 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions.php @@ -0,0 +1,846 @@ + 0) { + // Try to register the extension + $test = EXTENSION_REGISTER($ext_update, $task, $dry_run, false); + } // END - if + } elseif ($ext_ver != $EXT_VERSION) { + // Ok, update this extension now + EXTENSION_UPDATE($ext_update, $ext_ver, $dry_run); + + // All okay! + $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); + } else { + // Does not depend on an other extension + $test = true; + } + + // Switch back to register mode + $EXT_LOAD_MODE = "register"; + + // Remains true if extension registration reports no failtures + $test = ($test && !$EXT_REPORTS_FAILURE); + + // Does everthing before wents ok? + if ($test) { + // "Dry-run-mode" activated? + if (!$dry_run) { + // Run installation pre-installation filters + RUN_FILTER('pre_extension_installed', array('dry_run' => $dry_run, 'sqls' => $SQLs)); + + // Register extension + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_extensions (ext_name, ext_active, ext_version) VALUES ('%s','%s','%s')", + array($ext_name, $EXT_ALWAYS_ACTIVE, $EXT_VERSION), __FILE__, __LINE__); + + // Remove cache file(s) if extension is active + RUN_FILTER('post_extension_installed', array('ext_name' => $ext_name, 'task_id' => $task_id, 'inc_pool' => $INC_POOL)); + + // In normal mode return a true on success + $ret = true; + } else { + // Rewrite SQL command to keep { and } inside + foreach ($SQLs as $key => $sql) { + $sql = str_replace('{', "{", str_replace('}', "}", $sql)); + $SQLs[$key] = $sql; + } // END - foreach + + // 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 (($task_id > 0) && (!empty($ext_name))) { + // Remove task from system when id and extension's name is valid + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_task_system WHERE id=%s AND status='NEW' LIMIT 1", + array(bigintval($task_id)), __FILE__, __LINE__); + } + + // Is this the sql_patches? + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ":{$ext_name}/{$EXT_LOAD_MODE}"); + if (($ext_name == "sql_patches") && (($EXT_LOAD_MODE == "register") || ($EXT_LOAD_MODE == "remove")) && (!$dry_run) && ($test)) { + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ": LOAD!"); + if ($logout) { + // Then redirect to logout + LOAD_URL("modules.php?module=admin&logout=1&".$EXT_LOAD_MODE."=sql_patches"); + } else { + // Add temporary filter + REGISTER_FILTER('shutdown', 'REDIRECT_TO_LOGOUT_SQL_PATCHES', true, true); + $GLOBALS['ext_load_mode'] = $EXT_LOAD_MODE; + } + } // END - if + + // Return status code + return $ret; +} + +// Run SQL queries for given extension id +// @TODO Change from ext_id to ext_name (not just even the variable! ;-) ) +function EXTENSION_RUN_SQLS ($ext_id, $load_mode) { + global $cacheInstance; + + // This shall never do a non-admin user! + if (!IS_ADMIN()) return false; + + // Init array + $SQLs = array(); + + // By default no SQL has been executed + $sqlRan = false; + + // Get extension's name + $ext_name = GET_EXT_NAME($ext_id); + if (empty($ext_name)) return false; + + // Load extension in detected mode + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ":ext_name[{$ext_id}]={$ext_name}"); + LOAD_EXTENSION($ext_name, $load_mode, "", false, $SQLs); + + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ":SQLs::count=".count($SQLs).""); + if ((is_array($SQLs) && (sizeof($SQLs) > 0))) { + // Run SQL commands... + RUN_FILTER('run_sqls', array('dry_run' => false, 'sqls' => $SQLs)); + + // Removal mode? + if ($load_mode == "remove") { + // Delete this extension (remember to remove it from your server *before* you click on welcome! + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1", + array($ext_name), __FILE__, __LINE__); + } // END - if + } // END - if + + // Remove cache file(s) if extension is active + if (((EXT_IS_ACTIVE("cache")) || (GET_EXT_VERSION("cache") != "")) && (((SQL_AFFECTEDROWS() == 1)) || ($sqlRan === true) || ($load_mode == "activate") || ($load_mode == "deactivate"))) { + // Run filters + RUN_FILTER('post_extension_run_sql', $ext_name); + } // END - if + + // Is this the sql_patches? + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ": {$ext_id}/{$ext_name}/{$load_mode}"); + if (($ext_name == "sql_patches") && (($load_mode == "register") || ($load_mode == "remove"))) { + // Then redirect to logout + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ": LOAD!"); + LOAD_URL("modules.php?module=admin&logout=1&".$load_mode."=sql_patches"); + } // END - if +} + +// Check if given extension is active +function EXT_IS_ACTIVE ($ext_name) { + global $cacheArray; + + // Extensions are all inactive during installation + if ((!isBooleanConstantAndTrue('mxchange_installed')) || (isBooleanConstantAndTrue('mxchange_installing')) || (empty($ext_name))) return false; + + // Not active is the default + $active = "N"; + + // Check cache + if (isset($cacheArray['extensions']['ext_active'][$ext_name])) { + // Load from cache + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "CACHE! ext_name={$ext_name}"); + $active = $cacheArray['extensions']['ext_active'][$ext_name]; + + // Count cache hits + incrementConfigEntry('cache_hits'); + } elseif (($ext_name == "cache") || (GET_EXT_VERSION("cache") == "")) { + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "DB! ext_name={$ext_name}"); + // 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__); + + // Entry found? + if (SQL_NUMROWS($result) == 1) { + // Load entry + list($active) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Write cache array + //* DEBUG: */ echo $ext_name."[DB]: {$active}"); + $cacheArray['extensions']['ext_active'][$ext_name] = $active; + } else { + // Extension not active! + //* DEBUG: */ echo $ext_name.": Not active!"); + $cacheArray['extensions']['ext_active'][$ext_name] = "N"; + } + + // Debug message + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, " ext_name={$ext_name},active={$active}"); + + // Is this extension activated? (For admins we always have active extensions...) + return ($active == "Y"); +} +// Get version from extensions +function GET_EXT_VERSION ($ext_name) { + global $cacheArray, $cacheInstance; + $ext_ver = false; + + // Extensions are all inactive during installation + if ((!isBooleanConstantAndTrue('mxchange_installed')) || (isBooleanConstantAndTrue('mxchange_installing'))) return ""; + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ": ext_name={$ext_name}"); + + // Is the cache written? + if (isset($cacheArray['extensions']['ext_version'][$ext_name])) { + // Load data from cache + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ": CACHE!"); + $ext_ver = $cacheArray['extensions']['ext_version'][$ext_name]; + + // Count cache hits + incrementConfigEntry('cache_hits'); + } elseif (!is_object($cacheInstance)) { + // 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__); + + // Is the extension there? + if (SQL_NUMROWS($result) == 1) { + // Load entry + list($ext_ver) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Set cache + $cacheArray['extensions']['ext_version'][$ext_name] = $ext_ver; + } + + // Return result + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, ": ret={$ext_ver}"); + return $ext_ver; +} + +// Updates a given extension with current extension version to latest version +function EXTENSION_UPDATE ($ext_name, $ext_ver, $dry_run = false) { + // This shall never do a non-admin user! + global $cacheInstance, $UPDATE_NOTES, $NOTES, $EXT_VER_HISTORY; + global $EXT_UPDATE_DEPENDS, $EXT_VERSION, $INC_POOL, $cacheArray, $SQLs; + + // Init arrays + $SQLs = array(); $INC_POOL = array(); + + // Init notes + $NOTES = ""; + + // Only admins are allowed to update extensions + if ((!IS_ADMIN()) || (empty($ext_name))) return false; + + // Load extension in test mode + LOAD_EXTENSION($ext_name, "test", $ext_ver, $dry_run, $SQLs); + + // Save version history + $history = $EXT_VER_HISTORY; + + // Remove old SQLs array to prevent possible bugs + $SQLs = array(); + + // Check if version is updated + if ((($EXT_VERSION != $ext_ver) || ($dry_run)) && (is_array($history))) { + // Search for starting point + $start = array_search($ext_ver, $history); + + // And load SQL queries in order of version history + for ($idx = ($start + 1); $idx < sizeof($history); $idx++) { + // Set extension version + $cacheArray['update_ver'][$ext_name] = $history[$idx]; + + // Load again... + LOAD_EXTENSION($ext_name, "update", $cacheArray['update_ver'][$ext_name], $dry_run, $SQLs); + + if (!empty($EXT_UPDATE_DEPENDS)) { + // Backup current SQL queries + $cacheArray['update_sqls'][$ext_name] = $SQLs; + + // Is the extension there? + if (GET_EXT_VERSION($EXT_UPDATE_DEPENDS) != "") { + // Update another extension first! + $test = EXTENSION_UPDATE($EXT_UPDATE_DEPENDS, GET_EXT_VERSION($EXT_UPDATE_DEPENDS), $dry_run); + } else { + // Register new extension + $test = EXTENSION_REGISTER($EXT_UPDATE_DEPENDS, 0, $dry_run, false); + } + + // Restore previous SQL queries + $SQLs = $cacheArray['update_sqls'][$ext_name]; + unset($cacheArray['update_sqls'][$ext_name]); + } // END - if + + // Add notes + $NOTES .= ADD_EXTENSION_NOTES($cacheArray['update_ver'][$ext_name], $UPDATE_NOTES); + } // END - for + + // In real-mode execute any existing includes + if (!$dry_run) { + $cacheArray['inc_pool'][$ext_name] = $INC_POOL; + RUN_FILTER('load_includes', $INC_POOL); + $INC_POOL = $cacheArray['inc_pool'][$ext_name]; + unset($cacheArray['inc_pool'][$ext_name]); + } // END - if + + // Run SQLs + RUN_FILTER('run_sqls', array('dry_run' => $dry_run, 'sqls' => $SQLs)); + + if (!$dry_run) { + // Create task + CREATE_EXTENSION_UPDATE_TASK(GET_CURRENT_ADMIN_ID(), $ext_name, $cacheArray['update_ver'][$ext_name], addslashes($NOTES)); + + // Update extension's version + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_version='%s' WHERE ext_name='%s' LIMIT 1", + array($cacheArray['update_ver'][$ext_name], $ext_name), __FILE__, __LINE__); + + // Remove arrays + unset($SQLs); + unset($cacheArray['update_ver'][$ext_name]); + + // Run filters on success extension update + RUN_FILTER('extension_update', $ext_name); + } else { + // In "dry-run" mode return array with SQL commands + return $SQLs; + } + } // END - if +} + +// Output verbose SQL table for extension +function EXTENSION_VERBOSE_TABLE ($queries = array(), $title = ADMIN_SQLS_EXECUTED_ON_REMOVAL, $dashed = "", $switch = false, $width = "100%") { + global $SQLs; + + // Are there some queries in $queries? + if (count($queries) > 0) { + // Then use them instead! + $SQLs = $queries; + } // END - if + + // Init variables + $SW = 2; $i = 1; + $OUT = ""; + + // Do we have queries? + if ((is_array($SQLs)) && (GET_EXT_VERSION("sql_patches") >= "0.0.7") && (getConfig('verbose_sql') == "Y")) { + foreach ($SQLs as $idx => $sql) { + // Trim out spaces + $sql = trim($sql); + + // Output command if set + if (!empty($sql)) { + // Prepare output for template + $content = array( + 'sw' => $SW, + 'i' => $i, + 'sql' => $sql + ); + + // Load row template + $OUT .= LOAD_TEMPLATE("admin_ext_sql_row", true, $content); + + // Switch color and count up + $SW = 3 - $SW; + $i++; + } // END - if + } // END - foreach + + // Prepare content for template + $content = array( + 'width' => $width, + 'dashed' => $dashed, + 'title' => $title, + 'out' => $OUT + ); + + // Load main template + $OUT = LOAD_TEMPLATE("admin_ext_sql_table", true, $content); + } elseif ((GET_EXT_VERSION("sql_patches") >= "0.0.7") && (getConfig('verbose_sql') == "Y")) { + // No addional SQL commands to run + $OUT = LOAD_TEMPLATE("admin_settings_saved", true, ADMIN_NO_ADDITIONAL_SQLS); + } // END - if + + // Return output + return $OUT; +} + +// Get extension name from id +function GET_EXT_NAME ($ext_id) { + global $cacheArray; + + // Init extension name + $ret = ""; + + // Is cache there? + if (isset($cacheArray['extensions']['ext_name'][$ext_id])) { + // Load from cache + $ret = $cacheArray['extensions']['ext_name'][$ext_id]; + + // Count cache hits + incrementConfigEntry('cache_hits'); + } elseif (!EXT_IS_ACTIVE("cache")) { + // Load from database + $result = SQL_QUERY_ESC("SELECT ext_name FROM "._MYSQL_PREFIX."_extensions WHERE id=%s LIMIT 1", + array(bigintval($ext_id)), __FILE__, __LINE__); + list($ret) = SQL_FETCHROW($result); + SQL_FREERESULT($result); + } + return $ret; +} + +// Get extension id from name +function GET_EXT_ID ($ext_name) { + global $cacheArray; + + // Init ID number + $ret = 0; + if (isset($cacheArray['extensions']['ext_id'][$ext_name])) { + // Load from cache + $ret = $cacheArray['extensions']['ext_id'][$ext_name]; + + // Count cache hits + incrementConfigEntry('cache_hits'); + } elseif (!EXT_IS_ACTIVE("cache")) { + // Load from database + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_extensions WHERE ext_name='%s' LIMIT 1", + array($ext_name), __FILE__, __LINE__); + list($ret) = SQL_FETCHROW($result); + SQL_FREERESULT($result); + } + + // Return value + return $ret; +} + +// Activate given extension +function ACTIVATE_EXTENSION ($ext_name) { + // Activate the extension + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='Y' WHERE ext_name='%s' LIMIT 1", + array($ext_name), __FILE__, __LINE__); + + // Extension has been activated? + if (SQL_AFFECTEDROWS() == 1) { + // Then run all queries + EXTENSION_RUN_SQLS(GET_EXT_ID($ext_name), "activate"); + } // END - if +} + +// Deactivate given extension +function DEACTIVATE_EXTENSION($ext_name) { + // Activate the extension + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='N' WHERE ext_name='%s' LIMIT 1", + array($ext_name), __FILE__, __LINE__); + + // Extension has been activated? + if (SQL_AFFECTEDROWS() == 1) { + // Then run all queries + EXTENSION_RUN_SQLS(GET_EXT_ID($ext_name), "deactivate"); + + // Create new task + CREATE_EXTENSION_DEACTIVATION_TASK($ext_name); + + // Notify the admin + SEND_ADMIN_NOTIFICATION(ADMIN_SUBJECT_EXTENSION_DEACTIVATED, "admin_ext_deactivated", array('ext_name' => $ext_name)); + } // END - if +} + +// Checks wether the extension is older than given +function EXT_VERSION_IS_OLDER ($ext_name, $ext_ver) { + // Get current extension version + $currVersion = GET_EXT_VERSION($ext_name); + + // Remove all dots from both versions + $currVersion = str_replace(".", "", $currVersion); + $ext_ver = str_replace(".", "", $ext_ver); + + // Now compare both and return the result + return ($currVersion < $ext_ver); +} + +// Creates a new task for updated extension +function CREATE_EXTENSION_UPDATE_TASK ($admin_id, $ext_name, $ext_ver, $notes) { + // Create subject line + $subject = "[UPDATE-".$ext_name."-".$ext_ver.":] ".ADMIN_UPDATE_EXT_SUBJ; + + // Is the extension there? + if (GET_EXT_VERSION($ext_name) != "") { + // Check if task is not there + if (DETERMINE_TASK_ID_BY_SUBJECT($subject) == 0) { + // Task not created so it's a brand-new extension which we need to register and create a task for! + 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($admin_id, $subject, $notes), __FILE__, __LINE__); + } // END - if + } // END - if +} + +// Creates a new task for newly installed extension +function CREATE_NEW_EXTENSION_TASK ($admin_id, $subject, $ext) { + // Not installed and do we have created a task for the admin? + if ((DETERMINE_TASK_ID_BY_SUBJECT($subject) == 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_READABLE($tpl)) { + // Load extension's own text template (HTML!) + $msg = LOAD_TEMPLATE("ext_".$ext, true); + } else { + // Load default message + $msg = LOAD_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! + 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( + $admin_id, + $subject, + addslashes($msg), + ), __FILE__, __LINE__, true, false + ); + } // END - if +} + +// Creates a task for automatically deactivated (deprecated) extension +function CREATE_EXTENSION_DEACTIVATION_TASK ($ext) { + // Create subject line + $subject = sprintf("[%s:] %s", $ext, TASK_SUBJ_EXTENSION_DEACTIVATED); + + // Not installed and do we have created a task for the admin? + if ((DETERMINE_TASK_ID_BY_SUBJECT($subject) == 0) && (GET_EXT_VERSION($ext) != "")) { + // Task not created so add it + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, userid, status, task_type, subject, text, task_created) +VALUES (0,0,'NEW','EXTENSION_DEACTIVATION','%s','%s',UNIX_TIMESTAMP())", + array( + $subject, + addslashes(LOAD_TEMPLATE("task_ext_deactivated", true, $ext)), + ), __FILE__, __LINE__, true, false + ); + } // END - if +} + +// Checks if the module has a menu +function MODULE_HAS_MENU ($mod, $forceDb = false) { + global $cacheArray; + + // All is false by default + $ret = false; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):mod={$mod},cache=".GET_EXT_VERSION("cache")."
\n"; + if (GET_EXT_VERSION("cache") >= "0.1.2") { + // Cache version is okay, so let's check the cache! + if (isset($cacheArray['modules']['has_menu'][$mod])) { + // Check module cache and count hit + $ret = ($cacheArray['modules']['has_menu'][$mod] == "Y"); + incrementConfigEntry('cache_hits'); + } elseif (isset($cacheArray['extensions']['ext_menu'][$mod])) { + // Check cache and count hit + $ret = ($cacheArray['extensions']['ext_menu'][$mod] == "Y"); + incrementConfigEntry('cache_hits'); + } elseif ((IS_ADMIN()) && ($mod == "admin")) { + // Admin module has always a menu! + $ret = true; + } + } elseif ((GET_EXT_VERSION("sql_patches") >= "0.3.6") && ((!EXT_IS_ACTIVE("cache")) || ($forceDb === true))) { + // 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__); + + // Entry found? + if (SQL_NUMROWS($result) == 1) { + // Load "has_menu" column + list($has_menu) = SQL_FETCHROW($result); + + // Fake cache... ;-) + $cacheArray['extensions']['ext_menu'][$mod] = $has_menu; + + // Does it have a menu? + $ret = ($has_menu == "Y"); + } // END - if + + // Free memory + SQL_FREERESULT($result); + } elseif (GET_EXT_VERSION("sql_patches") == "") { + // No sql_patches installed, so maybe in admin area? + $ret = ((IS_ADMIN()) && ($mod == "admin")); // Then there is a menu! + } + + // Return status + //* DEBUG: */ var_dump($ret); + return $ret; +} + +// Determines the task id for given extension +function DETERMINE_EXTENSION_TASK_ID ($ext_name) { + // Default is not found + $task_id = 0; + + // Search for extension task's id + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE task_type='EXTENSION' AND subject='[%s:]' LIMIT 1", + array($ext_name), __FILE__, __LINE__); + + // Entry found? + if (SQL_NUMROWS($result) == 1) { + // Task found so load task's ID and register extension... + list($task_id) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return it + return $task_id; +} + +// Determines the task id for given subject +function DETERMINE_TASK_ID_BY_SUBJECT ($subject) { + // Default is not found + $task_id = 0; + + // Search for task id + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE subject LIKE '%s%%' LIMIT 1", + array($subject), __FILE__, __LINE__); + + // Entry found? + if (SQL_NUMROWS($result) == 1) { + // Task found so load task's ID and register extension... + list($task_id) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return it + return $task_id; +} + +// Add updates notes for given version +function ADD_EXTENSION_NOTES ($ver, &$UPDATE_NOTES) { + // Init notes/content + $out = ""; $content = array(); + + // Is do we have verbose output enabled? + if ((getConfig('verbose_sql') == "Y") || (!EXT_IS_ACTIVE("sql_patches"))) { + + // Update notes found? + if (!empty($UPDATE_NOTES)) { + // Update notes found + $content = array( + 'ver' => $ver, + 'notes' => $UPDATE_NOTES + ); + $UPDATE_NOTES = ""; + } elseif (($ver == "0.0") || ($ver == "0.0.0")) { + // Initial release + $content = array( + 'ver' => $ver, + 'notes' => INITIAL_RELEASE + ); + } else { + // No update notes found! + $content = array( + 'ver' => $ver, + 'notes' => NO_UPDATE_NOTES + ); + } + + // Load template + $out = LOAD_TEMPLATE("admin_ext_notes", true, $content); + } // END - if + + // Return the output + return $out; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/.htaccess b/0.2.1-FINAL/inc/extensions/.htaccess new file mode 100644 index 0000000000..14249c50bd --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/.htaccess @@ -0,0 +1 @@ +Deny from all \ No newline at end of file diff --git a/0.2.1-FINAL/inc/extensions/ext- b/0.2.1-FINAL/inc/extensions/ext- new file mode 100644 index 0000000000..1fefa3bf0c --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext- @@ -0,0 +1,87 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-active.php b/0.2.1-FINAL/inc/extensions/ext-active.php new file mode 100644 index 0000000000..eaeec47073 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-active.php @@ -0,0 +1,145 @@ +Patch 340 überflü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) UNSIGNED 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 (Heute Online im Gastbereich) vornehmen.', 8)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Aktiven-Liste im Gastbereich ist nun einschrä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ü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; + + case "0.0.9": // SQL queries for v0.0.9 + // Make update depending on "online" + $EXT_UPDATE_DEPENDS = "online"; + + // Register filter + REGISTER_FILTER('online_extra_links', 'ADD_LINK_ACTIVE_LIST', false, true, $dry_run); + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Filter für den "Wer ist Online" Block hinzugefügt und ist von online abhängig."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-admins.php b/0.2.1-FINAL/inc/extensions/ext-admins.php new file mode 100644 index 0000000000..9b334e5508 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-admins.php @@ -0,0 +1,313 @@ +Access Control Lines sind zu deutsch Zugriffkontrollzeilen, mit denen Sie einstellen kö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) UNSIGNED 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) UNSIGNED NOT NULL AUTO_INCREMENT, +admin_id BIGINT(20) UNSIGNED 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ö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ä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 = "&admin= in &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ü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öscht, 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ö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 Patch 340 überflü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ü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 admins und (kommender) contact."; + break; + + case "0.5.7": // SQL queries for v0.5.7 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Links wegen what=admins_contct geä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ü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 "ACL Einstellen" 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ü frei (Allow), dann kann der Admin auch die Untermenüs erreichen. Zudem können Sie gezielte Untermenüs im freigegeben Hauptmenü 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ü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 admins und (kommender) contact."; + 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 admins und (kommender) contact. Beseitigung eines Fehlers HTTP_POSR_VARS beim Ä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 = "set_session() 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='' OR what IS NULL) LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Verwaltung nach Management umbenannt."; + break; + + case "0.7.0": // SQL queries for v0.7.0 + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins ADD login_failtures BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins ADD last_failture TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Fehlgeschlagene Login-Versuche werden nun mitgezählt und der letzte vermerkt."; + break; + + case "0.7.1": // SQL queries for v0.7.1 + // Update depends on sql_patches + $EXT_UPDATE_DEPENDS = "sql_patches"; + + // Add filters + REGISTER_FILTER('sql_admin_extra_data', 'ADD_EXTRA_SQL_DATA', false, true, $dry_run); + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Filter hinzugefügt und ist von sql_patches abhängig."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-admintheme1.php b/0.2.1-FINAL/inc/extensions/ext-admintheme1.php new file mode 100644 index 0000000000..72b2300050 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-admintheme1.php @@ -0,0 +1,92 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-admintheme_default.php b/0.2.1-FINAL/inc/extensions/ext-admintheme_default.php new file mode 100644 index 0000000000..5934c04fd1 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-admintheme_default.php @@ -0,0 +1,92 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-autopurge.php b/0.2.1-FINAL/inc/extensions/ext-autopurge.php new file mode 100644 index 0000000000..e842712573 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-autopurge.php @@ -0,0 +1,269 @@ +Warning: Missing argument 2 for create_timestamp_from_selections() in {!PATH!}inc/libs/pro_functions.php on line 227 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 ref_depth wurde level 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) UNSIGNED NOT NULL DEFAULT '".(getConfig('one_day')*7)."'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Bereinigung von zu löschenden Aufgaben klappt wieder. Zeitlimit für genanntes kann eingestellt werden (Default = 7 Tage).

Bitte aktualisieren Sie auch die Admin-Templates!"; + 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öschung von Aufgaben ausgesendet.

Bitte aktualisieren Sie auch die Admin-Templates!"; + 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ür gelö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öschung von Bestätigungslinks kann unter "Sonstige Einstellungen" 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 Patch 340 überflü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 ADMIN_USER_PROFILE_LINK() 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 ADMIN_USER_PROFILE_LINK() 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 admin_config_autopurge_pro.tpl ist überflüssig geworden. Bitte lö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ührlich."; + break; + + case "0.3.2": // SQL queries for v0.3.2 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Wörter Mailtausch, Mailtausches und Mailtauscher 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) UNSIGNED NOT NULL DEFAULT '86400'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Von bereits gelöschten Mitgliedern die Mails lö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 timestamp_send (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 ap_del_emails (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-Referal-ID, der Bonus-ID, Bettellink-ID und der Verdoppler-ID werden nun nicht mehr gelö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 empty() umgestellt. Unter Auto-Löschung finden Sie nun auch die Einstellungen zu Mailbestä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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // Do we have a daily-reset-run? + if (isBooleanConstantAndTrue('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1)) + { + // Yes, we have. So let's auto-purge some campaigns, inactive users and unconfirmed accounts + $INC_POOL[] = sprintf("%sinc/autopurge.php", PATH); + } + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-bank.php b/0.2.1-FINAL/inc/extensions/ext-bank.php new file mode 100644 index 0000000000..dee1883609 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-bank.php @@ -0,0 +1,195 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-beg.php b/0.2.1-FINAL/inc/extensions/ext-beg.php new file mode 100644 index 0000000000..2a8013daf2 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-beg.php @@ -0,0 +1,280 @@ +Patch 340 überflü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 FLOAT(20,5) UNSIGNED 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 = "Überlange Kommastellen bei Punktangaben aus Bettellink und Gastbereich entfernt und Admin-Templates repariert ("Unbekannte Spalte beg_points_ma")."; + break; + + case "0.0.5": // SQL queries for v0.0.5 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Im Mitgliedsmenü wurde die Beschreibung aus dem Gastmenü verwendet."; + break; + + case "0.0.6": // SQL queries for v0.0.6 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD beg_uid BIGINT(20) UNSIGNED 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 admin_config_beg.tpl (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) UNSIGNED NOT NULL DEFAULT 1800"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Zeitsperre gegen die selbe IP-Nummer hinzugefü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.2.1 + // 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": + // 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_ranks TINYINT(3) UNSIGNED 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 FLOAT(21,5) UNSIGNED 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öglich. Und die erbettelten {!POINTS!} können entweder nur dem bettelndem Mitglied direkt oder auch seinem Werber gutgeschrieben werden kö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ö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 (member_list_beg.tpl); Template member_beg_404.tpl 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ütung und auch die Bettel-Rallye kö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ügt. Im Admin-Bereich Hinweis hinzugefügt, wenn Bettel-Rallye inaktiv ist. Bitte Script inc/monthly_beg.php lö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 FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD beg_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD beg_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD beg_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD beg_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Die Mitglieder können nun optional automatisch über eine aktivierte und/oder deaktivierte Bettel-Rallye informiert werden. Beide Benachrichtigungen können Sie unter Einstellungen --> Bettel-Link/-rallye 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ä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ü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ä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 unknown column 'uid' 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önnen nur bestä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ü 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; + + case "0.2.6": // SQL queries for v0.2.6 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_beg_ips` ADD sid VARCHAR(255) NOT NULL DEFAULT ''"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `beg_pay_mode` ENUM('IMG','JS','BOTH','NONE') DEFAULT 'NONE' NOT NULL ;"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "IP-Lock mit Session-ID erweitert. Tracker-Script eingefügt, dass das Einbinden des Bettel-Links als Bild/Script/CSS verhindern soll."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // Remove old entries + $OLD = getConfig('beg_timeout'); + if (getConfig('beg_uid_timeout') > $OLD) $OLD = getConfig('beg_uid_timeout'); + $result_ext = SQL_QUERY("DELETE LOW_PRIORITY FROM `"._MYSQL_PREFIX."_beg_ips` WHERE timeout < (UNIX_TIMESTAMP() -".($OLD + 60*60).")", __FILE__, __LINE__); + + // Check for beg rallye is active and send mails out + if ((getConfig('beg_rallye') == "Y") && (getConfig('beg_new_mem_notify') == "Y")) { + // Include file for sending out mails + $INC_POOL[] = sprintf("%sinc/mails/beg_mails.php", PATH); + } // END - if + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-birthday.php b/0.2.1-FINAL/inc/extensions/ext-birthday.php new file mode 100644 index 0000000000..12a7393400 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-birthday.php @@ -0,0 +1,205 @@ +birtday_confirm.php durchgefü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 Patch 340 überflü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 inc/footer.php verlagert."; + break; + + case "0.3.1": // SQL queries for v0.3.1 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Wort Punkte 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ü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ü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 inc/birthday_mails.php hat sich ein Zeichen mit dem Code 160 eingeschlichen, welches einen Parser Error verursachte, aber wie eine gewö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 md5() auf bessere Funktion generateHash() umgestellt."; + break; + + case "0.3.9": // SQL queries for v0.3.9 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` CHANGE `birth_day` `birth_day` SMALLINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT '01', +CHANGE `birth_month` `birth_month` SMALLINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT '01', +CHANGE `birth_year` `birth_year` SMALLINT(4) UNSIGNED ZEROFILL NOT NULL DEFAULT 1970"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Datenbankspalten umgestellt auf SMALLINT() UNSIGNED ZEROFILL."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + if ((isBooleanConstantAndTrue('__DAILY_RESET')) && (getConfig('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[] = sprintf("%sinc/mails/birthday_mails.php", PATH); + } + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-bonus.php b/0.2.1-FINAL/inc/extensions/ext-bonus.php new file mode 100644 index 0000000000..a770c62193 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-bonus.php @@ -0,0 +1,570 @@ +paidlinks."; + 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ügen der Buchung gessetzt. Bitte laden Sie sich dazu - wenn nicht bereits geschehen - alle Patches bis mindestens Patch 240 unter Updates prüfen 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` (`action`,`what`,`title`,`sort`,`descr`) VALUES ('setup','config_bonus','Bonus-{!POINTS!}',8,'Richten Sie Bonus-{!POINTS!} ein, die beim x'ten Klick auf die Mail verbucht werden sollen. Beispiele: Der 1. Klick sollte mehr {!POINTS!} zusätzlich bekommen, als der 10. Klick.')"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD login_bonus FLOAT(20,3) NOT NULL DEFAULT 10.000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD turbo_bonus FLOAT(20,3) NOT NULL DEFAULT 100.000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD login_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT ".getConfig('one_day').""; + $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(3) UNSIGNED NOT NULL DEFAULT 10"; + // Use actual month for this update + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD login_bonus FLOAT(20,3) NOT NULL DEFAULT 0.000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD turbo_bonus FLOAT(20,3) NOT NULL DEFAULT 0.000"; + $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) UNSIGNED NOT NULL AUTO_INCREMENT, +userid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +mail_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +bonus_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +level BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +points FLOAT(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ählt fü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 what='bonus' LIMIT 1"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_member_menu` (`action`, `what`, `title`, `sort`, `visible`, `locked`, `counter`) VALUES ('main','bonus','Aktiv-Rallye',7,'Y','Y', 0)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Aktiv-Rallye mit Klick-Vergütung hinzugefü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ä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 "._MYSQL_PREFIX."_bonus_urls und "._MYSQL_PREFIX."_bonus_customer entfernt, da dies bald von der Erweiterung paidlinks 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ü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 FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` CHANGE login_bonus login_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` CHANGE login_bonus login_bonus FLOAT(20,5) UNSIGNED 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üpunkte im Gast-/Mitgliedsbereich kö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 show_bonus.php durchgeführt."; + break; + + case "0.3.2": // SQL queries for v0.3.2 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Design "Solid-Business" eingebaut."; + break; + + case "0.3.3": // SQL queries for v0.3.3 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Seit Patch 340 überflü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öglichen Gewinner an.', 10)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Link Aktiv-Rallye-Teilnehmer hinzugefügt, inklusive manuelle Vorbereitung der Vergü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) UNSIGNED NOT NULL DEFAULT 0"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Der Login-Bonus Aktiv-Bonus (= Klick-Bonus) kö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äteste Zeitmarke fü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ählbar, von dem die {!POINTS!} fü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 inc/footer.php 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) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day')*7).""; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD bonus_lines BIGINT(20) UNSIGNED NOT NULL DEFAULT 10"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Automatisches Löschen von Turbo-Bonus-Zeilen ("._MYSQL_PREFIX."_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt."; + break; + + case "0.4.1": // SQL queries for v0.4.1 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Vergü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 admin_list_bonus.tpl 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 FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD bonus_ref FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD bonus_stats FLOAT(20,5) UNSIGNED 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 FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD bonus_ref FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD bonus_stats FLOAT(20,5) UNSIGNED 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ür: Mailbestellung, Referal-Werbung (bei Best. der EMail-Adresse) und wenn 100% Klickrate jeder Mailbuchung erreicht wurde.
Template admin_config_bonus_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!
Eingestellte Bonus-{!POINTS!} fü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ü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 inc/monthly_bonus.php 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 is_hundred beim tä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 bonus_stats / Zeile 31 beim tä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örter Mailtausch, Mailtausches und Mailtauscher 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ür Platz 2 bis x 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 inc/monthly_bonus.php behoben."; + break; + + case "0.5.5": // SQL queries for v0.5.5 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Weitere Variablenfehler in inc/monthly_bonus.php haben dafür gesorgt, dass die monatliche Aktiv-Rallye nicht ausgeschüttet wurde. Mit diesem Update wurde die Ausschüttung initialisiert. Ihre Mitglieder bekommen voraussichtlicht nichts doppelt vergü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 "nach oben gerutsch"."; + 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 is_hundred beim täglichen Reset endlich beseitigt."; + break; + + case "0.5.9": // SQL queries for v0.5.9 + $UPDATE_NOTES = "Fehlermeldung /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 beseitigt."; + break; + + case "0.6.0": // SQL queries for v0.6.0 + $UPDATE_NOTES = "SQL-Fehlermeldung in inc/monthly_bonus.php 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öschen von bereits gelö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üpunkt "Bonus-{!POINTS!}" unter Einstellungen wird nach "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änderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberü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önnen nun auch die folgenden Vergütungen bei der Auswertung der monatlichen Aktiv-Rallye mit berücksichtigt werden: Mailbestätigung (war vorher schon), Login-, Mailbuchung, Referal 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ü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ü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öscht."; + break; + + case "0.7.4": // SQL queries for v0.7.4 + $UPDATE_NOTES = "Rechtlichen Hinweis im Mitgliedsbereich vergessen. (member_bonus.tpl)"; + break; + + case "0.7.5": // SQL queries for v0.7.5 + $UPDATE_NOTES = "Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!"; + break; + + case "0.7.6": // SQL queries for v0.7.6 + $UPDATE_NOTES = "Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu berücksichtigen Boni wurden diese bei der Sortierung der User-IDs nicht berü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 FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD bonus_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD bonus_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD bonus_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD bonus_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Optionale automatische Benachrichtigung ü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äglichen Reset beseitigt."; + break; + + case "0.7.9": // SQL queries for v0.7.9 + $UPDATE_NOTES = "Dollarzeichen fehlte in inc/reset/reset_bonus.php, Zeile 39"; + break; + + case "0.8.0": // SQL queries for v0.8.0 + $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden."; + break; + + case "0.8.1": // SQL queries for v0.8.1 + $UPDATE_NOTES = "Bei {!POINTS!}-Gleichstand wird als nä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ü komplett umgebaut."; + break; + + case "0.8.4": // SQL queries for v0.8.4 + $UPDATE_NOTES = "Ladeproblem bei nicht installierter Erweiterung cache 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; + + case "0.8.7": // SQL queries for v0.8.7 + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10)"; + + // Update notes + $UPDATE_NOTES = "Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt."; + break; + + case "0.8.8": // SQL queries for v0.8.8 + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_stats ADD bonus_stats_active ENUM('Y','N') NOT NULL DEFAULT 'N'"; + + // Update notes + $UPDATE_NOTES = "Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + if (isBooleanConstantAndTrue('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1)) { + // Daily reset was run so let's check if active rallye is activated + if (getConfig('bonus_active') == "Y") { + // Run active rallye + if (getConfig('bonus_stats') > 0) $INC_POOL[] = sprintf("%sinc/stats_bonus.php", PATH); + $INC_POOL[] = sprintf("%sinc/monthly/monthly_bonus.php", PATH); + } else { + // Reset points + $INC_POOL[] = sprintf("%sinc/reset/reset_bonus.php", PATH); + } + } + + // Check for bonus rallye is active and send mails out + if ((getConfig('bonus_active') == "Y") && (getConfig('bonus_new_mem_notify') == "Y")) { + // Include file for sending out mails + $INC_POOL[] = sprintf("%sinc/mails/bonus_mails.php", PATH); + } + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-booking.php b/0.2.1-FINAL/inc/extensions/ext-booking.php new file mode 100644 index 0000000000..73ea712ff2 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-booking.php @@ -0,0 +1,111 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-cache.php b/0.2.1-FINAL/inc/extensions/ext-cache.php new file mode 100644 index 0000000000..3798fa9677 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-cache.php @@ -0,0 +1,264 @@ +loadCacheFile("extensions", true)) $cacheInstance->destroyCacheFile(); + } // END - if + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Spalte "keep_active" ist hinzugefü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) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD cache_hits BIGINT(20) UNSIGNED 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ä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 Falsches Passwort! 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.2.1 + // 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 Division durch 0 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 "._MYSQL_PREFIX."_config, "._MYSQL_PREFIX."_refsystem, "._MYSQL_PREFIX."_refdepths und "._MYSQL_PREFIX."_mod_reg 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ö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ält."; + break; + + case "0.1.4": // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Fehler Division durch 0 repariert in inc/load_cache.php."; + 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ä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; + + case "0.1.8": // SQL queries for v0.1.8 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD cache_themes ENUM('Y','N') NOT NULL DEFAULT 'Y'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Daten von installierten Themes werden nun gecacht."; + break; + + case "0.1.9": // SQL queries for v0.1.9 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD cache_admin_menu ENUM('Y','N') NOT NULL DEFAULT 'N'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Administratormenü experimentell gecacht."; + break; + + case "0.2.0": // SQL queries for v0.2.0 + // This update depends on sql_patches + $EXT_UPDATE_DEPENDS = "sql_patches"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Die Erweiterung hängt nun von der sql_patches ab."; + break; + + case "0.2.1": // SQL queries for v0.2.1 + // Register the new filter + REGISTER_FILTER('extension_update', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, $dry_run); + REGISTER_FILTER('post_extension_installed', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, $dry_run); + REGISTER_FILTER('post_extension_run_sql', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, $dry_run); + REGISTER_FILTER('post_admin_added', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, $dry_run); + REGISTER_FILTER('post_admin_edited', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, $dry_run); + REGISTER_FILTER('post_admin_deleted', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, $dry_run); + REGISTER_FILTER('post_admin_reset_pass', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, $dry_run); + REGISTER_FILTER('extension_remove', 'CACHE_DESTROY_ALL', false, true, $dry_run); + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Filter für Erweiterungsmanagement hinzugefügt."; + break; + + case "0.2.2": // SQL queries for v0.2.2 + // Register the new filter + REGISTER_FILTER('post_extension_installed', 'CACHE_PURGE_ADMIN_MENU', false, true, $dry_run); + REGISTER_FILTER('post_extension_run_sql', 'CACHE_PURGE_ADMIN_MENU', false, true, $dry_run); + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Weitere Filter hinzugefügt."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // Create instance on class + if ($cacheMode != "init") { + // Make cacheInstance global + global $cacheInstance; + + // Initialize cache system only when it's needed + $cacheInstance = new CacheSystem(getConfig('cache_update'), PATH."inc/".getConfig('cache_path'), getConfig('cache_tested')); + if ($cacheInstance->getStatus() != "done") { + // Failed to initialize cache sustem + ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_INITIALIZE); + } // END - if + } // END - if + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-country.php b/0.2.1-FINAL/inc/extensions/ext-country.php new file mode 100644 index 0000000000..d66dc454d5 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-country.php @@ -0,0 +1,124 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-debug.php b/0.2.1-FINAL/inc/extensions/ext-debug.php new file mode 100644 index 0000000000..886c135548 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-debug.php @@ -0,0 +1,179 @@ + client connection + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_debug_client_log`"; + $SQLs[] = "CREATE TABLE `"._MYSQL_PREFIX."_debug_client_log` ( +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`client_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 1, +`log_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +INDEX `client_log` (`client_id`,`log_id`), +UNIQUE (`log_id`), +PRIMARY KEY (`id`) +) TYPE=MyISAM COMMENT='Debug client <-> log connection'"; + + // Guest menus + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('debug',NULL,'Debug-System','Y','Y',2)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('debug','debug_info','Informationen','Y','Y',1)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('debug','debug_reg','Anmeldung','Y','Y',2)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('debug','debug_unreg','Abmeldung','Y','Y',3)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('debug','debug_pilory','Spam-Pranger','Y','Y',4)"; + + // Admin menu + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('debug',NULL,'Debug-System','Verwalten Sie hier komfortabel das debug.log, welches sich im Verzeichnis inc/cache/ befindet.',10)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('debug','import_debug','debug.log importieren','Importieren Sie hier manuell die debug.log, damit neue Einträge mit bestehenden abgeglichen werden können und dann evtl. hinzugefügt werden. Die debug.log wird nach dem Import automatisch vom Server entfernt. Dieser Vorgang wird für Sie nachts automatisch erledigt!',1)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('debug','list_debug','Einträge anzeigen','Listet alle bereits importierten Einträge auf. Von hier aus versenden Sie noch nicht gemeldete Fehler an das Relay-Netzwerk, damt diese vom MXChange-Team geprüft werden können.',2)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('debug','reg_debug','Am Server anmelden','Sie müssen zuerst Ihren Debug-Client (Ihr {!MT_WORD!} ist dies) oder Relay am Server von MXChange.org anmelden. Dies geschieht für Sie nicht automatisch, da Sie Ihre Daten zuvor überprüfen müssen, wie z.B. URL, eMail-Adresse und {!MT_WORD!}-Titel.',3)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('debug','unreg_debug','Vom Server abmelden','Melden Sie bitte Ihren {!MT_WORD!} wieder vom MXChange-Server ab, damit das Team von MXChange.org weiss, welche Keys nicht mehr genutzt werden.',4)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('debug','config_debug','Einstellungen','Ändern Sie hier alle Einstellungen, wie auch den Debug-Modus - ob Client, Hub oder selber Server sein. Lesen Sie dazu die Anleitung unter DOCs/de/debug/README.txt durch! Oder kommen Sie in's Forum. Das Team von MXChange.org hilft Ihnen gerne weiter.',5)"; + + // Config entries + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `debug_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `debug_key` VARCHAR(255) NOT NULL DEFAULT ''"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `debug_mode` ENUM('CLIENT','RELAY','SERVER') NOT NULL DEFAULT 'CLIENT'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `debug_new_log` ENUM('ACCEPT','FIRST','REG') NOT NULL DEFAULT 'FIRST'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `debug_new_client` ENUM('ACTIVE','NEW','REG') NOT NULL DEFAULT 'NEW'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `debug_reject_log` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day') * 30).""; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `debug_master_url` VARCHAR(255) NOT NULL DEFAULT '{!SERVER_URL!}'"; + break; + +case "remove": // Do stuff when removing extension + // SQL commands to run + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_debug_client_log`"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_debug_client`"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_debug_log`"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_debug_log_abuse`"; + $SQLs[] = "DELETE LOW_PRIORITY FROM `"._MYSQL_PREFIX."_guest_menu` WHERE `action`='debug' LIMIT 5"; + $SQLs[] = "DELETE LOW_PRIORITY FROM `"._MYSQL_PREFIX."_admin_menu` WHERE `action`='debug' LIMIT 6"; + 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`='debug' LIMIT 5"; + break; + +case "deactivate": // Do stuff when admin deactivates this extension + // SQL commands to run + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_guest_menu` SET `locked`='Y' WHERE `action`='debug' LIMIT 5"; + 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-demo.php b/0.2.1-FINAL/inc/extensions/ext-demo.php new file mode 100644 index 0000000000..d6e8cc589b --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-demo.php @@ -0,0 +1,89 @@ +Mailtausch, Mailtausches und Mailtauscher sind austauschbar."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-doubler.php b/0.2.1-FINAL/inc/extensions/ext-doubler.php new file mode 100644 index 0000000000..75cc6c2d3f --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-doubler.php @@ -0,0 +1,249 @@ +none) + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD doubler_uid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + // Total payed out points from your doublers + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD doubler_points FLOAT(20,5) UNSIGNED 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) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day')*7).""; + // Number of newest entries to display + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD doubler_display_new TINYINT(3) UNSIGNED 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) UNSIGNED NOT NULL DEFAULT 10"; + // Number of entries which are already payed out + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD doubler_display_old TINYINT(3) UNSIGNED NOT NULL DEFAULT 10"; + // Points used by every member + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD doubler_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + // Counter for usage of the doubler + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD doubler_counter BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + + // + // --- MENU SYSTEMS --- + // + // Admin menu + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('doubler', NULL, '{!POINTS!}-Verdoppler','Einstellungen und Einträge auflisten.', 4)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('doubler','list_doubler','Auflisten','Einträ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ü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='N', locked='Y' WHERE what='doubler' LIMIT 1"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_guest_menu` SET visible='N', 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 FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Gebü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 übrige {!POINTS!} in Templates eingebunden. Auflistung in Admin-Bereich komplettiert."; + break; + + case "0.0.6": // SQL queries for v0.0.6 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD doubler_max_sent TINYINT(3) UNSIGNED NOT NULL DEFAULT 1"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD doubler_group_sent TINYINT(3) UNSIGNED 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ührenabzug wird beim Einzahlen abgezogen (wurde von Auszahlung abgezogen) und maximal bei Auszahlung zu kontrollierende Accounts einstellbar.
Template admin_config_doubler_pro.tpl ist überflüssig geworden. Bitte lö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örter Mailtausch, Mailtausches und Mailtauscher sind austauschbar.

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.2.1 + // 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 inc/doubler_send.php 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ü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ü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ü 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 md5() auf bessere Funktion generateHash() 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + if ((isBooleanConstantAndTrue('__DAILY_RESET')) && (getConfig('doubler_send_mode') == "RESET")) { + // So let's check for points + $INC_POOL[] = sprintf("%sinc/doubler_send.php", PATH); + } + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-events.php b/0.2.1-FINAL/inc/extensions/ext-events.php new file mode 100644 index 0000000000..145076f9d0 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-events.php @@ -0,0 +1,88 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-holiday.php b/0.2.1-FINAL/inc/extensions/ext-holiday.php new file mode 100644 index 0000000000..fec355f877 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-holiday.php @@ -0,0 +1,233 @@ +Patch 340 überflü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 ADMIN_USER_PROFILE_LINK() ausgelagert."; + break; + + case "0.0.9": // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Wörter Mailtausch, Mailtausches und Mailtauscher sind austauschbar."; + break; + + case "0.1.0": // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen geschü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) UNSIGNED NOT NULL DEFAULT '".(getConfig('one_day')*2)."'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Die Mitglieder-Accounts werden nicht mehr gesperrt, sondern nur auf Urlaub geschaltet. Lassen Sie sich nicht davon verwirren, dass sie "freigegeben" 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ü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) UNSIGNED NOT NULL DEFAULT 0"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Fehlende Tabellenspalte hinzugefü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 empty() 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ü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ü 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='' OR what IS NULL) LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Mitgliedsmenü 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-html_mail.php b/0.2.1-FINAL/inc/extensions/ext-html_mail.php new file mode 100644 index 0000000000..688ffb9329 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-html_mail.php @@ -0,0 +1,176 @@ +Patch 340 überflü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örter Mailtausch, Mailtausches und Mailtauscher 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ü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; + + case "0.1.6": + // Dependency is needed for ext-registration!! (want to alter a non existent Table) + $EXT_UPDATE_DEPENDS = "bonus"; + $UPDATE_NOTES = "Abhänigkeit von der Erweiterung bonus hinzugefügt."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + 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; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-iso3166.php b/0.2.1-FINAL/inc/extensions/ext-iso3166.php new file mode 100644 index 0000000000..4c2cd173ac --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-iso3166.php @@ -0,0 +1,338 @@ +Alle Länder sind zuerst deaktiviert. Achtung DE könnte doppelt vorkommen.
Ein Aktivieren/Deaktivieren lässt alle Länder beim Registrieren anzeigen oder nicht Anzeigen."; + break; + + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// [EOF] +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-mailid.php b/0.2.1-FINAL/inc/extensions/ext-mailid.php new file mode 100644 index 0000000000..d9e3367476 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-mailid.php @@ -0,0 +1,244 @@ +uid, mailid und bonusid durch die eigene Funktion bigintval() in den beiden Dateien mailid.php und mailid_top.php."; + 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. Seite nicht gefunden 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ätigung klappt wieder."; + break; + + case "0.1.0": // SQL queries for v0.2.1 + // 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ätigungcodes bei Druck auf Return-Taste. Bitte aktualisieren Sie auch das Template mailid_confirm_buttom.tpl, damit die Bestä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üpunkte im Gast-/Mitgliedsbereich kö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 mailid.php und mailid_top.php durchgefü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ötigt, um die Bestätigung durchzuführen."; + break; + + case "0.1.6": // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Template mailid_frameset.tpl nach mailid_frames.tpl 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 inc/footer.php 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ätigung angezeigt. Bitte aktualisieren Sie die Templates mailid_points_done.tpl, mailid_points_done2.tpl und mailid_frames.tpl !"; + 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 mailid war nicht gesetzt. Dadurch wurden die URLs (loader z.B.) umgeschrieben und fü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ü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 noch auf Auszahlung wartendem Guthaben aufaddiert wird, wird eine entsprechende Nachricht ausgegeben (neue Templates mailid_points_locked und mailid_points_locked2 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-Referal-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 = "Code wiederholen nach Code eingeben hin geä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ü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önnen erst bei aktivierter Erweiterung mailid 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 {!PATH!}/templates/de/html/mailid/mailid_points_lcoked2.tpl lö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ändert."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-maintenance.php b/0.2.1-FINAL/inc/extensions/ext-maintenance.php new file mode 100644 index 0000000000..b88d73a90c --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-maintenance.php @@ -0,0 +1,118 @@ +Patch 340 überflü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ü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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-mediadata.php b/0.2.1-FINAL/inc/extensions/ext-mediadata.php new file mode 100644 index 0000000000..d734b49bec --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-mediadata.php @@ -0,0 +1,156 @@ +aktuellen Zustandes berücksichtigen kann und nicht bereits gelö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 empty() 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) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD mt_stage BIGINT(20) UNSIGNED 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)
+Bitte stellen Sie diesen derzeit manuell unter Einstellungen-Medidata 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; + + case "0.0.9": // SQL queries for v0.0.9 + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('main','mediadata','Mediendaten',3,'Y','N')"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Menüpunkt wird durch diese Erweiterung generiert."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + 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[] = sprintf("%sinc/gen_mediadata.php", PATH); + } // END - if +} // END - if + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-mods.php b/0.2.1-FINAL/inc/extensions/ext-mods.php new file mode 100644 index 0000000000..641c9b9ddc --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-mods.php @@ -0,0 +1,123 @@ +Patch 340 überflü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ü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='' OR what IS NULL) LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Verwaltung auf Management umgestellt."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-mydata.php b/0.2.1-FINAL/inc/extensions/ext-mydata.php new file mode 100644 index 0000000000..bdc46cc1e4 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-mydata.php @@ -0,0 +1,174 @@ +Patch 340 überflü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 "Firma" hinzugefügt."; + break; + + case "0.1.0": // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Datumsformat festgelegt auf ausfü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¨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 country, die Sie sich noch optional von meiner Seite herunterladen müssen.
+
+Wichtig: Laden Sie noch die Template member_mydata_overview und member_mydata_edit (beide zu finden unter templates/".GET_LANGUAGE()."/html/member/ !) mit hoch!"; + + // Depends on 'country'! + $EXT_UPDATE_DEPENDS = "country"; + break; + + 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ä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önnen nun auch ohne der Erweiterung country 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 md5() auf bessere Funktion generateHash() 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-network.php b/0.2.1-FINAL/inc/extensions/ext-network.php new file mode 100644 index 0000000000..67d04e4787 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-network.php @@ -0,0 +1,87 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-newsletter.php b/0.2.1-FINAL/inc/extensions/ext-newsletter.php new file mode 100644 index 0000000000..04da646cf8 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-newsletter.php @@ -0,0 +1,179 @@ +Immer aktiv fü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örter Mailtausch, Mailtausches und Mailtauscher 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öschen!"; + break; + + case "0.0.7": // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Script inc/monthly/monthly_newsletter.php wird nicht mehr ausgefü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ü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 html_mail können Sie auch HTML-Mails versenden."; + break; + + case "0.1.0": // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Nur bei installierter Erweiterung html_mail können Sie auch HTML-Mails versenden."; + break; + + case "0.1.1": // SQL queries for v0.1.1 + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Währung auf die Erweiterung ext-other.zip 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // URL ends which are used to indentify the end of an URL or email link + // Don't use these chars in links... ;-) + // + global $URL_ENDS, $VALID_EMAIL_CHARS; + $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 (isBooleanConstantAndTrue('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1)) { + // Daily reset was run so let's check out for expired newsletter orders + $INC_POOL[] = sprintf("%sinc/monthly/monthly_newsletter.php", PATH); + } + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-nickname.php b/0.2.1-FINAL/inc/extensions/ext-nickname.php new file mode 100644 index 0000000000..bb97b36a24 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-nickname.php @@ -0,0 +1,214 @@ +Patch 340 überflü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ü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 ODER 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ü 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 *failed* 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; + + case "0.1.9": // SQL queries for v0.1.9 + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','list_nickname','Nickname-Historie','Listet alle verwendeten Nicknames der Mitglieder auf.', 12)"; + $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_nickname_history"; + $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_nickname_history ( +id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +userid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +nickname VARCHAR(255) NOT NULL DEFAULT '', +added TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +last_used TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', +INDEX userid (userid), +INDEX (last_used DESC), +PRIMARY KEY(id) +) TYPE=MyISAM COMMENT='History of used nicknames'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Historie eingegebener Nicknames hinzugefügt. Mitglied kann auf bereits verwendeter zurückgreifen und Liste selbst löschen."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // @TODO|@DEPRECATED Please rewrite these constants, LOAD_CONFIG() is no more needed in extensions + $dummy = LOAD_CONFIG(); + define('__NICKNAME_LANG_CHARS', $dummy['nickname_chars']); + define('__NICKNAME_LENGTH' , $dummy['nickname_len']); + define('__NICKNAME_PATTERN' , $dummy['nickname_pattern']); + unset($dummy); + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-online.php b/0.2.1-FINAL/inc/extensions/ext-online.php new file mode 100644 index 0000000000..1ed6e70204 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-online.php @@ -0,0 +1,136 @@ +Unknown column 'visibled' in 'field list' behoben."; + break; + + case "0.0.2": // SQL queries for v0.0.2 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Seit Patch 340 überflü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; + + case "0.0.5": // SQL queries for v0.0.5 + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('online',NULL,'Jetzt Online','2','Y','N')"; + + // Register filter + REGISTER_FILTER('init', 'UPDATE_ONLINE_LIST', false, true, $dry_run); + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Hinzufügen des Menüpunktes "Jetzt Online" wird nun von dieser Erweiterung erledigt. Filter hinzugefügt."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-optimize.php b/0.2.1-FINAL/inc/extensions/ext-optimize.php new file mode 100644 index 0000000000..4f9f5b772c --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-optimize.php @@ -0,0 +1,123 @@ +Patch 340 überflü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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-order.php b/0.2.1-FINAL/inc/extensions/ext-order.php new file mode 100644 index 0000000000..ff17638453 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-order.php @@ -0,0 +1,331 @@ +mail_order korregiert auf mail_orders."; + 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üpunkte im Gast-/Mitgliedsbereich kö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 Patch 340 überflü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 member_frameset-back.tpl und member_frameset-send.tpl nach member_order_back.tpl und member_order_send.tpl 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 überprüft ob auch genügend Empfänger eingegeben worden sind und ob auch genü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) UNSIGNED NOT NULL DEFAULT 10"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Minimum an Empfänger pro Mailbuchung einstellbar. Standart: 10 Empfä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ä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ötigen {!POINTS!} die maximale Anzahl von Usern in der Kategorie gewählt und +nicht die vom Mitglied eingegebene. Resultat: Das Script beschwerte sich, der User hätte nicht genügend {!POINTS!} auf dem Konto. Ein Rechenbeispiel: +
    +
  1. Das Mitglied wählt eine Kategorie XYZ mit maximal 15 Empfängern aus.
  2. +
  3. Es stellt die Mailart "3 {!POINTS!} Kosten / Mail" ein.
  4. +
  5. Es hat aber nur {!POINTS!} für 10 Empfänger und gibt 10 ein.
  6. +
  7. Das Script hatte bis zu dieser Version 3 {!POINTS!} * 15 = 45 {!POINTS!} gerechnet, hat das Mitglied mehr oder gleich 45 {!POINTS!}, fiehl dieser Fehler nicht + auf.
  8. +
  9. Hatte es aber, wie hier im Beispiel 31 {!POINTS!}, konnte es nicht mehr buchen.
  10. +
  11. Jetzt ist der Fehler endlich weg! Machen Sie dies bitte Ihren Mitgliedern bekannt.
  12. +
"; + break; + + case "0.2.7": // SQL queries for v0.2.7 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Fehler mit __MIN_VALUE 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 order.php 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ührlich."; + break; + + case "0.3.3": // SQL queries for v0.3.3 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Unter Einstellungen - Mailbuchungsseite war immer die Tabellenspalte Mitgliedsnummer ausgewä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 support und order 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 max_mails, die durch das Mitglieder verä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 (inc/modules/order.php) wurde fehlerhafterweise die Erweiterung beg 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 WHERE ext_active='Y' 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ü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',NULL,'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ü 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; + + case "0.4.8": // SQL queries for v0.4.8 + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_admin_menu` SET title='Mailbuchung' WHERE what='config_order' LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Menüpunkt "Mailbuchungsseite" nach "Mailbuchung" umbenannt und weitere Einstellungen aus Sonstige Einstellungen verschoben."; + break; + + case "0.4.9": // SQL queries for v0.4.9 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD repay_deleted_mails ENUM('REPAY','JACKPOT','SHRED') NOT NULL DEFAULT 'REPAY'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Bei Löschung von Mailbuchungen kann nun global entschieden werden (Einstellungen also), ob die verbliebenen {!POINTS!} wieder gutgeschrieben werden sollen oder in den Jackpot landen."; + break; + + case "0.5.0": // SQL queries for v0.5.0 + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_url_blacklist`"; + $SQLs[] = "CREATE TABLE `"._MYSQL_PREFIX."_url_blacklist` ( +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`url` VARCHAR(255) NOT NULL DEFAULT '', +`pool_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +PRIMARY KEY (`id`), +INDEX (`pool_id`) +) TYPE=MYISAM COMMENT='URL blacklist'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Tabelle für URL-Sperrliste angelegt."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // Do daily reset only when installed and extension version is at least 0.1.1 + if ((isBooleanConstantAndTrue('__DAILY_RESET')) && (isBooleanConstantAndTrue('mxchange_installed')) && (isBooleanConstantAndTrue('mxchange_installed')) && (isBooleanConstantAndTrue('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__); + } // END - if + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-other.php b/0.2.1-FINAL/inc/extensions/ext-other.php new file mode 100644 index 0000000000..719e9a7cd3 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-other.php @@ -0,0 +1,211 @@ +Warning: Missing argument 2 for create_timestamp_from_selections() in {!PATH!}inc/libs/pro_functions.php on line 227 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(3) UNSIGNED NOT NULL DEFAULT '3'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Angezeigte Kommastellen kö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ü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.2.1 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Folgende Einstellungen können auf 0 gesetzt werden: +
    +
  1. Selbe beworbene URL nicht mehr bewerbar (0 = URL kann sofort wieder gebucht werden)
  2. +
  3. Gütigkeitsdauer der Bestätigungslinks (0 = Bestätigungslinks laufen nie ab)
  4. +
  5. Sperrzeit des Mitgliedprofiles nach Änderung (0 = Mitglied kann sein Account immer und sofort ändern)
  6. +
  7. Profilaktualisierungsinterval (0 = Es wird keine Mail zum Profilaktualisierunng durch das Mitglied ausgesendet(
  8. +
  9. Erneute Aussendung der Mail (0 = Siehe oben)
  10. +
"; + 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ü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örter Mailtausch, Mailtausches und Mailtauscher 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 "Baustelle" 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 '€'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Standart-Währung der Gebühren für alle Erweiterungen geltend hinzugefü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 ändern, wenn die Erweiterung other auch installiert ist. Anderfalls gibt es einen SQL-Fehler beim Speichern und GROSS_GESCHRIEBENE Worte im Formular."; + break; + + case "0.1.9": // SQL queries for v0.1.9 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD mailid_error_redirect ENUM('index','reject') NOT NULL DEFAULT 'index'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Bei fehlerhafter Mail während der Bestätigung kann wahlweise zur Hauptseite weitergeleitet oder auf die eingestellte Ablehnungsseite umgeleitet werden."; + break; + + case "0.2.0": // SQL queries for v0.2.0 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` CHANGE `mailid_error_redirect` `mailid_error_redirect` ENUM('INDEX','REJECT') NOT NULL DEFAULT 'INDEX'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Bei fehlerhafter Mail während der Bestätigung kann wahlweise zur Hauptseite weitergeleitet oder auf die eingestellte Ablehnungsseite umgeleitet werden."; + break; + + case "0.2.1": // SQL queries for v0.2.1 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `min_age` TINYINT(3) UNSIGNED NOT NULL DEFAULT 16"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Minimumalter ist nun konfigurierbar."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-payout.php b/0.2.1-FINAL/inc/extensions/ext-payout.php new file mode 100644 index 0000000000..8c7de0e4e5 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-payout.php @@ -0,0 +1,249 @@ +member_payout.tpl."; + 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 FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payout_types CHANGE rate rate FLOAT(20,5) UNSIGNED 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üpunkte im Gast-/Mitgliedsbereich kö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ö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 Patch 340 überflü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 ADMIN_USER_PROFILE_LINK() 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ösung zu temporä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 überweisende {!POINTS!} müssen immer grö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ü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 md5() auf bessere Funktion generateHash() 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='' OR what IS NULL) 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-primera.php b/0.2.1-FINAL/inc/extensions/ext-primera.php new file mode 100644 index 0000000000..246335a98c --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-primera.php @@ -0,0 +1,125 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-profile.php b/0.2.1-FINAL/inc/extensions/ext-profile.php new file mode 100644 index 0000000000..75a70b6bc5 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-profile.php @@ -0,0 +1,134 @@ +profile_update und prof_reupdate > 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ührlich."; + break; + + case "0.0.7": // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Wörter Mailtausch, Mailtausches und Mailtauscher 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össt mit Erweiterung update (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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // Do we have a daily-reset-run? + if (isBooleanConstantAndTrue('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1)) { + // So let's check for profiles which needs an update + $INC_POOL[] = sprintf("%sinc/profile-updte.php", PATH); + } + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-rallye.php b/0.2.1-FINAL/inc/extensions/ext-rallye.php new file mode 100644 index 0000000000..4e697fc1f9 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-rallye.php @@ -0,0 +1,369 @@ +Unknown column 'd.useid' in 'on clause' 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 Template nicht gefunden 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 Template nicht gefunden ist endlich beseitigt."; + break; + + case "0.1.0": // SQL queries for v0.2.1 + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_users CHANGE curr_points curr_points FLOAT(23,5) UNSIGNED 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üpunkte im Gast-/Mitgliedsbereich kö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 Patch 340 überflü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 Referal-Anazahl in der Mail zur Rallye-Ankü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 Referal-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) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD min_prices BIGINT(20) UNSIGNED NOT NULL DEFAULT '3'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Ablaufen der Rallyes intergriert. Bauen Sie in Ihr Template templates/de/emails/member/member_rallye_notify.tpl folgende zwei Zeilen ein:
+
    +
  • $DATA[min_users]
  • +
  • $DATA[min_prices]
  • +
+Zudem sollten Sie mindestens folgende Templates (in templates/".GET_LANGUAGE()."/html/guest/ !) aktualisieren:
+
    +
  • guest_rallye_footer.tpl
  • +
  • guest_rallye_header.tpl
  • +
"; + break; + + case "0.2.1": // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Wörter Mailtausch, Mailtausches und Mailtauscher 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 what=admins_contct geä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üpunkt "Rallyes verwalten" 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 Referal-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ü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 empty() 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ür automatisch generierte Admin-Kontaktlinks geändert."; + break; + + case "0.3.2": // SQL queries for v0.3.2 + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_member_menu` SET action='rals', sort='1', title='Referal-Rallye' WHERE what='rallyes' LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Mitgliedsmenü 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 autopurge 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; + + case "0.3.5": // SQL queries for 0.3.5 + // This update depends on sql_patches + $EXT_UPDATE_DEPENDS = "sql_patches"; + + // Register filter + REGISTER_FILTER('extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', false, true, $dry_run); + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Filter hinzugefügt und ist von sql_patches abhängig."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // Do stuff only when not in CSS mode + if (($CSS != "1") && ($CSS != "-1") && ($cacheMode != "init")) { + // 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)"; + } // END - if + + // 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 <= UNIX_TIMESTAMP() AND end_time > UNIX_TIMESTAMP() +LIMIT 1", __FILE__, __LINE__); + if (SQL_NUMROWS($result) == 1) { + // Start rallye + RALLYE_AUTOSTART_RALLYES($result); + } // END - if + + // 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 <= UNIX_TIMESTAMP()".$OR.") +LIMIT 1", __FILE__, __LINE__); + if ((SQL_NUMROWS($result) == 1) && (EXT_IS_ACTIVE("autopurge"))) { + // End rallye here... + RALLYE_EXPIRE_RALLYES($result); + } // END - if + + // Free memory + SQL_FREERESULT($result); + } // END - if + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-refback.php b/0.2.1-FINAL/inc/extensions/ext-refback.php new file mode 100644 index 0000000000..0d1f452a12 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-refback.php @@ -0,0 +1,121 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-register.php b/0.2.1-FINAL/inc/extensions/ext-register.php new file mode 100644 index 0000000000..d479f1af94 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-register.php @@ -0,0 +1,332 @@ +Profildaten ändern ein.', 12)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Einstellbare Pflichtfelder hinzugefü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 Referal-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ä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üpunkte im Gast-/Mitgliedsbereich kö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ä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 refid 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 "Solid-Business" eingebaut."; + break; + + case "0.2.5": // SQL queries for v0.2.5 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Seit Patch 340 überflü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 = "Referal-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 what-register.php beseitigt."; + break; + + case "0.2.9": // SQL queries for v0.2.9 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Anrede "Firma" hinzugefügt."; + break; + + case "0.3.0": // SQL queries for v0.3.0 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Wörter Mailtausch, Mailtausches und Mailtauscher 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¨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 country, die Sie sich noch optional von meiner Seite herunterladen müssen.
+
+Wichtig: Laden Sie noch das Template guest_register.tpl mit hoch, welches unter templates/".GET_LANGUAGE()."/html/guest/ zu finden ist!"; + + // 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ä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 country in die Anmeldephase klappte die Anmeldung nicht. Die dazu nütige Verknü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ü übernommen."; + break; + + case "0.3.6": // SQL queries for v0.3.6 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Fehlermeldung Fatal error: Call to undefined function: get_theme() in /../../guest/what-register.php on line 190 beseitigt."; + break; + + case "0.3.7": // SQL queries for v0.3.7 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Fehlermeldung Fatal error: Call to undefined function: get_curr_themee() in /../../guest/what-register.php on line 190 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 Ändern des Templates templates/".GET_LANGUAGE()."/html/guest/guest_register.tpl ist nicht mehr nö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 inc/modules/guest/what-register.php 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 empty() 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 = "set_session() 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 md5() auf bessere Funktion generateHash() 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 Fatal error: Call to undefined function REGISTER_ADD_CATEGORY_TABLE() in {!PATH!}/inc/modules/guest/what-register.php on line 434 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 register-member.tpl gefixt. Danke an wliepe fü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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-removeip.php b/0.2.1-FINAL/inc/extensions/ext-removeip.php new file mode 100644 index 0000000000..e1970b9f0f --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-removeip.php @@ -0,0 +1,105 @@ +sql_patches abhängig."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-repair.php b/0.2.1-FINAL/inc/extensions/ext-repair.php new file mode 100644 index 0000000000..ade74b3c75 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-repair.php @@ -0,0 +1,119 @@ +Patch 340 überflü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 = "Ungütiges Update nach neuster Konvention (Erweiterung menu ist ung&uum;ltig)."; + 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ür die Include-Befehle."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-rewrite.php b/0.2.1-FINAL/inc/extensions/ext-rewrite.php new file mode 100644 index 0000000000..4cb2b00ca0 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-rewrite.php @@ -0,0 +1,172 @@ +Mailtausch, Mailtausches und Mailtauscher 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; + case "0.1.3": + // Check if mod_rewrite is loadeded + if (!IF_APACHE_MODULE_LOADED('mod_rewrite')){ + $EXT_REPORTS_FAILURE = true; + //ADD_FATAL(MOD_REWRITE_ERROR); + } // END - if + $UPDATE_NOTES = "Es wird beim Registrieren und aktivieren geprüft, ob im Apache das Modul mod_rewrite geladen wurde. Wenn mod_rewrite nicht gefunden werden konnte, wird abgebrochen."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // Check if mod_rewrite is loadeded + if (!IF_APACHE_MODULE_LOADED('mod_rewrite')){ + $EXT_REPORTS_FAILURE = true; + SQL_QUERY("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='N' WHERE ext_name='rewrite' LIMIT 1", __FILE__, __LINE__); + if (!IS_ADMIN())ADD_FATAL(MOD_REWRITE_ERROR); + } // END - if + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-safe.php b/0.2.1-FINAL/inc/extensions/ext-safe.php new file mode 100644 index 0000000000..f9859ec4a7 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-safe.php @@ -0,0 +1,88 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-sponsor.php b/0.2.1-FINAL/inc/extensions/ext-sponsor.php new file mode 100644 index 0000000000..8bc5cf8fc9 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-sponsor.php @@ -0,0 +1,428 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-sql_patches.php b/0.2.1-FINAL/inc/extensions/ext-sql_patches.php new file mode 100644 index 0000000000..1d10934a85 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-sql_patches.php @@ -0,0 +1,784 @@ +"._MYSQL_PREFIX."_config musste die Spalte auto_purge (autom. Löschen von Bestätigungsmails angepasst werden (war auf dem Testsystem auf TINYINT(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 "Punkte" kann nun per Datenbank geändert werden. Damit können Sie anstelle des Wortes Punkte auch Klammlose oder € schreiben."; + break; + + case "0.0.4": // SQL queries for v0.0.4 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD mails_page BIGINT(20) UNSIGNED NOT NULL DEFAULT 10"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Anzahl Mails pro Seite in EMail-Details ansehen und EMail-Archiv hinzugefü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üpunkt (what-welcome ist Standart) als Einstiegspunkt in das Menüsystem genutzt werden soll.', 5)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geä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önnen nun SQL-Updates von einander abhä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 ' · '"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Nette Mouse-Hover-Effekte eingebaut (Anleitung MENUE_HOVER.txt 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ätigte Maillinks an. Bitte diesen Link nur ü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ätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden."; + break; + + case "0.1.0": // SQL queries for v0.2.1 + $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 über das Referal-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üpunkt (what-welcome ist Standart) als Einstiegspunkt in das Menü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(3) UNSIGNED NOT NULL DEFAULT '-1'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD index_cookie BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day')*365).""; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Sie können nun hier die Verzögerungszeit in der Eingangsseite 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 Referal-Link Ihren Mailtausch aufgerufen hat.', 7)"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD def_refid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Standart Referal-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 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Ungültiges Update (nach ext-theme.php verschoben!)."; + 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 ext_has_admin aus der Tabelle "._MYSQL_PREFIX."_extensions 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 ä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 what-Dateien kann hinzugefü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_count 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 FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payments CHANGE payment payment FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_payments CHANGE price price FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` CHANGE used_points used_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_points CHANGE points points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_points CHANGE locked_points locked_points FLOAT(20,5) UNSIGNED 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ü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_READABLE(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ätigungscodes hängt davon ab, ob die PHP-Funktion imagecreatefromjpeg() 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) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` CHANGE max_mails max_mails BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Spalten max_mails und receive_mails 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öglich."; + break; + + case "0.2.7": // SQL queries for v0.2.7 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD stats_limit BIGINT(20) UNSIGNED 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 = "
    +
  1. Das Mitglied kann das derzeitige Design in sein Profil abspeichern.
  2. +
  3. Mitgliederstatistik mit Seitennavigation.
  4. +
"; + 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ä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örter Mailtausch, Mailtausches und Mailtauscher sind austauschbar."; + break; + + case "0.3.0": // SQL queries for v0.3.0 + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_admin_menu` SET title='{!POINTS!}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_admin_menu` SET title='Mailvergütungen...' WHERE `what`='payments' LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Zwei Menü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."_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üssel (UNIQUE KEY) und normale Schlü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) UNSIGNED 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) UNSIGNED NOT NULL AUTO_INCREMENT, +la_id VARCHAR(255) NOT NULL DEFAULT '', +la_title VARCHAR(255) NOT NULL DEFAULT '', +la_posx BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +la_posy BIGINT(20) UNSIGNED 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ü','Diverse Einstellungen am Adminmenü vornehmen.', 9)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Logische Bereiche (Logical Areas = LAs) eingeführt. Dadurch wird das immer stärker anwachsende Admin-Menü in grosse Hauptgruppen unterteilt, wodurch ein Auffinden von Menü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) UNSIGNED NOT NULL AUTO_INCREMENT, +aid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +type ENUM('la','action','what') NOT NULL DEFAULT 'what', +clicks BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +INDEX (aid), +PRIMARY KEY (id) +) TYPE=MyISAM"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Admin-abhängig werden nun Klicks im Admin-Menü gezählt, die zur automatischen Anpassung des Menüs in den logischen Bereichen diennen. Dieses "intelligente Unbauen" können Sie auch ganz abschalten."; + break; + + case "0.3.4": // SQL queries for v0.3.4 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Veraltetes Update (what=list_user&mode=noref)"; + break; + + case "0.3.5": // SQL queries for v0.3.5 + // List accounts with no referal + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('stats',NULL,'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',NULL,'Extras',5,'Y','N')"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('rals',NULL,'Rallyes',6,'Y','N')"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('account',NULL,'Ihr Account',7,'Y','N')"; + $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='extras', sort='3' WHERE `what`='reflinks' LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Mitgliedsmenü komplett umgebaut."; + break; + + case "0.3.6": // SQL queries for v0.3.6 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD salt_length TINYINT(3) UNSIGNED 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) UNSIGNED 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ä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ür Admin-Menüs können lä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ür Admin-Menüs können lä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`='' OR what IS NULL) LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Email-Verwaltung nach Email-Management umbenannt."; + break; + + case "0.4.1": // SQL queries for v0.4.1 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` DROP INDEX `status` , ADD INDEX `status` ( `status` , `max_mails` )"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `show_timings` ENUM ('Y','N') NOT NULL DEFAULT 'Y'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet."; + break; + + case "0.4.2": // SQL queries for v0.4.2 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_online` ADD INDEX `admin_member` (`is_admin`,`is_member`)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Neuen Schlüssel zur Online-Tabelle hinzugefügt."; + break; + + case "0.4.3": // SQL queries for v0.4.3 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `proxy_host` VARCHAR(255) NOT NULL DEFAULT ''"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `proxy_port` INT(5) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `proxy_username` VARCHAR(255) NOT NULL DEFAULT ''"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `proxy_password` VARCHAR(255) NOT NULL DEFAULT ''"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_proxy','Proxy-Einstellungen','Sollte Ihr Webserver sich hinter einem Proxy befinden, so können Sie hier MXChange so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Proxy-Einstellungen hinzugefügt."; + break; + + case "0.4.4": // SQL queries for v0.4.4 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_admin_menu` SET `what`=NULL WHERE `what`=''"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_guest_menu` SET `what`=NULL WHERE `what`=''"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_member_menu` SET `what`=NULL WHERE `what`=''"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_admin_menu` DROP INDEX `what`, ADD UNIQUE (`what`)"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_guest_menu` DROP INDEX `what`, ADD UNIQUE (`what`)"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_member_menu` ADD INDEX `action` (`action`)"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_member_menu` DROP INDEX `what`, ADD UNIQUE (`what`)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert."; + break; + + case "0.4.5": // SQL queries for v0.4.5 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD last_month CHAR(2) NOT NULL DEFAULT '00'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD last_week CHAR(2) NOT NULL DEFAULT '00'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Täglichen/wöchentlichen/monatlichen Reset verbessert."; + break; + + case "0.4.6": // SQL queries for v0.4.6 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD gender ENUM ('M','F') NOT NULL DEFAULT 'M'"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_user_data` SET gender=sex WHERE sex != 'M'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` DROP sex"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Offensives Wort "Sex" gegen "Gender" ausgetauscht."; + break; + + case "0.4.7": // SQL queries for v0.4.7 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD login_failtures BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD last_failture TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Fehlgeschlagene Login-Versuche werden nun mitgezählt und der letzte vermerkt."; + break; + + case "0.4.8": // SQL queries for v0.4.8 + $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system ADD INDEX (subject)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Index für Betreff eingefügt."; + break; + + case "0.4.9": // SQL queries for v0.4.9 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` CHANGE `user_hash` `user_hash` VARCHAR(255) NULL DEFAULT NULL"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_user_data` SET user_hash=NULL WHERE user_hash IS NOT NULL AND status='CONFIRMED'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD UNIQUE (`user_hash`)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "User-Hash zum Bestätigen wird auf NULL gesetzt, wenn Account bestätigt wird."; + break; + + case "0.5.0": // SQL queries for v0.5.0 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_refsystem` DROP INDEX `level`"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_refsystem` DROP INDEX `userid`, ADD UNIQUE `userid_level` (`userid`,`level`)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Referal-System unterstützt nun detailierte Referal-Übersicht und vieles mehr."; + break; + + case "0.5.1": // SQL queries for v0.5.1 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_member_menu` DROP `descr`"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird."; + break; + + case "0.5.2": // SQL queries for v0.5.2 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Prozents&aum;tze können nun fünf Stelle hinter dem Komma sein."; + break; + + case "0.5.3": // SQL queries for v0.5.3 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD session_save_path VARCHAR(255) NOT NULL DEFAULT ''"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_session','Session-Einstellungen','Ändern Sie hier den Speicherpfad für Sessiondateien (Sitzungsdateien) ab, falls die Standart-Einstellung bei Ihrem Hoster zu Problem führen sollte.', 16)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig."; + break; + + case "0.5.4": // SQL queries for v0.5.4 + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('main','reflist','Ref-Übersicht',5,'Y','N')"; + + // Depends on refback extension + $EXT_UPDATE_DEPENDS = "refback"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Ref-Übersicht eingebaut. Diese hängt von der Erweiterung refback ab."; + break; + + case "0.5.5": // SQL queries for v0.5.5 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD show_points_unconfirmed ENUM('Y','N') NOT NULL DEFAULT 'Y'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Anzeige der {!POINTS!} unter den unbestätigten Mails kann nun optional abgeschaltet werden."; + break; + + case "0.5.6": // SQL queries for v0.5.6 + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_user_stats_data`"; + $SQLs[] = "CREATE TABLE `"._MYSQL_PREFIX."_user_stats_data` ( +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`stats_type` VARCHAR(255) NOT NULL DEFAULT 'unknown', +`stats_data` VARCHAR(255) NOT NULL DEFAULT '', +`inserted` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +PRIMARY KEY(`id`), +INDEX (`userid`), +INDEX (`stats_type`) +) TYPE=MyISAM COMMENT='Member statistics data'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Mitglieder könnnen nun z.B. in den Mail-Details zu jeder Mail sehen, wann sie diese bestätigt haben. Die neue Statistik-Tabelle ist aber universell einsetzbar."; + break; + + case "0.5.7": // SQL queries for v0.5.7 + $SQLs[] = "DELETE LOW_PRIORITY FROM `"._MYSQL_PREFIX."_admin_menu` WHERE what='list_norefs' LIMIT 1"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben."; + break; + + case "0.5.8": // SQL queries for v0.5.8 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_extensions` DROP `ext_lang_file`"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Sprachdateinamen werden nicht mehr in der Datenbank behalten."; + break; + + case "0.5.9": // SQL queries for v0.5.9 + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_filters`"; + $SQLs[] = "CREATE TABLE `"._MYSQL_PREFIX."_filters` ( +`filter_id` BIGINT(20) UNSIGNED AUTO_INCREMENT, +`filter_name` VARCHAR(255) NOT NULL DEFAULT '', +`filter_function` VARCHAR(255) NOT NULL DEFAULT '', +`filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y', +PRIMARY KEY (`filter_id`) +) TYPE=MyISAM COMMENT='Filter system'"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17)"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Tabellen für Filter-System hinzugefügt."; + break; + + case "0.6.0": // SQL queries for v0.6.0 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_filters` ADD `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `update_filter_usage` ENUM('N','Y') NOT NULL DEFAULT 'N'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte ausschliesslich zu Debugging-Zwecken eingesetzt werden."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // When the sql_patches is not installed we cannot load it's configuration... *sigh* + if (GET_EXT_VERSION("sql_patches") != '') { + // Init key + $_CONFIG['secret_key'] = ""; + + // Read key from secret file + if ((getConfig('file_hash') == "") || (getConfig('master_salt') == "") || (getConfig('pass_scramble') == "")) { + // Cache instance + global $cacheInstance; + + // Maybe need setup of secret key! + require_once(PATH."inc/gen_sql_patches.php"); + + // @TODO Rewrite this to a filter! + if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($cacheInstance)) && (is_object($cacheInstance))) { + // Remove extensions and mod_reg cache file + require_once(PATH."inc/libs/cache_functions.php"); + require_once(PATH."inc/extensions/ext-cache.php"); + if ($cacheInstance->loadCacheFile("extensions", true)) $cacheInstance->destroyCacheFile(); + if ($cacheInstance->loadCacheFile("mod_reg")) $cacheInstance->destroyCacheFile(); + } // END - if + } // END - if + + // Test again + if ((getConfig('file_hash') != "") && (getConfig('master_salt') != "") && (getConfig('pass_scramble') != "")) { + // File hash fas generated so we can also file the secret file... hopefully. + $hashFile = sprintf("%sinc/.secret/.%s", PATH, getConfig('file_hash')); + if (FILE_READABLE($hashFile)) { + // Read file + $_CONFIG['secret_key'] = implode("", file($hashFile)); + } else { + // Remove it from database + UPDATE_CONFIG("file_hash", ""); + + // Cannot read secret file! + mxchange_die("Cannot read secret file! Please try to reload"); + } + } // END - if + + // Transfer words/numbers to constants + define('POINTS' , getConfig('points_word')); + define('MT_WORD' , getConfig('mt_word')); + define('MT_WORD2', getConfig('mt_word2')); + define('MT_WORD3', getConfig('mt_word3')); + define('_MAX' , getConfig('rand_no')); + } else { + // Set some lame ( ;-) ) default settings + $_CONFIG['def_refid'] = 0; + $_CONFIG['enable_title_deco'] = "N"; + $_CONFIG['title_mod_show'] = "Y"; + $_CONFIG['title_middle'] = "-"; + // @TODO Can we remove this? $_CONFIG['verbose_sql'] = "N"; + define('MT_WORD' , DEFAULT_MT_WORD ); + define('MT_WORD2', DEFAULT_MT_WORD2); + define('MT_WORD3', DEFAULT_MT_WORD3); + define('POINTS' , DEFAULT_POINTS); + } + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-support.php b/0.2.1-FINAL/inc/extensions/ext-support.php new file mode 100644 index 0000000000..fe9b03ee45 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-support.php @@ -0,0 +1,136 @@ +Patch 340 überflü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örter Mailtausch, Mailtausches und Mailtauscher 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 support und order behoben."; + break; + + case "0.1.0": // SQL queries for v0.2.1 + // 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-surfbar.php b/0.2.1-FINAL/inc/extensions/ext-surfbar.php new file mode 100644 index 0000000000..7157b5e2aa --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-surfbar.php @@ -0,0 +1,241 @@ +Vorsicht! Ihnen muss es auch gestattet sein, URLs aus dem Werbenetzwerk in die Surfbar einzufügen.',1)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('surfbar','list_surfbar_urls','URLs verwalten','Verwalten Sie hier alle in der Surfbar befindlichen URLs mit nur wenigen Klicks.',2)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('surfbar','unlock_surfbar_urls','Wartende URLs freigeben','Geben Sie hier nur direkt in der Surfbar gebuchte URLs frei.',3)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('surfbar','config_surfbar','Einstellungen','Einstellungen an der Surfbar ändern, wie Festvergütung, prozentuale Ref-Vergütung und vieles mehr.',4)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('surfbar','surfbar_stats','Statistiken','Detailierte Statistiken zu einer ausgewählten URL anzeigen.',5)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('surfbar','list_surfbar_actions','Mitgliederaktionen','Listet alle Mitgliederaktionen auf.',6)"; + + // Load CSS? + $EXT_CSS = "Y"; + break; + +case "remove": // Do stuff when removing extension + // SQL commands to run + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_surfbar_actions`"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_surfbar_locks`"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_surfbar_salts`"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_surfbar_stats`"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_surfbar_urls`"; + $SQLs[] = "DELETE LOW_PRIORITY FROM `"._MYSQL_PREFIX."_member_menu` WHERE `action`='surfbar' LIMIT 5"; + $SQLs[] = "DELETE LOW_PRIORITY FROM `"._MYSQL_PREFIX."_admin_menu` WHERE `action`='surfbar' LIMIT 7"; + 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`='surfbar' LIMIT 5"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_mod_reg` SET locked='N', hidden='N', admin_only='N', mem_only='Y' WHERE module='surfbar' 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 `action` = 'surfbar' LIMIT 5"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_mod_reg` SET locked='Y' WHERE module='surfbar' LIMIT 1"; + 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // Set some constants we need??? + define('edit', "edit"); + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-task.php b/0.2.1-FINAL/inc/extensions/ext-task.php new file mode 100644 index 0000000000..cad3d0fe69 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-task.php @@ -0,0 +1,254 @@ +Warning: Missing argument 2 for create_timestamp_from_selections() in {!PATH!}inc/libs/pro_functions.php on line 227 behoben."; + break; + + case "0.0.5": // SQL queries for v0.0.5 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "&admin= in &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ä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-Ü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.2.1 + // 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 "Solid-Business" eingebaut."; + break; + + case "0.1.2": // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Seit Patch 340 überflü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 ADMIN_USER_PROFILE_LINK() ausgelagert."; + break; + + case "0.1.4": // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Wörter Mailtausch, Mailtausches und Mailtauscher 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 what=admins_contct geä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:
+
    +
  • Ländercodes
  • +
  • Wartende Verdopplungen
  • +
  • Geändert: Wartende Auszahlungen
  • +
  • Teilnehmer an der Aktiv-Rallye
  • +
  • Nett hinweisende Linktitel hinzugefügt. :-)
  • +
"; + 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, Referal-Banner und aktivierte Referal-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 ü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ä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 = "Nur mit bonus v0.6.9 oder höher: 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ü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 empty() umgestellt. Update-Aufgaben werden nach "Bearbeitung" nicht mehr als Erledigt gesetzt. Dies hatte sonst den Anschein, die Update-Aufgaben mü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-Ü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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-theme.php b/0.2.1-FINAL/inc/extensions/ext-theme.php new file mode 100644 index 0000000000..1a95e558ef --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-theme.php @@ -0,0 +1,163 @@ +set_session() 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ändert."; + break; + + case "0.0.7": // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Ungültiges Update."; + break; + + case "0.0.8": // SQL queries for v0.0.8 + // Theme table + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_themes`"; + $SQLs[] = "CREATE TABLE `"._MYSQL_PREFIX."_themes` ( +id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +theme_path VARCHAR(255) NOT NULL DEFAULT '', +theme_name 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`), +UNIQUE KEY (`theme_path`), +INDEX (`theme_active`) +) TYPE=MyISAM COMMENT='Themes'"; + + // Admin menu + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('theme', NULL, '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 "theme" 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','Ändern Sie Titel, Freigaben usw. an den Themes. Sie können bis auf das Standart-Theme "default" auch Themes aus der Datenbank entfernen. Vorher sollten Sie es jedoch vom Server löschen, damit es niht erneut importiert werden kann.', 2)"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('theme','theme_check','Prüfen','Nach neuen Themes suchen bzw. nach Updates zu den Themes suchen.', 3)"; + + // Guest menu + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('themes',NULL,'Design-Auswahl',4,'Y','N')"; + + // Memember menu + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('themes',NULL,'Design-Auswahl',3,'Y','N')"; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('main','themes','Designs', 6,'Y','N')"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_member_menu` SET sort='8' WHERE action='themes' LIMIT 1"; + $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_member_menu` SET action='account', sort='1', title='Designs' WHERE `what`='themes' LIMIT 1"; + + // User data + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD curr_theme VARCHAR(255) NOT NULL DEFAULT 'default'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Update von sql_patches übertragen. (Kann Fehlermeldungen verursacht haben!)"; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-top10.php b/0.2.1-FINAL/inc/extensions/ext-top10.php new file mode 100644 index 0000000000..92ad4d70c8 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-top10.php @@ -0,0 +1,150 @@ +Column: 'userid' in group statement is ambiguous 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ä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üpunkte im Gast-/Mitgliedsbereich kö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ö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 "Solid-Business" eingebaut."; + break; + + case "0.0.8": // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Seit Patch 340 überflü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.2.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.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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-transfer.php b/0.2.1-FINAL/inc/extensions/ext-transfer.php new file mode 100644 index 0000000000..f2fef8784f --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-transfer.php @@ -0,0 +1,291 @@ +Warning: Missing argument 2 for create_timestamp_from_selections() in {!PATH!}inc/libs/pro_functions.php on line 227 behoben."; + break; + + case "0.0.3": // SQL queries for v0.0.3 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Überflü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 Auflisten im Admin-Bereich hatte das eingeloggte Mitglied und nicht den eingeloggten Admin abgefragt. Automatisches Löschen von veraltete Einträgen kann unabhä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ä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.2.1 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Menüpunkte im Gast-/Mitgliedsbereich kö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 "Solid-Business" eingebaut."; + break; + + case "0.1.2": // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Seit Patch 340 überflü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 ADMIN_USER_PROFILE_LINK() ausgelagert."; + break; + + case "0.1.5": // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Template admin_config_transfer_pro.tpl ist überflüssig geworden. Bitte lö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örter Mailtausch, Mailtausches und Mailtauscher 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 Punkte 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ü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ü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üsystem integriert."; + break; + + case "0.2.4": // SQL queries for v0.2.4 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Touring-Code wiederholen nach Touring-Code eingeben hin geä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ü komplett geä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 md5() auf bessere Funktion generateHash() 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önnen nun wieder wie gewohnt transferiert werden. Der Grund für {--TRANSFER_INVALID_PASSWORD--} 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 Notice: Undefined index: to_uid in {!PATH!}/inc/modules/member/what-transfer.php on line 301 gefixt. Danke an Piter01."; + 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + if ((isBooleanConstantAndTrue('__DAILY_RESET')) && (getConfig('ap_transfer') == "Y")) { + // Automatically remove outdated or not displayed transactions + TRANSFER_AUTPPURGE(getConfig('transfer_max'), getConfig('transfer_age')); + } + break; +} + +// +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-user.php b/0.2.1-FINAL/inc/extensions/ext-user.php new file mode 100644 index 0000000000..3ba1a8a8ce --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-user.php @@ -0,0 +1,260 @@ +Sie sind hier im Menüpunkt Online-Liste erweitert."; + break; + + case "0.1.4": // SQL queries for v0.1.4 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD `emails_received` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Anzahl empfangener Mails wird angezeigt. Diese Anzeige kann fehlerhaft sein, wenn Sie bereits Mitglieder in Ihrem {!MT_WORD!} haben sollen!"; + 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 Patch 340 überflü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 ADMIN_USER_PROFILE_LINK() 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 ü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(3) UNSIGNED 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 `gender` `gender` ENUM('M','F','C') NOT NULL DEFAULT 'M'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Anrede "Firma" hinzugefü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ührlich."; + break; + + case "0.2.4": // SQL queries for v0.2.4 + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Wörter Mailtausch, Mailtausches und Mailtauscher 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ü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 empty() 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 ü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ü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 md5() auf bessere Funktion generateHash() umgestellt.
Diverse Fixes für 0.2.1-Beta1 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`='' OR `what` IS NULL) 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 0.00000 unbestä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ätigte Mitglieder-Accounts sind seperat oder gemeinsam auflistbar (seperat nur mit der Erweiterung task!)"; + break; + + case "0.3.4": // SQL queries for v0.3.4 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `select_user_zero_refid` ENUM('Y','N') NOT NULL DEFAULT 'Y'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `user_min_confirmed` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 10"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD `rand_confirmed` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Mitglieder werden per Zufall als Referal-ID ausgewählt, die eine Mindestanzahl an bestätigten Mails haben, wenn die Ref-Id 0 ist."; + break; + + case "0.3.5": // SQL queries for v0.3.5 + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD `lock_reason` TINYTEXT"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD `lock_timestamp` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00'"; + $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `user_delete_purge` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day') * 30).""; + $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','list_user_del','Löschungen auflisten','Listet die Löschungen von Usern auf.', 9)"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_user_del`"; + $SQLs[] = "CREATE TABLE `"._MYSQL_PREFIX."_user_del` ( +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`email` VARCHAR(255) NOT NULL DEFAULT '', +`surname` VARCHAR(255) NOT NULL DEFAULT '', +`family` VARCHAR(255) NOT NULL DEFAULT '', +`joined` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`last_online` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`del_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +`del_reason` TINYTEXT, +INDEX (`userid`), +PRIMARY KEY(`id`) +) TYPE=MyISAM COMMENT='List of deleted users'"; + + // Update notes (these will be set as task text!) + $UPDATE_NOTES = "Der Sperrgrund wird nun mit abgespeichert und beim Löschen des Users mit ausgesendet."; + break; + } + break; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// [EOF] +?> diff --git a/0.2.1-FINAL/inc/extensions/ext-wernis.php b/0.2.1-FINAL/inc/extensions/ext-wernis.php new file mode 100644 index 0000000000..3d8855fdf2 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-wernis.php @@ -0,0 +1,153 @@ + diff --git a/0.2.1-FINAL/inc/extensions/ext-yoomedia.php b/0.2.1-FINAL/inc/extensions/ext-yoomedia.php new file mode 100644 index 0000000000..ec21cec859 --- /dev/null +++ b/0.2.1-FINAL/inc/extensions/ext-yoomedia.php @@ -0,0 +1,145 @@ +Vorsicht: Jede Aktualisierung dieser Liste kostet Ihnen eine Abfrage!',10)"; + + // Reload lock table + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_yoomedia_reload`"; + $SQLs[] = "CREATE TABLE `"._MYSQL_PREFIX."_yoomedia_reload` ( +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`type` VARCHAR(255) NOT NULL DEFAULT 'general', +`y_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`y_reload` SMALLINT(6) UNSIGNED NOT NULL DEFAULT 0, +`inserted` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +PRIMARY KEY (`id`), +UNIQUE `y_type` (`type`,`y_id`) +) TYPE=MyISAM COMMENT='Reload lock reminder for Yoo!Media campaigns'"; + break; + +case "remove": // Do stuff when removing extension + // SQL commands to run + $SQLs[] = "DELETE LOW_PRIORITY FROM `"._MYSQL_PREFIX."_admin_menu` WHERE `what` IN('config_yoomedia','list_yoomedia_tm') LIMIT 2"; + $SQLs[] = "DROP TABLE IF EXISTS `"._MYSQL_PREFIX."_yoomedia_reload`"; + 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; + +case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + break; + +default: // Do stuff when extension is loaded + // The translation table + $yoomediaTranslationTable = array( + // Error messages + 'error_codes' => array( + 1 => 'wrong_pass', + 2 => 'wrong_sid', + 3 => 'website_locked', + 4 => 'api_data_error', + 5 => 'requests_depleted', + 6 => 'zero_result', + 10 => 'incomplete_request' + ), + // For text mails + 'textmail' => array( + 0 => 'id', + 1 => 'name', + 2 => 'reload', + 3 => 'wait', + 4 => 'remain', + 5 => 'pay', + 6 => 'text' + ) + ); + break; +} + +// Keep this extension always active! +$EXT_ALWAYS_ACTIVE = "Y"; + +// +?> diff --git a/0.2.1-FINAL/inc/fatal_errors.php b/0.2.1-FINAL/inc/fatal_errors.php new file mode 100644 index 0000000000..96a7d8539e --- /dev/null +++ b/0.2.1-FINAL/inc/fatal_errors.php @@ -0,0 +1,92 @@ + 0) || (!empty($FATAL[0]))) +{ + // Main div container + LOAD_TEMPLATE("fatal_header"); + + // Set unset variable + if (empty($check)) $check = ""; + if (isBooleanConstantAndTrue('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 (isBooleanConstantAndTrue('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-FINAL/inc/filters.php b/0.2.1-FINAL/inc/filters.php new file mode 100644 index 0000000000..0a30fc752e --- /dev/null +++ b/0.2.1-FINAL/inc/filters.php @@ -0,0 +1,512 @@ + array(), + // Filters for post-init phase + 'postinit' => array(), + // Filters for shutdown phase + 'shutdown' => array() + ); + + // Init loaded filters and counter + $loadedFilters = array(); + $counter = array(); + + // Load all saved filers if sql_patches is updated + if (GET_EXT_VERSION("sql_patches") >= "0.5.9") { + // Init add + $ADD = ""; + if (GET_EXT_VERSION("sql_patches") >= "0.6.0") $ADD = ", `filter_counter`"; + + // Load all active filers + $result = SQL_QUERY("SELECT `filter_name`, `filter_function`, `filter_active`".$ADD." +FROM `"._MYSQL_PREFIX."_filters` +ORDER BY `filter_id` ASC", __FILE__, __LINE__); + + // Are there entries? + if (SQL_NUMROWS($result) > 0) { + // Load all filters + while ($filterArray = SQL_FETCHARRAY($result)) { + // Get filter name and function + $filterName = $filterArray['filter_name']; + $filterFunction = $filterArray['filter_function']; + + // Set counter to default + $counter[$filterName][$filterFunction] = 0; + + // Mark this filter as loaded (from database) + $loadedFilters[$filterName][$filterFunction] = true; + + // Set this filter + $filters[$filterName][$filterFunction] = $filterArray['filter_active']; + + // Is the array element for counter there? + if (isset($filterArray['filter_counter'])) { + // Then use this value! + $counter[$filterName][$filterFunction] = $filterArray['filter_counter']; + } // END - if + } // END - while + } // END - if + + // Free result + SQL_FREERESULT($result); + } // END - if + + // Init filters + REGISTER_FILTER('init', 'UPDATE_LOGIN_DATA'); + + // Login failtures handler + REGISTER_FILTER('post_youhere_line', 'CALL_HANDLER_LOGIN_FAILTURES'); + + // Filters for pre-extension-registration + REGISTER_FILTER('pre_extension_installed', 'RUN_SQLS'); + + // Filters for post-extension-registration + REGISTER_FILTER('post_extension_installed', 'AUTO_ACTIVATE_EXTENSION'); + REGISTER_FILTER('post_extension_installed', 'SOLVE_TASK'); + REGISTER_FILTER('post_extension_installed', 'LOAD_INCLUDES'); + + // Solving tasks + REGISTER_FILTER('solve_task', 'SOLVE_TASK'); + + // Loading includes in general + REGISTER_FILTER('load_includes', 'LOAD_INCLUDES'); + + // Run SQLs + REGISTER_FILTER('run_sqls', 'RUN_SQLS'); + + // Admin ACL check + REGISTER_FILTER('check_admin_acl', 'CHECK_ADMIN_ACL'); + + // Register shutdown filters + REGISTER_FILTER('shutdown', 'FLUSH_FILTERS'); +} + +// "Registers" a new filter function +function REGISTER_FILTER ($filterName, $filterFunction, $silentAbort = true, $force = false, $dry_run = false) { + global $filters, $counter; + + // Extend the filter function name + $filterFunction = sprintf("FILTER_%s", strtoupper($filterFunction)); + + // Is that filter already there? + if ((isset($filters[$filterName][$filterFunction])) && (!$force)) { + // Then abort here + if (!$silentAbort) { + ADD_FATAL(sprintf(FILTER_FAILED_ALREADY_ADDED, $filterFunction, $filterName)); + } // END - if + + // Abort here + return false; + } // END - if + + // Is the function there? + if (!function_exists($filterFunction)) { + // Then abort here + ADD_FATAL(sprintf(FILTER_FAILED_NOT_FOUND, $filterFunction, $filterName)); + return false; + } // END - if + + // Shall we add it? + if (!$dry_run) { + // Simply add it to the array + $filters[$filterName][$filterFunction] = "Y"; + $counter[$filterName][$filterFunction] = 0; + } // END - if +} + +// "Unregisters" a filter from the given chain +function UNREGISTER_FILTER ($filterName, $filterFunction, $force = false, $dry_run = false) { + global $filters, $counter, $loadedFilters; + + // Extend the filter function name only if not loaded from database + if (!isset($loadedFilters[$filterName][$filterFunction])) { + $filterFunction = sprintf("FILTER_%s", strtoupper($filterFunction)); + } // END - if + + // Is that filter there? + if ((!isset($filters[$filterName][$filterFunction])) && (!$force)) { + // Not found, so abort here + ADD_FATAL(sprintf(FILTER_FAILED_NOT_REMOVED, $filterFunction, $filterName)); + return false; + } // END - if + + // Shall we remove? (default, not while just showing an extension removal) + if (!$dry_run) { + // Mark for filter removal + $filters[$filterName][$filterFunction] = "R"; + unset($counter[$filterName][$filterFunction]); + } // END - if +} + +// "Runs" the given filters, data is optional and can be any type of data +function RUN_FILTER ($filterName, $data = null, $silentAbort = true) { + global $filters, $counter; + + // Is that filter chain there? + if (!isset($filters[$filterName])) { + // Then abort here (quick'N'dirty hack) + if ((!$silentAbort) && (defined('FILTER_FAILED_NO_FILTER_FOUND'))) { + // Add fatal message + ADD_FATAL(sprintf(FILTER_FAILED_NO_FILTER_FOUND, $filterName)); + } // END - if + + // Abort here + return false; + } // END - if + + // Default return value + $returnValue = $data; + + // Then run all filters + foreach ($filters[$filterName] as $filterFunction=>$active) { + // Debug message + //* DEBUG: */ echo __FUNCTION__."(".__LINE__."): name={$filterName},func={$filterFunction},active={$active}
\n"; + + // Is the filter active? + if ($active == "Y") { + // Is this filter there? + if (!function_exists($filterFunction)) { + // Unregister it + UNREGISTER_FILTER($filterName, $filterFunction); + + // Skip this entry + continue; + } // END - if + + // Call the filter chain + $returnValue = call_user_func_array($filterFunction, array($returnValue)); + + // Update usage counter + $counter[$filterName][$filterFunction]++; + } // END - if + } // END - foreach + + // Return the filtered content + return $returnValue; +} + +// ----------------------------------------------------------------------------- +// Generic filter functions we always need +// ----------------------------------------------------------------------------- + +// Filter for flushing all new filters to the database +function FILTER_FLUSH_FILTERS () { + global $filters, $counter, $link, $loadedFilters, $SQLs; + + // Clear all previous SQL queries + $SQLs = array(); + + // Is a database link here and not in installation mode? + if ((!is_resource($link)) && (!isBooleanConstantAndTrue('mxchange_installing'))) { + // Abort here + ADD_FATAL(sprintf(FILTER_FLUSH_FAILED_NO_DATABASE, $filterFunction, $filterName)); + return false; + } // END - if + + // Is the extension sql_patches updated? + if (EXT_VERSION_IS_OLDER("sql_patches", "0.5.9")) { + // Abort silently here + return false; + } // END - if + + // Nothing is added/remove by default + $inserted = 0; $removed = 0; + + // Prepare SQL queries + $insertSQL = "INSERT INTO `"._MYSQL_PREFIX."_filters` (`filter_name`,`filter_function`,`filter_active`) VALUES"; + $removeSQL = "DELETE LOW_PRIORITY FROM `"._MYSQL_PREFIX."_filters` WHERE"; + + // Write all filters to database + foreach ($filters as $filterName => $filterArray) { + // Walk through all filters + foreach ($filterArray as $filterFunction => $active) { + // Is this filter loaded? + if (!isset($loadedFilters[$filterName][$filterFunction])) { + // Add this filter (all filters are active by default) + $insertSQL .= sprintf("('%s','%s','Y'),", $filterName, $filterFunction); + $inserted++; + } elseif ($active == "R") { + // Remove this filter + $removeSQL .= sprintf(" (`filter_name`='%s' AND `filter_function`='%s') OR", $filterName, $filterFunction); + $removed++; + } + } // END - foreach + } // END - foreach + + // Something has been added? + if ($inserted > 0) { + // Finish SQL command + $insertSQL = substr($insertSQL, 0, -1); + + // And run it + $SQLs[] = $insertSQL; + } // END - if + + // Something has been removed? + if ($removed > 0) { + // Finish SQL command + $removeSQL = substr($removeSQL, 0, -2) . "LIMIT ".$removed; + + // And run it + $SQLs[] = $removeSQL; + } // END - if + + // Shall we update usage counters (ONLY FOR DEBUGGING!) + if (getConfig('update_filter_usage') == "Y") { + // Update all counters + foreach ($counter as $filterName => $filterArray) { + // Walk through all filters + foreach ($filterArray as $filterFunction => $cnt) { + // Construct and add the query + $SQLs[] = sprintf("UPDATE `"._MYSQL_PREFIX."_filters` SET `filter_counter`=%s WHERE `filter_name`='%s' AND `filter_function`='%s' LIMIT 1", + bigintval($cnt), + $filterName, + $filterFunction + ); + } // END - foreach + } // END - foreach + } // END - if + + // Run the run_sqls filter in non-dry mode + RUN_FILTER('run_sqls', array('dry_run' => false, 'sqls' => $SQLs)); +} + +// Filter for calling the handler for login failtures +function FILTER_CALL_HANDLER_LOGIN_FAILTURES ($data) { + // Init content + $content = $data; + + // Handle failed logins here if not in guest + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):type={$data['type']},action={$GLOBALS['action']},what={$GLOBALS['what']},lvl={$data['access_level']}
\n"; + if ((($data['type'] == "what") || ($data['type'] == "action") && ((!isset($GLOBALS['what'])) || ($GLOBALS['what'] == "overview") || ($GLOBALS['what'] == getConfig('index_home')))) && ($data['access_level'] != "guest") && ((GET_EXT_VERSION("sql_patches") >= "0.4.7") || (GET_EXT_VERSION("admins") >= "0.7.0"))) { + // Handle failture + $content['content'] .= HANDLE_LOGIN_FAILTURES($data['access_level']); + } // END - if + + // Return the content + return $content; +} + +// Filter for redirecting to logout if sql_patches has been installed +function FILTER_REDIRECT_TO_LOGOUT_SQL_PATCHES () { + // Remove this filter + UNREGISTER_FILTER('shutdown', __FUNCTION__); + + // Is the element set? + if (isset($GLOBALS['ext_load_mode'])) { + // Redirect here + LOAD_URL("modules.php?module=admin&logout=1&".$GLOBALS['ext_load_mode']."=sql_patches"); + } // END - if + + // This should not happen! + DEBUG_LOG(__FUNCTION__, __LINE__, "Cannot auto-logout because no extension load-mode has been set."); +} + +// Filter for auto-activation of a extension +function FILTER_AUTO_ACTIVATE_EXTENSION ($data) { + global $EXT_ALWAYS_ACTIVE; + + // Is this extension always activated? + if ($EXT_ALWAYS_ACTIVE == "Y") { + // Then activate the extension + //* DEBUG: */ echo __FUNCTION__."(".__LINE__."): ext_name={$data['ext_name']}
\n"; + ACTIVATE_EXTENSION($data['ext_name']); + } // END - if + + // Return the data + return $data; +} + +// Filter for solving task given task +function FILTER_SOLVE_TASK ($data) { + // Don't solve anything if no admin! + if (!IS_ADMIN()) return $data; + + // Is this a direct task id or array element task_id is found? + if (is_int($data)) { + // Then solve it... + ADMIN_SOLVE_TASK($data); + } elseif ((is_array($data)) && (isset($data['task_id']))) { + // Solve it... + ADMIN_SOLVE_TASK($data['task_id']); + } + + // Return the data + return $data; +} + +// Filter to load include files +function FILTER_LOAD_INCLUDES ($data) { + global $CSS; + + // Default is $data as inclusion list + $INC_POOL = $data; + + // Is it an array? + if ((!isset($data)) || (!is_array($data))) { + // Then abort here + DEBUG_LOG(__FILE__, __LINE__, "INC_POOL is no array!"); + return $data; + } elseif (isset($data['inc_pool'])) { + // Use this as new inclusion pool! + $INC_POOL = $data['inc_pool']; + } + + // Check for added include files + if (count($INC_POOL) > 0) { + // Loads every include file + foreach ($INC_POOL as $FQFN) { + require_once($FQFN); + } // END - foreach + + // Reset array + if (isset($data['inc_pool'])) $data['inc_pool'] = array(); + } // END - if + + // Continue with processing + return $data; +} + +// Filter for running SQL commands +function FILTER_RUN_SQLS ($data) { + // Is the array there? + if ((isset($data['sqls'])) && ((!isset($data['dry_run'])) || ($data['dry_run'] == false))) { + // Run SQL commands + foreach ($data['sqls'] as $sql) { + $sql = trim($sql); + if (!empty($sql)) { + // Do we have an "ALTER TABLE" command? + if (substr(strtolower($sql), 0, 11) == "alter table") { + // Analyse the alteration command + SQL_ALTER_TABLE($sql, __FILE__, __LINE__); + } else { + // Run regular SQL command + $result = SQL_QUERY($sql, __FILE__, __LINE__, false); + } + } // END - if + } // END - foreach + } // END - if +} + +// Filter for updating/validating login data +function FILTER_UPDATE_LOGIN_DATA () { + global $LAST; + if (!is_array($LAST)) $LAST = array(); + + // Recheck if logged in + if (!IS_MEMBER()) return false; + + // Secure user ID + $GLOBALS['userid'] = bigintval(get_session('userid')); + + // Extract last online time (life) and how long is auto-login valid (time) + $newl = time() + bigintval(get_session('lifetime')); + + // Load last module and last online time + $result = SQL_QUERY_ESC("SELECT last_module, last_online FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s 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 (set_session("userid", $GLOBALS['userid'], $newl, COOKIE_PATH) && set_session("u_hash", get_session('u_hash'), $newl, COOKIE_PATH) && set_session("lifetime", bigintval(get_session('lifetime')), $newl, COOKIE_PATH)) { + // This will be displayed on welcome page! :-) + if (empty($LAST['module'])) { + $LAST['module'] = $mod; $LAST['online'] = $onl; + } // END - if + + // "what" not set? + if (empty($GLOBALS['what'])) { + // Fix it to default + $GLOBALS['what'] = "welcome"; + if (getConfig('index_home') != "") $GLOBALS['what'] = getConfig('index_home'); + } // END - if + + // Update last module / online time + SQL_QUERY_ESC("UPDATE `"._MYSQL_PREFIX."_user_data` SET last_module='%s', last_online=UNIX_TIMESTAMP(), REMOTE_ADDR='%s' WHERE userid=%s LIMIT 1", + array($GLOBALS['what'], GET_REMOTE_ADDR(), $GLOBALS['userid']), __FILE__, __LINE__); + } + } else { + // Destroy session, we cannot update! + destroy_user_session(); + } +} + +// Filter for checking admin ACL +function FILTER_CHECK_ADMIN_ACL () { + // Extension not installed so it's always allowed to access everywhere! + $ret = true; + + // Ok, Cookie-Update done + if (GET_EXT_VERSION("admins") >= "0.3") { + // Check if action GET variable was set + $action = SQL_ESCAPE($GLOBALS['action']); + if (!empty($GLOBALS['what'])) { + // Get action value by what-value + $action = GET_ACTION("admin", $GLOBALS['what']); + } // END - if + + // Check for access control line of current menu entry + $ret = ADMINS_CHECK_ACL($action, $GLOBALS['what']); + } // END - if + + // Return result + return $ret; +} + +// +?> diff --git a/0.2.1-FINAL/inc/footer.php b/0.2.1-FINAL/inc/footer.php new file mode 100644 index 0000000000..5e248a609b --- /dev/null +++ b/0.2.1-FINAL/inc/footer.php @@ -0,0 +1,85 @@ +"); +} // END - if + +// Footer has been reached +$footer = 1; + +// Output HTML code +OUTPUT_HTML(""); + +// +?> diff --git a/0.2.1-FINAL/inc/functions.php b/0.2.1-FINAL/inc/functions.php new file mode 100644 index 0000000000..d47a72123e --- /dev/null +++ b/0.2.1-FINAL/inc/functions.php @@ -0,0 +1,3000 @@ +\n
\n"; + OUTPUT_HTML($OUT); +} + +// Close a table (you may want to add some footer stuff here) +function CLOSE_TABLE($ADD="") { + OUTPUT_HTML(" \n"); + if (!empty($ADD)) OUTPUT_HTML($ADD); + OUTPUT_HTML("
"); +} + +// 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 + OUTPUT_RAW($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")) { OUTPUT_RAW($OUTPUT); $OUTPUT = ""; } + + // The same as above... ^ + OUTPUT_RAW($HTML); + if ($NEW_LINE) echo "\n"; + break; + + default: + // Huh, something goes wrong or maybe you have edited config.php ??? + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Invalid renderer %s detected.", OUTPUT_MODE)); + MXCHANGE_DIE("".FATAL_ERROR.": ".LANG_NO_RENDER_DIRECT); + break; + } + } elseif ((_OB_CACHING == "on") && ($footer == 1)) { + // Headers already sent? + if (headers_sent()) { + // Log this error + DEBUG_LOG(__FUNCTION__, __LINE__, "Headers already sent! We need debug backtrace here."); + + // Output debug trace + print("Headers are already sent!
\n"); + print("Please report this error at bugs.mxchange.org:
");
+			debug_print_backtrace();
+			die("
Thank you for your help finding bugs."); + } // END - if + + // Output cached HTML code + $OUTPUT = ob_get_contents(); + + // Clear output buffer for later output + ob_end_clean(); + + // Send HTTP header + header("HTTP/1.1 200"); + + // Used later + $now = gmdate('D, d M Y H:i:s') . ' GMT'; + + // General headers for no caching + header("Expired: " . $now); // RFC2616 - Section 14.21 + header("Last-Modified: " . $now); + header("Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0"); // HTTP/1.1 + header("Pragma: no-cache"); // HTTP/1.0 + header("Connection: Close"); + + // Extension "rewrite" installed? + if ((EXT_IS_ACTIVE("rewrite")) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) { + $OUTPUT = REWRITE_LINKS($OUTPUT); + } // END - if + + // Compile and run finished rendered HTML code + while (strpos($OUTPUT, '{!') > 0) { + // Prepare the content and eval() it... + $newContent = ""; + $eval = "\$newContent = \"".COMPILE_CODE(addslashes($OUTPUT))."\";"; + @eval($eval); + + // Was that eval okay? + if (empty($newContent)) { + // Something went wrong! + die("Evaluation error:
".htmlentities($eval)."
"); + } // END - if + $OUTPUT = $newContent; + } // END - while + + // Output code here, DO NOT REMOVE! ;-) + OUTPUT_RAW($OUTPUT); + } elseif ((OUTPUT_MODE == "render") && (!empty($OUTPUT))) { + // Rewrite links when rewrite extension is active + if ((EXT_IS_ACTIVE("rewrite")) && (function_exists('REWRITE_LINKS')) && ($CSS != "1") && ($CSS != "-1")) { + $OUTPUT = REWRITE_LINKS($OUTPUT); + } // END - if + + // Compile and run finished rendered HTML code + while (strpos($OUTPUT, '{!') > 0) { + $eval = "\$OUTPUT = \"".COMPILE_CODE(addslashes($OUTPUT))."\";"; + eval($eval); + } // END - while + + // Output code here, DO NOT REMOVE! ;-) + OUTPUT_RAW($OUTPUT); + } +} + +// Output the raw HTML code +function OUTPUT_RAW ($HTML) { + // Output stripped HTML code to avoid broken JavaScript code, etc. + echo stripslashes(stripslashes($HTML)); + + // Flush the output if only _OB_CACHING is not "on" + if (_OB_CACHING != "on") { + // Flush it + flush(); + } // END - if +} + +// 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 + $message = sprintf($message, $extra); + $FATAL[] = $message; + } + + // Log fatal messages away + DEBUG_LOG(__FUNCTION__, __LINE__, " message={$message}"); +} + +// Load a template file and return it's content (only it's name; do not use ' or ") +function LOAD_TEMPLATE($template, $return=false, $content=array()) { + // Add more variables which you want to use in your template files + global $DATA, $_CONFIG, $username; + + // Make all template names lowercase + $template = strtolower($template); + + // Count the template load + incrementConfigEntry('num_templates'); + + // Prepare IP number and User Agent + $REMOTE_ADDR = GET_REMOTE_ADDR(); + if (!defined('REMOTE_ADDR')) define('REMOTE_ADDR', $REMOTE_ADDR); + $HTTP_USER_AGENT = GET_USER_AGENT(); + + // Init some data + $ret = ""; + if (empty($GLOBALS['refid'])) $GLOBALS['refid'] = 0; + + // @DEPRECATED Try to rewrite the if() condition + if ($template == "member_support_form") { + // Support request of a member + $result = SQL_QUERY_ESC("SELECT userid, gender, surname, family, email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", + array($GLOBALS['userid']), __FILE__, __LINE__); + + // Is content an array? + if (is_array($content)) { + // Merge data + $content = merge_array($content, SQL_FETCHARRAY($result)); + + // Translate gender + $content['gender'] = TRANSLATE_GENDER($content['gender']); + } else { + // DEPRECATED: Load data in direct variables + list($gender, $surname, $family, $email) = SQL_FETCHROW($result); + + // Translate gender + $gender = TRANSLATE_GENDER($gender); + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("DEPRECATION-WARNING: content is not array (%s).", gettype($content))); + } + + // Free result + SQL_FREERESULT($result); + } // END - if + + // Generate date/time string + $date_time = MAKE_DATETIME(time(), "1"); + + // Base directory + $BASE = sprintf("%stemplates/%s/html/", PATH, GET_LANGUAGE()); + $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_READABLE($file2)) $file = $file2; + + // Remove variable from memory + unset($file2); + } + + // Does the special template exists? + if (!FILE_READABLE($file)) { + // Reset to default template + $file = $BASE.$template.".tpl"; + } // END - if + + // Now does the final template exists? + if (FILE_READABLE($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? + $ret = ""; + 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 = "\n".$ret."\n"; + } elseif ((IS_ADMIN()) || ((isBooleanConstantAndTrue('mxchange_installing')) && (!isBooleanConstantAndTrue('mxchange_installed')))) { + // Only admins shall see this warning or when installation mode is active + $ret = "
".TEMPLATE_404."
+(".basename($file).")
+
+".TEMPLATE_CONTENT." +
".print_r($content, true)."
+".TEMPLATE_DATA." +
".print_r($DATA, true)."
+

"; + } + + // Remove content and data + unset($content); + unset($DATA); + + // Do we have some content to output or return? + 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 (isBooleanConstantAndTrue('DEBUG_MODE')) { + // Warning, empty output! + return "E:".$template."
\n"; + } +} + +// Send mail out to an email address +function SEND_EMAIL($TO, $SUBJECT, $MSG, $HTML = "N", $FROM = "") { + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):TO={$TO},SUBJECT={$SUBJECT}
\n"; + + // Compile subject line (for POINTS constant etc.) + $eval = "\$SUBJECT = html_entity_decode(\"".COMPILE_CODE(addslashes($SUBJECT))."\");"; + eval($eval); + + // Set from header + if ((!eregi("@", $TO)) && ($TO > 0)) { + // Value detected, is the message extension installed? + if (EXT_IS_ACTIVE("msg")) { + ADD_MESSAGE_TO_BOX($TO, $SUBJECT, $MSG, $HTML); + return; + } else { + // Load email address + $result_email = SQL_QUERY_ESC("SELECT email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", array(bigintval($TO)), __FILE__, __LINE__); + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):numRows=".SQL_NUMROWS($result_email)."
\n"; + + // Does the user exist? + if (SQL_NUMROWS($result_email)) { + // Load email address + list($TO) = SQL_FETCHROW($result_email); + } else { + // Set webmaster + $TO = WEBMASTER; + } + + // Free result + SQL_FREERESULT($result_email); + } + } elseif ("$TO" == "0") { + // Is the webmaster! + $TO = WEBMASTER; + } + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):TO={$TO}
\n"; + + // Check for PHPMailer or debug-mode + if (!CHECK_PHPMAILER_USAGE()) { + // Not in PHPMailer-Mode + if (empty($FROM)) { + // Load email header template + $FROM = LOAD_EMAIL_TEMPLATE("header"); + } else { + // Append header + $FROM .= LOAD_EMAIL_TEMPLATE("header"); + } + } elseif (isBooleanConstantAndTrue('DEBUG_MODE')) { + if (empty($FROM)) { + // Load email header template + $FROM = LOAD_EMAIL_TEMPLATE("header"); + } else { + // Append header + $FROM .= LOAD_EMAIL_TEMPLATE("header"); + } + } + + // Compile "TO" + $eval = "\$TO = \"".COMPILE_CODE(addslashes($TO))."\";"; + eval($eval); + + // Compile "MSG" + $eval = "\$MSG = \"".COMPILE_CODE(addslashes($MSG))."\";"; + eval($eval); + + // Fix HTML parameter (default is no!) + if (empty($HTML)) $HTML = "N"; + if (isBooleanConstantAndTrue('DEBUG_MODE')) { + // In debug mode we want to display the mail instead of sending it away so we can debug this part + print("
+".htmlentities(trim($FROM))."
+To      : ".$TO."
+Subject : ".$SUBJECT."
+Message : ".$MSG."
+
\n"); + } elseif (($HTML == "Y") && (EXT_IS_ACTIVE("html_mail"))) { + // Send mail as HTML away + SEND_HTML_EMAIL($TO, $SUBJECT, $MSG, $FROM); + } elseif (!empty($TO)) { + // Send Mail away + SEND_RAW_EMAIL($TO, $SUBJECT, $MSG, $FROM); + } elseif ($HTML == "N") { + // Problem found! + SEND_RAW_EMAIL(WEBMASTER, "[PROBLEM:]".$SUBJECT, $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 = sprintf("%sinc/phpmailer/", PATH); + + $mail->IsSMTP(); + $mail->SMTPAuth = true; + $mail->Host = SMTP_HOSTNAME; + $mail->Port = 25; + $mail->Username = SMTP_USER; + $mail->Password = SMTP_PASSWORD; + if (empty($from)) { + $mail->From = WEBMASTER; + } else { + $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 = html_entity_decode($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, html_entity_decode($msg), $from); + } +} +// + +// Generate a password in a specified length or use default password length +function GEN_PASS ($LEN = 0) { + // Auto-fix invalid length of zero + if ($LEN == 0) $LEN = getConfig('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)]; + } // END - for + + // 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); + } // END - if + + // 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; + default: + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Invalid date mode %s detected.", $mode)); + 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; + default: + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Invalid date mode %s detected.", $mode)); + break; + } + } + return $ret; +} + +// Translates the american decimal dot into a german comma +function TRANSLATE_COMMA ($dotted, $cut=true, $max=0) { + global $_CONFIG; + + // Default is 3 you can change this in admin area "Misc -> Misc Options" + if (getConfig('max_comma') == null) $_CONFIG['max_comma'] = "3"; + + // Use from config is default + $maxComma = getConfig('max_comma'); + + // Use from parameter? + if ($max > 0) $maxComma = $max; + + // Cut zeros off? + if (($cut) && ($max == 0)) { + // Test for commata if in cut-mode + $com = explode(".", $dotted); + if (count($com) < 2) { + // Don't display commatas even if there are none... ;-) + $maxComma = 0; + } + } // END - if + + // Debug log + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "dotted={$dotted},maxComma={$maxComma}"); + + // Translate it now + switch (GET_LANGUAGE()) { + case "de": + $dotted = number_format($dotted, $maxComma, ",", "."); + break; + + default: + $dotted = number_format($dotted, $maxComma, ".", ","); + break; + } + + // Return translated value + return $dotted; +} + +// +function DEREFERER ($URL) { + // Don't de-refer our own links! + if (substr($URL, 0, strlen(URL)) != URL) { + // De-refer this link + $URL = URL."/modules.php?module=loader&url=".urlencode(base64_encode(gzcompress($URL))); + } // END - if + + // Return link + return $URL; +} + +// +function TRANSLATE_GENDER ($gender) { + switch ($gender) + { + case "M": $ret = GENDER_M; break; + case "F": $ret = GENDER_F; break; + case "C": $ret = GENDER_C; break; + default : $ret = $gender; break; + } + return $ret; +} +// +function FRAMETESTER($URL) { + // Prepare frametester URL + $frametesterUrl = sprintf("%s/modules.php?module=frametester&url=%s", + URL, + urlencode(base64_encode(gzcompress(COMPILE_CODE($URL)))) + ); + return $frametesterUrl; +} +// +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 "\"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; + + case "": + case null: + $ret = ACCOUNT_DELETED; + break; + + default: + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status)); + $ret = UNKNOWN_STATUS_1.$status.UNKNOWN_STATUS_2; + break; + } + return $ret; +} +// +function GET_LANGUAGE() { + global $cacheArray; + + // Set default return value to default language from config + $ret = DEFAULT_LANG; + + // Init variable + $lang = ""; + + // Is the variable set + if (!empty($_GET['mx_lang'])) { + // Accept only first 2 chars + $lang = substr($_GET['mx_lang'], 0, 2); + } elseif (isset($cacheArray['language'])) { + // Use cached + $ret = $cacheArray['language']; + } elseif (!empty($lang)) { + // Check if main language file does exist + if (FILE_READABLE(PATH."inc/language/".$lang.".php")) { + // Okay found, so let's update cookies + SET_LANGUAGE($lang); + } + } elseif (!isSessionVariableSet('mx_lang')) { + // Return stored value from cookie + $ret = get_session('mx_lang'); + + // Fixes a warning before the session has the mx_lang constant + if (empty($ret)) $ret = DEFAULT_LANG; + } + + // Cache entry + $cacheArray['language'] = $ret; + + // Return value + return $ret; +} +// +function SET_LANGUAGE($lang) { + // Accept only first 2 chars! + $lang = substr(SQL_ESCAPE(strip_tags($lang)), 0, 2); + + // Set cookie + set_session("mx_lang", $lang); +} +// +function LOAD_EMAIL_TEMPLATE($template, $content=array(), $UID="0") { + global $DATA, $REPLACER, $_CONFIG; + + // Make sure all template names are lowercase! + $template = strtolower($template); + + // Default "nickname" if extension is not installed + $nick = "---"; + + // Keept for backward-compatiblity (please replace these variables against our new {!CONST!} syntax!) + // No longer used: $MAIN_TITLE = MAIN_TITLE; $URL = URL; $WEBMASTER = WEBMASTER; + + // Prepare IP number and User Agent + $REMOTE_ADDR = GET_REMOTE_ADDR(); + $HTTP_USER_AGENT = GET_USER_AGENT(); + + // Default admin + $ADMIN = MAIN_TITLE; + + // Is the admin logged in? + if (IS_ADMIN()) { + // Get admin id + $aid = GET_CURRENT_ADMIN_ID(); + + // Load Admin data + $ADMIN = GET_ADMIN_EMAIL($aid); + } // END - if + + // Neutral email address is default + $email = WEBMASTER; + + // Expiration in a nice output format + if (getConfig('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(getConfig('auto_purge')); + } else { + // Display days only + $EXPIRATION = round(getConfig('auto_purge')/60/60/24)." "._DAYS; + } + + // Is content an array? + if (is_array($content)) { + // Add expiration to array, $EXPIRATION is now deprecated! + $content['expiration'] = $EXPIRATION; + } // END - if + + // Load user's data + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):UID={$UID},template={$template},content[]=".gettype($content)."
\n"; + if (($UID > 0) && (is_array($content))) { + // If nickname extension is installed, fetch nickname as well + if (EXT_IS_ACTIVE("nickname")) { + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):NICKNAME!
\n"; + // Load nickname + $result = SQL_QUERY_ESC("SELECT surname, family, gender, email, nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", + array(bigintval($UID)), __FILE__, __LINE__); + } else { + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):NO-NICK!
\n"; + /// Load normal data + $result = SQL_QUERY_ESC("SELECT surname, family, gender, email FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", + array(bigintval($UID)), __FILE__, __LINE__); + } + + // Fetch and merge data + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):content()=".count($content)." - PRE
\n"; + $content = merge_array($content, SQL_FETCHARRAY($result)); + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):content()=".count($content)." - AFTER
\n"; + + // Free result + SQL_FREERESULT($result); + } // END - if + + // Translate M to male or F to female if present + if (isset($content['gender'])) $content['gender'] = TRANSLATE_GENDER($content['gender']); + + // Overwrite email from data if present + if (isset($content['email'])) $email = $content['email']; + + // Store email for some functions in global data array + $DATA['email'] = $email; + + // Base directory + $BASE = sprintf("%stemplates/%s/emails/", PATH, GET_LANGUAGE()); + + // 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_READABLE($file)) { + // Reset to default template + $file = $BASE.$template.".tpl"; + } // END - if + + // Now does the final template exists? + $newContent = ""; + if (FILE_READABLE($file)) { + // The local file does exists so we load it. :) + $tmpl_file = implode("", file($file)); + $tmpl_file = addslashes($tmpl_file); + + // Run code + $tmpl_file = "\$newContent=html_entity_decode(\"".COMPILE_CODE($tmpl_file)."\");"; + @eval($tmpl_file); + } elseif (!empty($template)) { + // Template file not found! + $newContent = TEMPLATE_404.": ".$template."
+".TEMPLATE_CONTENT." +
".print_r($content, true)."
+".TEMPLATE_DATA." +
".print_r($DATA, true)."
+

"; + + // Debug mode not active? Then remove the HTML tags + if (!DEBUG_MODE) $newContent = strip_tags($newContent); + } else { + // No template name supplied! + $newContent = NO_TEMPLATE_SUPPLIED; + } + + // Is there some content? + if (empty($newContent)) { + // Compiling failed + $newContent = "Compiler error for template {$template}!\nUncompiled content:\n".$tmpl_file; + if (function_exists('error_get_last')) $newContent .= "\n--------------------------------------\nDebug:\n".print_r(error_get_last(), true)."--------------------------------------\nPlease don't alter these informations!\nThanx."; + } // END - if + + // Remove content and data + unset($content); + unset($DATA); + + // Return compiled content + return COMPILE_CODE($newContent); +} +// +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) { + global $CSS, $footer; + + // Compile out URI codes + $URL = COMPILE_CODE($URL); + + // Check if http(s):// is there + if ((substr($URL, 0, 7) != "http://") && (substr($URL, 0, 8) != "https://")) { + // Make all URLs full-qualified + $URL = URL."/".$URL; + } + + // Get output buffer + /* + print "
";
+	debug_print_backtrace();
+	die("
"); + */ + $OUTPUT = ob_get_contents(); + + // Clear it only if there is content + if (!empty($OUTPUT)) { + ob_end_clean(); + } // END - if + + // 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", GET_USER_AGENT())) || (eregi("bot", GET_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("".$URL.""); + } elseif (!headers_sent()) { + // Load URL when headers are not sent + /* + print("
");
+		debug_print_backtrace();
+		die("
URL={$URL}"); + */ + @header ("Location: ".str_replace("&", "&", $URL)); + } else { + // Output error message + include(PATH."inc/header.php"); + LOAD_TEMPLATE("redirect_url", false, str_replace("&", "&", $URL)); + include(PATH."inc/footer.php"); + } + exit(); +} +// +function COMPILE_CODE($code, $simple = false, $constants = true, $full = true) { + global $SEC_CHARS, $URL_CHARS; + // Is the code a string? + if (!is_string($code)) { + // Silently return it + return $code; + } // END - if + + $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)); + } // END - if + + // 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); + } // END - foreach + + // 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) { + // Fuzzy look has failed by default + $fuzzyFound = false; + + // Fuzzy look on match if already found + foreach ($matchesFound as $found => $set) { + // Get test part + $test = substr($found, 0, strlen($match)); + + // Does this entry exist? + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):found={$found},match={$match},set={$set}
\n"; + if ($test == $match) { + // Match found! + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):fuzzyFound!
\n"; + $fuzzyFound = true; + break; + } // END - if + } // END - foreach + + // Skip this entry? + if ($fuzzyFound) continue; + + // Take all string elements + if ((is_string($matches[4][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key."_".$matches[4][$key]]))) { + // Replace it in the code + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):key={$key},match={$match}
\n"; + $newMatch = str_replace("[".$matches[4][$key]."]", "['".$matches[4][$key]."']", $match); + $code = str_replace($match, "\".".$newMatch.".\"", $code); + $matchesFound[$key."_".$matches[4][$key]] = 1; + $matchesFound[$match] = 1; + } elseif (!isset($matchesFound[$match])) { + // Not yet replaced! + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):match={$match}
\n"; + $code = str_replace($match, "\".".$match.".\"", $code); + $matchesFound[$match] = 1; + } + } // END - foreach + } // END - if + + // 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); + } // END - foreach + } // END - if + } // END - foreach + } // END - foreach + + // Count one up + $primary_key++; + } // END - while + + // 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 .= " \n"; + } + + switch ($type) { + case "day": // Day + for ($idx = 1; $idx < 32; $idx++) { + $OUT .= "\n"; + } + } else { + // Get current year and subtract the configured minimum age + $OUT .= "\n"; + // Calculate earliest year depending on extension version + if (GET_EXT_VERSION("other") >= "0.2.1") { + // Use configured minimum age + $YEAR = date('Y', time()) - getConfig('min_age'); + } else { + // Use fixed 16 years age + $YEAR = date('Y', time()) - 16; + } + + // Construct year selection list + for ($idx = $minYear; $idx <= $YEAR; $idx++) { + $OUT .= "\n"; + } + + // Return the output + return $OUT; +} + +// +?> diff --git a/0.2.1-FINAL/inc/libs/payout_functions.php b/0.2.1-FINAL/inc/libs/payout_functions.php new file mode 100644 index 0000000000..eab3ad8fc0 --- /dev/null +++ b/0.2.1-FINAL/inc/libs/payout_functions.php @@ -0,0 +1,86 @@ + 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("
+
".PAYOUT_NOW.":

+
    "); + // 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("
  • ".PAYOUT_IN.": ".$type." (".PAYOUT_MAX." ".round($P)." ".$type.")
  • "); + } + } + + // Free memory + SQL_FREERESULT($result); + OUTPUT_HTML("
"); + } + else + { + // No payout types setup so far + OUTPUT_HTML("

".PAYOUT_NO_PAYOUT_TYPES."

"); + } + } + else + { + // Points is empty + OUTPUT_HTML("

".PAYOUT_NO_POINTS_ENTERED."

"); + } +} +// +?> diff --git a/0.2.1-FINAL/inc/libs/primera_functions.php b/0.2.1-FINAL/inc/libs/primera_functions.php new file mode 100644 index 0000000000..3a1cff07a0 --- /dev/null +++ b/0.2.1-FINAL/inc/libs/primera_functions.php @@ -0,0 +1,282 @@ +payPrimera($PayReceiver, $PayAmount, $PayDescription); + * + * Wobei $PayReicer der Username des Empfängers bei + * Primusportal.de ist. $PayAmount ist der gerundete( !! ) Betrag an Primera, + * die der Empfänger erhalten soll. $PayDescription ist eine von Ihnen + * festgelegte kurze Beschreibung. Die Länge dieses Textes darf 100 Zeichen + * nicht überschreiten. Beispiel: + * $status = $Interface->payPrimera("garbage", 10000, "Auszahlung IhreSeite.de - ID: 12345"); + * 3. Überprüfung des Status (Rückgabecode): + * CODE: + * if (!$status) { + * // Ein Fehler ist aufgetreten + * // Fehlerbehandlung hier einfügen... + * }else { + * // Auszahlung erfolgreich durchgeführt + * // Führen Sie hier Ihre Datenbankabfragen durch, um die Auszahlung zu + * // bestätigen... + * } + * + * Die komplette Rückgabe des Interfaces wird als assoziatives Array in der Klassen- + * variable __data gespeichert: + * __data => array("status" => Rückgabecode (PI_DONE, PI_SENDER_ERROR, ...), + * "statustext" => Status in Worten (z.B.: "Transaktion erfolgreich durchgeführt"), + * ") + * + * + * @author Andreas Schmidt + * @author Roland Haeder + * @version 1.0 - beta + * @copyright (c) 2007 by Primusportal.de + * @copyright (c) 2008 by Roland Haeder + */ +class PrimeraApi { + /** + * Fehler - Interfacebenutzer + */ + const PI_ERROR = -1; + + /** + * Statuscode für erfolgreich ausgeführte Transaktion + */ + const PI_DONE = 200; + + /** + * Fehler - User existiert nicht oder ist gesperrt + */ + const PI_RECEIVER_ERROR = 301; + + /** + * Sender-Account Fehler (User nicht existent, gesperrt, ...) + */ + const PI_SENDER_ERROR = 401; + + /** + * Betrag fehler + */ + const PI_AMOUNT_ERROR = 501; + + /** + * Zu wenig Primera + */ + const PI_TOO_LESS_PRIMERA = 502; + + /** + * User nicht aktiv oder existiert nicht + */ + const PI_USER_CHECK_ERROR = 601; + + /** + * User aktiv + */ + const PI_USER_CHECK_OK = 602; + + /** + * Primerastand erfolgreich geholt + */ + const PI_GET_PRIMERA_DONE = 701; + + /** + * URL für das Interface auf dem Primusserver: + */ + var $host = "http://www.primusportal.de"; + var $path = "/transfer.interface.2.0.php"; + + var $errno = 0; + var $err = ""; + + var $seperator = ":"; + + var $username = ""; + var $password = ""; + + var $data = array(); + + var $headers = ""; + + /** + * Konstruktor + */ + function PrimeraApi ($PPUsername, $PPPassword) { + // Set data + $this->username = $PPUsername; + $this->password = $PPPassword; + } + + /** + * Anfrage senden und Rückgabecode in Variable speichern + */ + function queryApi ( $data = array() ) { + // Base64-encode username and password hash + $data["PrimusInterface_Username"] = base64_encode($this->username); + $data["PrimusInterface_Password"] = base64_encode($this->password); + + // Send POST request + $return = POST_URL($this->host.$this->path, $data); + + // Convert the array into a full string + $returnStr = implode("\n", $return); + + // Extract the real content, strip header away + $content = explode("", $returnStr); + + // Store headers away for debugging + $this->headers = $content[0]; + + // Return the content + return $content[1]; + } + + /** + * Funktion parst die Rückgabe vom Transferskript: + */ + function parseContent ( $content ) { + $x = explode("\n", $content); + $return = array(); + foreach($x as $currentLine) { + $line_exploded = explode(":", $currentLine,2); + if (count($line_exploded) > 1) { + $return[$line_exploded[0]] = $line_exploded[1]; + } + } + return $return; + } + + /** + * @param int/string $Receiver UserID / Username des Empfängers + * @param int $Amount Betrag in ganzzahligen Primera + * @param string $Description Beschreibung (Sichtbar in Einzelauflistung) + */ + function payPrimera ($Receiver, $Amount, $Description = "") { + $valid = false; + $postData = array("PrimusInterface_Action" => "Pay", + "PrimusInterface_Receiver" => base64_encode($Receiver), + "PrimusInterface_Amount" => base64_encode($Amount), + "PrimusInterface_Description" => base64_encode($Description) ); + + $postReturn = $this->parseContent( $this->queryApi($postData) ); + + $this->data = $postReturn; + if ($postReturn["status"] == "200") { + $valid = true; + } + return $valid; + } + + /** + * Überprüft den Status eines Primus-Users + * - existiert der User + * - ist er aktiv + * @param string/int $User Userid / Username + */ + function CheckPrimusUser($User) { + $valid = false; + $postData = array("PrimusInterface_Action"=> "CheckPrimusUser", + "PrimusInterface_CheckPrimusUser" => $User); + + $postReturn = $this->parseContent( $this->queryApi($postData) ); + + $this->data = $postReturn; + + if ($postReturn["status"] == self::PI_USER_CHECK_OK) { + $valid = true; + } + return $valid; + } + + /** + * Die Funktion liefer den aktuellen Primerastand + */ + function getPrimera() { + $primera = false; + $postData = array( "PrimusInterface_Action" => "GetPrimera" ); + $postReturn = $this->parseContent( $this->queryApi($postData) ); + + $this->data = $postReturn; + if ($postReturn["status"] == self::PI_GET_PRIMERA_DONE) { + $primera = $postReturn["primera"]; + } + return $primera; + } + /** + * Getter fuer data + */ + function getData () { + return $this->data; + } +} + +// Function to test the Primera API by getting the amount. If the returned value +// is not false the API data is valid, else invalid +function PRIMERA_TEST_API () { + // Get new instance + $api = new PrimeraApi($_POST['primera_api_name'], $_POST['primera_api_md5']); + + // Was that fine? + return ($api->getPrimera() !== false); +} +// Execute the withdraw of a sponsor only! +function PRIMERA_EXECUTE_WITHDRAW ($primusNick, $userMd5, $amount) { + global $_CONFIG; + + // Is the sponsor extension installed? + if (!EXT_IS_ACTIVE("sponsor")) { + // No, abort here + return false; + } elseif (!IS_SPONSOR()) { + // No sponsor, not allowed to withdraw! + return false; + } + + // Get new instance + $api = new PrimeraApi($primusNick, $userMd5); + + // Prepare purpose + $eval = "\$purpose = \"".COMPILE_CODE(sprintf(PRIMERA_API_PURPOSE_WITHDRAW, $_COOKIE['sponsorid']))."\";"; + eval($eval); + + // Pay the Primera + return $api->payPrimera($primusNick, $amount, $purpose); +} +// Execute the payout +function PRIMERA_EXECUTE_PAYOUT ($primusNick, $userMd5, $amount) { + global $_CONFIG; + + // Get new instance + $api = new PrimeraApi(getConfig('primera_api_name'), getConfig('primera_api_md5')); + + // Prepare purpose + $eval = "\$purpose = \"".COMPILE_CODE(sprintf(PRIMERA_API_PURPOSE_PAYOUT, $GLOBALS['userid']))."\";"; + eval($eval); + + // Pay the Primera + return $api->payPrimera($primusNick, $amount, $purpose); +} +// [EOF] +?> diff --git a/0.2.1-FINAL/inc/libs/rallye_functions.php b/0.2.1-FINAL/inc/libs/rallye_functions.php new file mode 100644 index 0000000000..ac949d0a89 --- /dev/null +++ b/0.2.1-FINAL/inc/libs/rallye_functions.php @@ -0,0 +1,808 @@ + 0 AND d.mails_confirmed >= %s AND p.ref_depth=1 AND p.points > 0 AND d.userid=%s", + array(getConfig('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 + 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; + } // END - if + + // 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", array('prices' => $prices), $uid); + SEND_EMAIL($uid, RALLYE_MEMBER_NOTIFY.$title, $msg); + } // END - if + } // END - while + + // Choose the right admin template + $templ = "admin_rallye_no_notify"; + if ($notify == "Y") $templ = "admin_rallye_notify"; + + // Send email to admin + SEND_ADMIN_NOTIFICATION(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 = "
\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) +{ + // First check how many prices are set + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%s 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=%s 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=%s AND d.status='CONFIRMED' AND p.ref_depth=1 AND d.max_mails > 0 AND d.mails_confirmed >= %s +LIMIT 1", array(bigintval($uid), getConfig('ref_payout')), __FILE__, __LINE__); + list($refpoints) = SQL_FETCHROW($result_ref); + SQL_FREERESULT($result_ref); + + if (empty($refpoints)) $refpoints = 0; + + // Init userid for list + $_uid = "---"; + // List only users with at least one ref! + //* DEBUG: */ echo "*".$cnt."/".$uid."/".$cpoints."/".$refpoints."*
\n"; + 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 .= " +   ".($idx+1).". + "; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= $DATA['uid'][$idx]; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= " + "; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= $DATA['ref'][$idx]; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= " +\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; + $ADD = ""; + + // Updated extension? + if (GET_EXT_VERSION("rallye") >= "0.2.0") { + $ADD .= ", min_users, min_prices"; + } // END - if + + // Check for an auto-add rallye + $result = SQL_QUERY("SELECT id, title, start_time, end_time, send_notify".$ADD." 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) { + // Init variables + $min_users = 0; $min_prices = 0; + // Load data + if (GET_EXT_VERSION("rallye") >= "0.2.0") { + list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result); + } else { + list($id, $title, $start, $end, $notify) = SQL_FETCHROW($result); + } + + // Free result + SQL_FREERESULT($result); + + // Check if line is already included... + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%s AND userid=%s LIMIT 1", + array(bigintval($id), bigintval($uid)), __FILE__, __LINE__); + + // Is this user added? + if (SQL_NUMROWS($result) == 0) { + // Add userid and his ref count to table + 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; + $DATA['refs'] = GET_TOTAL_DATA($uid, "user_data", "userid", "refid", true); + + // Load prices + $prices = RALLYE_ADD_PRICES($id); + + 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; + } + + // Send notification to member + $msg = LOAD_EMAIL_TEMPLATE("member_rallye_notify", array('prices' => $prices), $uid); + SEND_EMAIL($uid, RALLYE_MEMBER_NOTIFY.$title, $msg); + } // END - if + } // END - if +} +// +function RALLYE_EXPIRE_RALLYES($result) +{ + global $DATA; + + // 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=%s AND status='CONFIRMED' +LIMIT 1", array(bigintval($uid)), __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++; + } // END - if + } // END - foreach + + if (($TOTAL < $min_prices) || ($TOTAL == 0)) { + // Do not end this rallye! + unset($DATA); + return; + } // END - if + + // Expire rallye + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_rallye_data SET expired='Y' WHERE id=%s 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]; + + // Default is other + $winnerLevel = "other"; + + // Determine winner level + if ($DATA['level'] == 1) { + // The winner! + $winnerLevel = "_gold"; + } elseif ($DATA['level'] == 2) { + // The vice winner! + $winnerLevel = "_silver"; + } elseif ($DATA['level'] == 3) { + // The bronce winner + $winnerLevel = "_bronce"; + } + + if ($DATA['points'] > 0) { + // Add points directly to user's account + ADD_POINTS_REFSYSTEM("rallye_winner" . $winnerLevel, $uid, $DATA['points'], false, "0", false, "direct"); + } // END - if + + 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".$winnerLevel; + + // Load template + $msg = LOAD_EMAIL_TEMPLATE($template, $DATA, $uid); + SEND_EMAIL($uid, RALLYE_MEMBER_EXPIRED.": ".$DATA['level']." "._RALLYE_PRICE, $msg); + } // END - if + + // Count userid + $cnt++; + $users['uid'][$uid] = $uid; + $users['poi'][$uid] = $DATA['infos']; + } // END - if + } // END - foreach + + // 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 + SEND_ADMIN_NOTIFICATION(RALLYE_ADMIN_EXPIRED.": ".$title, $templ, $cnt, 0); + + // Add task + 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, gender, 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, $gender, $surname, $family, $email) = SQL_FETCHROW($result)) + { + $ret .= TRANSLATE_GENDER($gender)." ".$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=%s 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 (getConfig('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=%s 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=%s", + array(getConfig('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=%s 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=%s 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 .= " +   ".($idx+1).". + "; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= $DATA['uid'][$idx]; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= " + "; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= $DATA['ref'][$idx]; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= " + "; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= $DATA['infos'][$idx]; + if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; + $OUT .= " +\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; + + // Check for expired rallyes + $EXPIRE = getConfig('one_day') * 3; // @TODO The hard-coded value... + $result_rallye = SQL_QUERY_ESC("SELECT id, title, start_time, end_time +FROM "._MYSQL_PREFIX."_rallye_data +WHERE end_time <= (UNIX_TIMESTAMP() - %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 + SEND_ADMIN_NOTIFICATION(RALLYE_ADMIN_PURGED.": ".$title, "admin_rallye_purged", "", 0); + + // Purge whole rallye + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_data WHERE id=%s LIMIT 1", + array(bigintval($id)), __FILE__, __LINE__); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_prices WHERE rallye_id=%s LIMIT 1", + array(bigintval($id)), __FILE__, __LINE__); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_users WHERE rallye_id=%s LIMIT 1", + array(bigintval($id)), __FILE__, __LINE__); + } + + // Add 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 = sprintf("%stemplates/%s/html/rallye/", PATH, GET_LANGUAGE()); + $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 = "\n"; + } + else + { + // No rallye templates found + $OUT = RALLYE_NO_TEMPLATES_FOUND; + } + + // Return selection + return $OUT; +} +// +function RALLYE_GET_REFCOUNT($uid, $old=0) { + global $cacheArray; + + // Check current refs + if (GET_EXT_VERSION("cache") >= "0.1.2") { + // Get refs from cache + $cnt = 0; + foreach ($cacheArray['refsystem']['userid'] as $id => $u_id) { + // Do we have a ref for this user? + //* DEBUG: */ echo "id={$id},u_id={$u_id},uid={$uid},old={$old},level={$cacheArray['refsystem']['level'][$id]}
\n"; + if (($u_id == $uid) && ($cacheArray['refsystem']['level'][$id] == 1)) { + //* DEBUG: */ echo "uid matches!
\n"; + foreach ($cacheArray['ref_depths']['level'] as $level) { + if (($level == $cacheArray['refsystem']['level'][$id]) && ($level == 1)) { + // Level does exist so abort here + $cnt = $cacheArray['refsystem']['counter'][$id]; + //* DEBUG: */ echo "*".$uid."/".$cnt."*
"; + break; + } elseif ($level > 1) { + // Not interesting here... + break; + } + } + + // Abort also here! + if ($cnt > 0) break; + } + } + //* DEBUG: */ echo "
";
+		//* DEBUG: */ print_r($cacheArray['refsystem']);
+		//* DEBUG: */ echo "
"; + //* DEBUG: */ die(); + + if ($cnt > 0) { + // Count cache hits + incrementConfigEntry('cache_hits'); + + // Remove old refs + //* DEBUG: */ echo "+".$cnt."/".$old."+
"; + $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=%s AND s.level=1", 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."*
"; + return $cnt; +} + +// Filter for extra-autpurge +function FILTER_RALLYE_EXTRA_AUTOPURGE () { + // Check expired rallyes (hard-coded 3 days limit for displaying expired rallyes!) + RALLYE_DELETE_EXPIRED_RALLYES(); +} + +// +?> diff --git a/0.2.1-FINAL/inc/libs/refback_functions.php b/0.2.1-FINAL/inc/libs/refback_functions.php new file mode 100644 index 0000000000..551f56e4cf --- /dev/null +++ b/0.2.1-FINAL/inc/libs/refback_functions.php @@ -0,0 +1,395 @@ +".__FUNCTION__." - ENTRY ------------------------
  • \n"; + global $cacheArray; + + // Back ref depths + $cacheArray['depth'][$uid][$ref] = $GLOBALS['ref_level']; + + // Init points + $return = $points; + + // Get all ref levels + $result_refs = SQL_QUERY("SELECT level, percents FROM "._MYSQL_PREFIX."_refdepths WHERE level > 0 ORDER BY level ASC", __FILE__, __LINE__); + + // "Walk" through all level + while (list($level, $perc) = SQL_FETCHROW($result_refs)) { + // Reset ref depths + unset($GLOBALS['ref_level']); + + // "Walk" through all refids + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},ref={$ref},level={$level},points={$points}
    \n"; + foreach (GET_REFBACK_USERID_ARRAY($uid, $level) as $refid) { + // Skip level zero or if both are the same + if ($uid == $refid) continue; + + // Get refback percents + $percents = GET_REFBACK_PERCENTS($uid, $refid); + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},ref={$ref},refid={$refid},points={$points},percents={$percents}
    \n"; + + // Some percents given? + if ($percents > 0) { + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):points={$points},perc={$perc},percents={$percents},level={$level}
    \n"; + // Calculate points for refback + $refback = $points * ($perc / 100) * ($percents / 100); + + // Update refback table ("refid" and "uid" must be exchanged!) + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_refs SET points=points+%s WHERE userid=%s AND refid=%s LIMIT 1", + array($refback, $refid, $uid), __FILE__, __LINE__); + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):refback={$refback},uid={$uid},refid={$refid} - UPDATE! (".SQL_AFFECTEDROWS().")
    \n"; + + // Add points again, but only directly + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):refback={$refback}
    \n"; + ADD_POINTS_REFSYSTEM(sprintf("refback:%s", $refid), $uid, $refback, false, "0", false, "direct"); + + // Reduce points if refid is found + if ($refid == $ref) { + // Reduce points here! + $return = $points * ($perc / 100) - $refback; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):points={$return} - REDUCED
    \n"; + } // END - if + } // END - if + } // END foreach + } // END - while + + // Free result + SQL_FREERESULT($result_refs); + + // Restore ref depth + $GLOBALS['ref_level'] = $cacheArray['depth'][$uid][$ref]; + + // Return them + //* DEBUG: */ print "
----------------------- ".__FUNCTION__." - EXIT ------------------------
\n"; + return $return; +} +// "Getter" for refback percents +function GET_REFBACK_PERCENTS ($uid, $ref) { + //* DEBUG: */ print "----------------------- ".__FUNCTION__." - ENTRY ------------------------
  • \n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},ref={$ref}
    \n"; + // Skip identical ids + if ($uid == $ref) return 0; + + // Default is zero + $percents = 0; + + // Get percents from database + $result = SQL_QUERY_ESC("SELECT refback FROM "._MYSQL_PREFIX."_user_refs WHERE userid=%s AND refid=%s LIMIT 1", + array($ref, $uid), __FILE__, __LINE__); + + // Entry found? (Should be!) + if (SQL_NUMROWS($result) == 1) { + // Fetch percents + list($percents) = SQL_FETCHROW($result); + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):percents={$percents}
    \n"; + } else { + // Debug log + //* DEBUG: */ print __FUNCTION__."(".__LINE__."): NO ENTRY FOUND! :-(
    \n"; + DEBUG_LOG(__FUNCTION__, __LINE__, " uid={$uid},ref={$ref} - No entry found! :-("); + } + + // Free result + SQL_FREERESULT($result); + + // Return percents + //* DEBUG: */ print "
----------------------- ".__FUNCTION__." - EXIT ------------------------
\n"; + return $percents; +} +// "Getter" for userid array which will return only one entry +function GET_REFBACK_USERID_ARRAY ($rid, $level) { + //* DEBUG: */ print "----------------------- ".__FUNCTION__." - ENTRY ------------------------
  • \n"; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):rid={$rid},level={$level}
    \n"; + // Init userids + $userIds = array(); + + // Look for all + $result = SQL_QUERY_ESC("SELECT userid +FROM "._MYSQL_PREFIX."_user_refs +WHERE refid=%s AND level=%s +ORDER BY userid ASC", + array($rid,$level), __FILE__, __LINE__); + + // Entries found? + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):numRows=".SQL_NUMROWS($result)."
    \n"; + if (SQL_NUMROWS($result) > 0) { + // Add all + while (list($userid) = SQL_FETCHROW($result)) { + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):rid={$rid},level={$level},userid={$userid}
    \n"; + $userIds[] = $userid; + } // END - while + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return array + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):rid={$rid},count()=".count($userIds)."
    \n"; + //* DEBUG: */ print "
----------------------- ".__FUNCTION__." - EXIT ------------------------
\n"; + return $userIds; +} +// Update "refback table" +function UPDATE_REFBACK_TABLE($uid) { + //* DEBUG: */ print "----------------------- ".__FUNCTION__." - ENTRY ------------------------
  • \n"; + global $cacheArray, $cacheInstance; + + // Make it sure referal level zero (member him-/herself) is at least selected + if (empty($cacheArray['back_level'])) $cacheArray['back_level'] = 1; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},level={$cacheArray['back_level']}
    \n"; + + // Init refid + $cacheArray['up_refid'][$cacheArray['back_level']] = 0; + $old = 0; $minus = 0; + + // Check for his referal + $result_refid = SQL_QUERY_ESC("SELECT userid FROM `"._MYSQL_PREFIX."_user_data` WHERE refid=%s ORDER BY userid ASC", + array(bigintval($uid)), __FILE__, __LINE__); + + // When no entry was updated then we have to create it here + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):found=".SQL_NUMROWS($result_refid)."
    \n"; + if (SQL_NUMROWS($result_refid) > 0) { + // Load all refids + while(list($cacheArray['up_refid'][$cacheArray['back_level']]) = SQL_FETCHROW($result_refid)) { + // Remmber userid + $cacheArray['up_userid'][$cacheArray['up_refid'][$cacheArray['back_level']]] = $uid; + + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},ref={$cacheArray['up_refid'][$cacheArray['back_level']]}
    \n"; + // Refid set? + if (($cacheArray['up_refid'][$cacheArray['back_level']] > 0) && ($cacheArray['up_refid'][$cacheArray['back_level']] != $uid) && (isset($cacheArray['up_refid'][$cacheArray['back_level']]))) { + // New userid? + if ((isset($cacheArray['up_refid'][$cacheArray['back_level']-1])) && (isset($cacheArray['up_userid'][$cacheArray['up_refid'][$cacheArray['back_level']-1]]))) { + // New userid! + $old = $uid; + $uid = $cacheArray['up_userid'][$cacheArray['up_refid'][$cacheArray['back_level']-1]]; + $minus = 1; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},old={$old},level={$cacheArray['back_level']},ref={$cacheArray['up_refid'][$cacheArray['back_level']]} - NEW UID!
    \n"; + } // END - if + + // Check existence + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_refs WHERE userid=%s AND level='%s' AND refid=%s LIMIT 1", + array(bigintval($uid), $cacheArray['back_level'], bigintval($cacheArray['up_refid'][$cacheArray['back_level']])), __FILE__, __LINE__); + + // Do we have no entry? + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},level={$cacheArray['back_level']},ref={$cacheArray['up_refid'][$cacheArray['back_level']]},minus={$minus},numRows=".SQL_NUMROWS($result)." - FOUND!
    \n"; + if (SQL_NUMROWS($result) == 0) { + // Insert this level + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},level={$cacheArray['back_level']},ref={$cacheArray['up_refid'][$cacheArray['back_level']]} - ADD!
    \n"; + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_refs (userid,level,refid) VALUES (%s,%s,%s)", + array(bigintval($uid), $cacheArray['back_level'], bigintval($cacheArray['up_refid'][$cacheArray['back_level']])), __FILE__, __LINE__); + + // Move to next referal level and count his counter one up! + $cacheArray['back_level']++; UPDATE_REFBACK_TABLE($cacheArray['up_refid'][($cacheArray['back_level'] - 1)]); + } // END - if + + // Do we have another level here? + if ((($cacheArray['back_level']-$minus) > 0) && ($old > 0)) { + // Restore old one + $uid = $old; + + // Shall we add this as well? + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_refs WHERE userid=%s AND level='%s' AND refid=%s LIMIT 1", + array(bigintval($uid), ($cacheArray['back_level']-$minus), bigintval($cacheArray['up_refid'][$cacheArray['back_level']])), __FILE__, __LINE__); + + // Do we have no entry? + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},level=".($cacheArray['back_level']-$minus).",ref={$cacheArray['up_refid'][$cacheArray['back_level']]},numRows=".SQL_NUMROWS($result)." - BACK!
    \n"; + if (SQL_NUMROWS($result) == 0) { + // Insert this level + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_refs (userid,level,refid) VALUES (%s,%s,%s)", + array(bigintval($uid), ($cacheArray['back_level']-$minus), bigintval($cacheArray['up_refid'][$cacheArray['back_level']])), __FILE__, __LINE__); + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},level=".($cacheArray['back_level']-$minus).",ref={$cacheArray['up_refid'][$cacheArray['back_level']]} - RETURNED!
    \n"; + } // END - if + } // END - if + } // END - if + } // END - while + + // Free memory + SQL_FREERESULT($result_refid); + } // END - if + + // When he has a referal... + if ((($cacheArray['up_refid'][$cacheArray['back_level']] == $uid) || ($cacheArray['up_refid'][$cacheArray['back_level']] == 0)) && (GET_EXT_VERSION("cache") >= "0.1.2") && (!isset($cacheArray['back_cached']))) { + // Remove cache here + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},ref={$cacheArray['up_refid'][$cacheArray['back_level']]} - CACHE!
    \n"; + if ($cacheInstance->loadCacheFile("refback")) $cacheInstance->destroyCacheFile(); + $cacheArray['back_cached'] = 1; + } // END - if + + // "Walk" back here + $cacheArray['back_level']--; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},level={$cacheArray['back_level']} - LEVEL!
    \n"; + + // Fix empty refid + if (!isset($cacheArray['up_refid'][$cacheArray['back_level']-1])) $cacheArray['up_refid'][$cacheArray['back_level']-1] = 0; + //* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},level={$cacheArray['back_level']},ref={$cacheArray['up_refid'][$cacheArray['back_level']-1]} - BACK!
    \n"; + //* DEBUG: */ print "
----------------------- ".__FUNCTION__." - EXIT ------------------------
\n"; +} +// "Getter" for array for user refs in given level +function GET_USER_REFS ($uid, $level) { + //* DEBUG: */ print "----------------------- ".__FUNCTION__." - ENTRY ------------------------
  • \n"; + // Default is no refs and no nickname + $ADD = ""; + $refs = array(); + + // Do we have nickname extension installed? + if (EXT_IS_ACTIVE("nickname")) { + $ADD = ", d.nickname"; + } // END - if + + // Get refs from database + $result = SQL_QUERY_ESC("SELECT r.id, r.refid, r.refback, r.points, d.status".$ADD." +FROM "._MYSQL_PREFIX."_user_refs AS r +LEFT JOIN `"._MYSQL_PREFIX."_user_data` AS d +ON r.refid=d.userid +WHERE r.userid=%s AND r.level=%s +ORDER BY r.refid ASC", + array(bigintval($uid), bigintval($level)), __FILE__, __LINE__); + + // Are there some entries? + if (SQL_NUMROWS($result) > 0) { + // Fetch all entries + while ($row = SQL_FETCHARRAY($result)) { + // Add row + $refs[$row['id']] = $row; + } // END - while + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return result + //* DEBUG: */ print "
----------------------- ".__FUNCTION__." - EXIT ------------------------
\n"; + return $refs; +} +// "Getter" for refback entry +function GET_USER_REF_ENTRY ($id) { + //* DEBUG: */ print "----------------------- ".__FUNCTION__." - ENTRY ------------------------
  • \n"; + // Default data is nothing + $data = array(); + + // Secure id number + $id = bigintval($id); + + // Get entry from database + $result = SQL_QUERY_ESC("SELECT id, refid, refback, level FROM "._MYSQL_PREFIX."_user_refs WHERE id=%s AND userid=%s LIMIT 1", + array($id, $GLOBALS['userid']), __FILE__, __LINE__); + + // Is there an entry? + if (SQL_NUMROWS($result) == 1) { + // Fetch data + $data = SQL_FETCHARRAY($result); + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return entry + //* DEBUG: */ print "
----------------------- ".__FUNCTION__." - EXIT ------------------------
\n"; + return $data; +} +// Update refback percents (but with some sanity-checks! +function REFBACK_CHANGE_MEMBER_PERCENTS ($id, $percents) { + //* DEBUG: */ print "----------------------- ".__FUNCTION__." - ENTRY ------------------------
  • \n"; + // Default status is failed + $status['message'] = MEMBER_REFBACK_ERROR_GENERAL; + + // Do some sanity-checks + if (!IS_MEMBER()) { + // No member! + $status['message'] = MEMBER_REFBACK_ERROR_NO_MEMBER; + return $status; + } elseif ("".$id."" != "".($id + 0)."") { + // No number! + $status['message'] = MEMBER_REFBACK_ERROR_INVALID_ID_NUMBER; + return $status; + } elseif (($percents < 0) || ($percents > 100)) { + // Percentage is not valid! + $status['message'] = MEMBER_REFBACK_ERROR_INVALID_PERCENTAGE; + return $status; + } + + // Get ref entry + $dummy = GET_USER_REF_ENTRY($id); + + // Is this valid? + if (count($dummy) == 0) { + // ID does not belong to user! + $status['message'] = MEMBER_REFBACK_ERROR_ID_MISMATCH; + return $status; + } // END - if + + // Revert german commata + $percents = REVERT_COMMA($percents); + + // Update entry + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_refs SET refback='%s' WHERE id=%s AND userid=%s LIMIT 1", + array($percents, $id, $GLOBALS['userid']), __FILE__, __LINE__); + + // Entry updated? + if (SQL_AFFECTEDROWS() < 1) { + // Entry not updated! + $status['message'] = MEMBER_REFBACK_ERROR_NOT_UPDATED;; + return $status; + } // END - if + + // Prepare email content + $content = array( + 'percents' => TRANSLATE_COMMA($percents), + 'refid' => $dummy['refid'], + 'level' => $dummy['level'] + ); + + // Load member email template + $mail = LOAD_EMAIL_TEMPLATE("member_refback", $content, $GLOBALS['userid']); + + // Send email to user + SEND_EMAIL($dummy['refid'], MEMBER_REFBACK_SUBJECT, $mail); + + // Send admin notification + SEND_ADMIN_NOTIFICATION(ADMIN_REFBACK_SUBJECT, "admin_refback", $content, $GLOBALS['userid']); + + // All fine! + $status['ok'] = true; + + // Return status array + //* DEBUG: */ print "
----------------------- ".__FUNCTION__." - EXIT ------------------------
\n"; + return $status; +} +// +?> diff --git a/0.2.1-FINAL/inc/libs/register_functions.php b/0.2.1-FINAL/inc/libs/register_functions.php new file mode 100644 index 0000000000..93623b45ea --- /dev/null +++ b/0.2.1-FINAL/inc/libs/register_functions.php @@ -0,0 +1,167 @@ + (*)"; + $eval = "define('MUST_".strtoupper($name)."', \"".$value."\");"; + eval($eval); + } // END - while + + // Free memory + SQL_FREERESULT($result); + + // Also fill other constants + define('MUST_GENDER', " (*)"); + define('MUST_ADDY' , " (*)"); + define('MUST_BIRTH' , " (*)"); + define('MUST_MARKER', " (*)"); +} +// +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] = ""; + $OUT = constant('REGISTER_'.strtoupper($name).'_REQUIRED'); + OUTPUT_HTML("".$OUT."

"); + } + } + + // 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 .= "\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") || ((getConfig('register_default') == "Y") && (empty($_POST['cat'][$id])))) { + $content['def_y'] = " checked=\"checked\""; + } else { + $content['def_n'] = " checked=\"checked\""; + } + + // Load template and switch color + $OUT .= LOAD_TEMPLATE("guest_cat_row", true, $content); + $SW = 3 - $SW; + } + $OUT .= "
\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-FINAL/inc/libs/removeip_functions.php b/0.2.1-FINAL/inc/libs/removeip_functions.php new file mode 100644 index 0000000000..bd09d69ee5 --- /dev/null +++ b/0.2.1-FINAL/inc/libs/removeip_functions.php @@ -0,0 +1,159 @@ +\n"; + } // END - if + + // Return it + return $content; +} + +// +?> diff --git a/0.2.1-FINAL/inc/libs/rewrite_functions.php b/0.2.1-FINAL/inc/libs/rewrite_functions.php new file mode 100644 index 0000000000..5a1929e6a2 --- /dev/null +++ b/0.2.1-FINAL/inc/libs/rewrite_functions.php @@ -0,0 +1,115 @@ +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 &admin= with "/aid/" + $REPLACE['search'][] = "admin"; + $REPLACE['replace'][] = "aid"; + } // END - if + + // Replace all array elements through + foreach ($REPLACE['search'] as $k => $v) { + if (eregi("$v=", $test)) { + // Replace &u_id= with /u/ + $test = preg_replace("/&".$v."=/i", "/".$REPLACE['replace'][$k]."/", $test); + } // END - if + } // END - foreach + + // Repair missed &what=??? entries + while (preg_match("/&what=(.*)\/(.*)\/(.*)/i", $test)) { + $test = preg_replace("/&what=(.*)\/(.*)\/(.*)/i", "/wht/\$1/\$2/\$3", $test); + } // END - while + + // Return rewritten code + return $test; +} +// +?> diff --git a/0.2.1-FINAL/inc/libs/security_functions.php b/0.2.1-FINAL/inc/libs/security_functions.php new file mode 100644 index 0000000000..0f34c42e88 --- /dev/null +++ b/0.2.1-FINAL/inc/libs/security_functions.php @@ -0,0 +1,228 @@ + 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-FINAL/inc/libs/sponsor_functions.php b/0.2.1-FINAL/inc/libs/sponsor_functions.php new file mode 100644 index 0000000000..499abe7e9f --- /dev/null +++ b/0.2.1-FINAL/inc/libs/sponsor_functions.php @@ -0,0 +1,635 @@ + array(), + 'values' => array() + ); + + // Check if sponsor already exists + foreach ($POST as $k => $v) + { + if (!(array_search($k, $SKIPPED) > -1)) + { + // Check only posted input entries not the submit button + switch ($k) + { + case "email": + $ALREADY = false; + if (!VALIDATE_EMAIL($v)) + { + // Email address is not valid + $SAVE = false; + } + else + { + // Do we want to add a new sponsor or update his data? + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_sponsor_data WHERE email='%s' LIMIT 1", + array($POST['email']), __FILE__, __LINE__); + + // Is a sponsor alread in the db? + if (SQL_NUMROWS($result) == 1) + { + // Free memory + SQL_FREERESULT($result); + + // Yes, he is! + if (($GLOBALS['what'] == "add_sponsor") || ($NO_UPDATE)) + { + // Already found! + $ALREADY = true; + } + else + { + // Update his data + $UPDATE = true; + } + } + } + break; + + case "pass1": + $k = ""; $v = ""; + break; + + case "pass2": + $k = "password"; $v = md5($v); + break; + + case "url": + if (!VALIDATE_URL($v)) $SAVE = false; + break; + + default: + // Test if there is are time selections + $TEST = substr($k, -3); + if ((($TEST == "_ye") || ($TEST == "_mo") || ($TEST == "_we") || ($TEST == "_da") || ($TEST == "_ho") || ($TEST == "_mi") || ($TEST == "_se")) && (!empty($v))) + { + // Found a multi-selection for timings? + $TEST = substr($k, 0, -3); + if ((!empty($POST[$TEST."_ye"])) && (!empty($POST[$TEST."_mo"])) && (!empty($POST[$TEST."_we"])) && (!empty($POST[$TEST."_da"])) && (!empty($POST[$TEST."_ho"])) && (!empty($POST[$TEST."_mi"])) && (!empty($POST[$TEST."_se"])) && ($TEST != $TEST2)) + { + // Generate timestamp + $POST[$TEST] = CREATE_TIMESTAMP_FROM_SELECTIONS($TEST, $POST); + $DATA['keys'][] = $TEST; + $DATA['values'][] = $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 + $k = ""; $skip = true; $TEST2 = $TEST; + } + } + else + { + $skip = false; $TEST2 = ""; + } + break; + } + + if ((!empty($k)) && ($skip == false)) + { + // Add data + $DATA['keys'][] = $k; $DATA['values'][] = $v; + } + } + } + + // Save sponsor? + if ($SAVE) + { + // Default is no force even when a guest want to abuse this force switch + if ((empty($POST['force'])) || (!IS_ADMIN())) $POST['force'] = 0; + + // SQL and message string is empty by default + $SQL = ""; $MSG = ""; + + // Update? + if ($UPDATE) + { + // Update his data + $SQL = "UPDATE "._MYSQL_PREFIX."_sponsor_data SET "; + foreach ($DATA['keys'] as $k => $v) + { + $SQL .= $v."='%s', "; + } + + // Remove last ", " from SQL string + $SQL = substr($SQL, 0, -2)." WHERE id='%s' LIMIT 1"; + $DATA['values'][] = bigintval($_GET['id']); + + // Generate message + $MSG = SPONSOR_SET_MESSAGE(ADMIN_SPONSOR_UPDATED, "updated", $MSGs); + $ret = "updated"; + } + elseif ((!$ALREADY) || (($POST['force'] == "1") && (IS_ADMIN()))) + { + // Add new sponsor, first add more data + $DATA['keys'][] = "sponsor_created"; $DATA['values'][] = time(); + $DATA['keys'][] = "status"; + if ((!$NO_UPDATE) && (IS_ADMIN()) && ($GLOBALS['what'] == "add_sponsor")) + { + // Only allowed for admin + $DATA['values'][] = "PENDING"; + } + else + { + // Guest area + $DATA['values'][] = "UNCONFIRMED"; + + // Generate hash code + $DATA['keys'][] = "hash"; + $DATA['values'][] = md5($_COOKIE['PHPSESSID'].":".$POST['email'].":".GET_REMOTE_ADDR().":".GET_USER_AGENT().":".time()); + $DATA['keys'][] = "remote_addr"; + $DATA['values'][] = GET_REMOTE_ADDR(); + } + + // Implode all data into strings + $KEYS = implode(", " , $DATA['keys']); + $VALUES = str_repeat("%s', '", count($DATA['values']) - 1); + + // Generate string + $SQL = "INSERT INTO "._MYSQL_PREFIX."_sponsor_data (".$KEYS.") VALUES ('".$VALUES."%s')"; + + // Generate message + $MSG = SPONSOR_SET_MESSAGE(ADMIN_SPONSOR_ADDED, "added", $MSGs); + $ret = "added"; + } + elseif ((!$NO_UPDATE) && (IS_ADMIN())) + { + // Add all data as hidden data + $OUT = ""; + foreach ($POST as $k => $v) + { + // Do not add 'force' ! + if ($k != "force") + { + $OUT .= "\n"; + } + } + define('__HIDDEN_DATA', $OUT); + define('__EMAIL' , $POST['email']); + + // Ask for adding a sponsor with same email address + LOAD_TEMPLATE("admin_add_sponsor_already"); + return; + } + else + { + // Already added! + $MSG = SPONSOR_ALREADY_FOUND_1.$POST['email'].SPONSOR_ALREADY_FOUND_2; + $ret = "already"; + } + + if (!empty($SQL)) + { + // Run SQL command + $result = SQL_QUERY_ESC($SQL, $DATA['values'], __FILE__, __LINE__); + } + + // Output message + if ((!$NO_UPDATE) && (IS_ADMIN())) + { + LOAD_TEMPLATE("admin_settings_saved", false, $MSG); + } + } + else + { + // Error found! + $MSG = SPONSOR_SET_MESSAGE(SPONSOR_DATA_NOT_SAVED, "failed", $MSGs); + LOAD_TEMPLATE("admin_settings_saved", false, $MSG); + } + + // Shall we return the status? + if ($RET_STATUS) return $ret; +} +// +function SPONSOR_TRANSLATE_STATUS($status) +{ + switch ($status) + { + case "UNCONFIRMED": + $ret = ACCOUNT_UNCONFIRMED; + break; + + case "CONFIRMED": + $ret = ACCOUNT_CONFIRMED; + break; + + case "LOCKED": + $ret = ACCOUNT_LOCKED; + break; + + case "PENDING": + $ret = ACCOUNT_PENDING; + break; + + case "EMAIL": + $ret = ACCOUNT_EMAIL; + break; + + default: + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status)); + $ret = UNKNOWN_STATUS_1.$status.UNKNOWN_STATUS_2; + break; + } + return $ret; +} +// Search for an email address in the database +function SPONSOR_FOUND_EMAIL_DB($email) +{ + // Default status is failed (as it is always be...) + $ret = false; + + // Check for email (and secure input) + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_sponsor_data WHERE email='%s' LIMIT 1", + array($email), __FILE__, __LINE__); + + // Do we already have the provided email address in our DB? + if (SQL_NUMROWS($result) == 1) $ret = true; + + // Return result + return $ret; +} +// +function SPONSOR_SET_MESSAGE($msg, $pos, $array) +{ + // Check if the requested message was found in array + if (isset($array[$pos])) + { + // ... if yes then use it! + $ret = $array[$pos]; + } + else + { + // ... else use default message + $ret = $msg; + } + + // Return result + return $ret; +} +// +function IS_SPONSOR() +{ + global $_COOKIE; + // Failed... + $ret = false; + if ((!empty($_COOKIE['sponsorid'])) && (!empty($_COOKIE['sponsorpass']))) + { + // Check cookies against database records... + $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_sponsor_data +WHERE id='%s' AND password='%s' AND status='CONFIRMED' LIMIT 1", + array(bigintval($_COOKIE['sponsorid']), $_COOKIE['sponsorpass']), __FILE__, __LINE__); + if (SQL_NUMROWS($result) == 1) + { + // All is fine + $ret = true; + } + + // Free memory + SQL_FREERESULT($result); + } + + // Return status + return $ret; +} +// +function GENERATE_SPONSOR_MENU($current) +{ + $OUT = ""; + $WHERE = " AND active='Y'"; + if (IS_ADMIN()) $WHERE = ""; + + // Load main menu entries + $result_main = SQL_QUERY("SELECT action, title FROM "._MYSQL_PREFIX."_sponsor_menu +WHERE (what='' OR what IS NULL) ".$WHERE." +ORDER BY sort", __FILE__, __LINE__); + if (SQL_NUMROWS($result_main) > 0) + { + // Load every menu and it's sub menus + while(list($action, $title_main) = SQL_FETCHROW($result_main)) + { + // Load sub menus + $result_sub = SQL_QUERY_ESC("SELECT what, title FROM "._MYSQL_PREFIX."_sponsor_menu +WHERE action='%s' AND what != '' AND what IS NOT NULL ".$WHERE." +ORDER BY sort", array($action), __FILE__, __LINE__); + if (SQL_NUMROWS($result_sub) > 0) + { + // Load sub menus + $SUB = ""; + while(list($what, $title_sub) = SQL_FETCHROW($result_sub)) + { + // Check if current selected menu is matching the loaded one + if ($current == $what) $title_sub = "".$title_sub.""; + + // Prepare data for the sub template + $content = array( + 'what' => $what, + 'title' => $title_sub + ); + + // Load row template + $SUB .= LOAD_TEMPLATE("sponsor_what", true, $content); + } + + // Prepare data for the main template + $content = array( + 'title' => $title_main, + 'menu' => $SUB + ); + + // Load menu template + $OUT .= LOAD_TEMPLATE("sponsor_action", true, $content); + } + else + { + // No sub menus active + $OUT .= LOAD_TEMPLATE("admin_settings_saved", true, SPONSOR_NO_SUB_MENUS_ACTIVE); + } + + // Free memory + SQL_FREERESULT($result_sub); + } + } + else + { + // No main menus active + $OUT .= LOAD_TEMPLATE("admin_settings_saved", true, SPONSOR_NO_MAIN_MENUS_ACTIVE); + } + + // Free memory + SQL_FREERESULT($result_main); + + // Return content + return $OUT; +} +// +function GENERATE_SPONSOR_CONTENT($what) +{ + global $_CONFIG; + $OUT = ""; + $FILE = sprintf("%sinc/modules/sponsor/%s.php", PATH, $what); + if (FILE_READABLE($FILE)) { + // Every sponsor action will output nothing directly. It will be written into $OUT! + require_once($FILE); + } else { + // File not found! + $OUT .= LOAD_TEMPLATE("admin_settings_saved", true, SPONSOR_CONTENT_404_1.$what.SPONSOR_CONTENT_404_2); + } + + // Return content + return $OUT; +} +// +function UPDATE_SPONSOR_LOGIN() +{ + global $_COOKIE, $_CONFIG; + + // Check if cookies are set + if ((empty($_COOKIE['sponsorid'])) || (empty($_COOKIE['sponsorpass']))) return false; + + // Calculate cookie lifetime, maybe we have to change this so the admin can setup a + // seperate timeout for these two cookies? + $life = (time() + getConfig('online_timeout')); + + // Is confirmed so both is fine and we can continue with login procedure + $login = ((setcookie("sponsorid" , bigintval($_COOKIE['sponsorid']), $life, COOKIE_PATH)) && + (setcookie("sponsorpass", $_COOKIE['sponsorpass'] , $life, COOKIE_PATH))); + + // Update database? + if ($login) + { + // Update last online timestamp + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_sponsor_data +SET last_online='".time()."' +WHERE id='%s' AND password='%s' LIMIT 1", + array(bigintval($_COOKIE['sponsorid']), $_COOKIE['sponsorpass']), __FILE__, __LINE__); + } + + // Return status + return $login; +} +// +function SPONSOR_SAVE_DATA($POST, $content) +{ + global $_COOKIE, $_SERVER, $_GET; + $EMAIL = false; + + // Unsecure data which we don't want + $UNSAFE = array('password', 'id', 'remote_addr', 'sponsor_created', 'last_online', 'status', 'ref_count', + 'points_amount', 'points_used', 'refid', 'hash', 'last_pay', 'last_curr', 'pass_old', + 'ok', 'pass1', 'pass2'); + + // Set default message ("not saved") + $MSG = SPONSOR_ACCOUNT_DATA_NOT_SAVED; + + // Check for submitted passwords + if ((!empty($_POST['pass1'])) && (!empty($_POST['pass2']))) + { + // Are both passwords the same? + if ($_POST['pass1'] == $_POST['pass2']) + { + // Okay, then set password and remove pass1 and pass2 + $_POST['password'] = md5($_POST['pass1']); + } + } + + // Remove all (maybe spoofed) unsafe data from array + foreach ($UNSAFE as $remove) + { + unset($POST[$remove]); + } + + // This array is for the submitted data which we will use with the SQL_QUERY_ESC() function to + // secure the data + $DATA = array(); + + // Prepare SQL string + $SQL = "UPDATE "._MYSQL_PREFIX."_sponsor_data SET"; + foreach ($POST as $key => $value) + { + // Mmmmm, too less security here??? + $SQL .= " ".strip_tags($key)."='%s',"; + + // We will secure this later inside the SQL_QUERY_ESC() function + $DATA[] = strip_tags($value); + + // Compile {SLASH} and so on for the email templates + $POST[$key] = COMPILE_CODE($value); + } + + // Check if email has changed + if ((!empty($content['email'])) && (!empty($POST['email']))) + { + if ($content['email'] != $POST['email']) + { + // Change email address + $EMAIL = true; + + // Okay, has changed then add status with UNCONFIRMED and new hash code + $SQL .= " status='EMAIL', hash='%s',"; + + // Generate hash code + $HASH = md5($_COOKIE['PHPSESSID'].":".$POST['email'].":".GET_REMOTE_ADDR().":".GET_USER_AGENT().":".time()); + $DATA[] = $HASH; + } + } + + // Remove last commata + $SQL = substr($SQL, 0, -1); + + // Add SQL tail data + $SQL .= " WHERE id='%s' AND password='%s' LIMIT 1"; + $DATA[] = bigintval($_COOKIE['sponsorid']); + $DATA[] = $_COOKIE['sponsorpass']; + + // Saving data was completed... ufff... + switch ($GLOBALS['what']) + { + case "account": // Change account data + if ($EMAIL) + { + $MSG = SPONSOR_ACCOUNT_EMAIL_CHANGED; + $templ = "admin_sponsor_change_email"; + $subj = ADMIN_SPONSOR_ACC_EMAIL_SUBJ; + } + else + { + $MSG = SPONSOR_ACCOUNT_DATA_SAVED; + $templ = "admin_sponsor_change_data"; + $subj = ADMIN_SPONSOR_ACC_DATA_SUBJ; + } + break; + + case "settings": // Change settings + // Translate some data + $content['receive'] = TRANSLATE_YESNO($content['receive_warnings']); + $content['interval'] = CREATE_FANCY_TIME($content['warning_interval']); + + // Set message template and subject for admin + $MSG = SPONSOR_SETTINGS_SAVED; + $templ = "admin_sponsor_settings"; + $subj = ADMIN_SPONSOR_SETTINGS_SUBJ; + break; + + default: // Unknown sponsor what value! + DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Unknown sponsor module (what) %s detected.", $GLOBALS['what'])); + $MSG = SPONSOR_UNKNOWN_WHAT_1.$GLOBALS['what'].SPONSOR_UNKNOWN_WHAT_2; + $templ = ""; $subj = ""; + break; + } + + if (SQL_AFFECTEDROWS() == 1) + { + if (!empty($templ) && !empty($subj)) + { + // Run SQL command and check for success + $result = SQL_QUERY_ESC($SQL, $DATA, __FILE__, __LINE__); + + // Add all data to content + global $DATA; + $DATA = $POST; + + // Change some data + if (isset($content['gender'])) $content['gender'] = TRANSLATE_GENDER($content['gender']); + if (isset($DATA['gender'])) $DATA['gender'] = TRANSLATE_GENDER($DATA['gender']); + if (isset($content['receive_warnings'])) $DATA['receive'] = TRANSLATE_YESNO($POST['receive_warnings']); + if (isset($content['warning_interval'])) $DATA['interval'] = CREATE_FANCY_TIME($POST['warning_interval']); + + // Send email to admins + SEND_ADMIN_NOTIFICATION($subj, $templ, $content); + + // Shall we send mail to the sponsor's new email address? + if ($content['receive_warnings'] == "Y") + { + // Okay send email with confirmation link to new address and with no confirmation link + // to the old address + + // First to old address + switch ($GLOBALS['what']) + { + case "account": // Change account data + $email_msg = LOAD_EMAIL_TEMPLATE("sponsor_change_data", $content); + SEND_EMAIL($content['email'], SPONSOR_ACC_DATA_SUBJ, $email_msg); + + if ($EMAIL) + { + // Add hash code to content array + $content['hash'] = $HASH; + + // Second mail goes to the new address + $email_msg = LOAD_EMAIL_TEMPLATE("sponsor_change_email", $content); + SEND_EMAIL($content['email'], SPONSOR_ACC_EMAIL_SUBJ, $email_msg); + } + break; + + case "settings": // Change settings + // Send email + $email_msg = LOAD_EMAIL_TEMPLATE("sponsor_settings", $content); + SEND_EMAIL($content['email'], SPONSOR_SETTINGS_SUBJ, $email_msg); + break; + } + } + } + } + + // Return final message + return $MSG; +} +// +?> diff --git a/0.2.1-FINAL/inc/libs/surfbar_functions.php b/0.2.1-FINAL/inc/libs/surfbar_functions.php new file mode 100644 index 0000000000..434ce4f15c --- /dev/null +++ b/0.2.1-FINAL/inc/libs/surfbar_functions.php @@ -0,0 +1,1688 @@ + $limit, 'reload' => $reload)); +} +// Admin unlocked an email so we can migrate the URL +function SURFBAR_ADMIN_MIGRATE_URL ($url, $uid) { + // Do some pre-checks + if (!IS_ADMIN()) { + // Not an admin + return false; + } elseif (!VALIDATE_URL($url)) { + // URL invalid + return false; + } elseif (SURFBAR_LOOKUP_BY_URL($url, $uid)) { + // URL already found in surfbar! + return false; + } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS($uid)) { + // No more allowed! + return false; + } + + // Register the new URL + return SURFBAR_REGISTER_URL($url, $uid, "MIGRATED", "migrate"); +} +// Admin function for unlocking URLs +function SURFBAR_ADMIN_UNLOCK_URL_IDS ($IDs) { + // Is this an admin or invalid array? + if (!IS_ADMIN()) { + // Not admin or invalid IDs array + return false; + } elseif (!is_array($IDs)) { + // No array + return false; + } elseif (count($IDs) == 0) { + // Empty array + return false; + } + + // Set to true to make AND expression valid if first URL got unlocked + $done = true; + + // Update the status for all ids + foreach ($IDs as $id => $dummy) { + // Test all ids through (ignores failed) + $done = (($done) && (SURFBAR_CHANGE_STATUS($id, "PENDING", "ACTIVE"))); + } // END - if + + // Return total status + return $done; +} +// Admin function for rejecting URLs +function SURFBAR_ADMIN_REJECT_URL_IDS ($IDs) { + // Is this an admin or invalid array? + if (!IS_ADMIN()) { + // Not admin or invalid IDs array + return false; + } elseif (!is_array($IDs)) { + // No array + return false; + } elseif (count($IDs) == 0) { + // Empty array + return false; + } + + // Set to true to make AND expression valid if first URL got unlocked + $done = true; + + // Update the status for all ids + foreach ($IDs as $id => $dummy) { + // Test all ids through (ignores failed) + $done = (($done) && (SURFBAR_CHANGE_STATUS($id, "PENDING", "REJECTED"))); + } // END - if + + // Return total status + return $done; +} +// +// ----------------------------------------------------------------------------- +// Member functions +// ----------------------------------------------------------------------------- +// +// Member has added an URL +function SURFBAR_MEMBER_ADD_URL ($url, $limit) { + global $_CONFIG; + + // Do some pre-checks + if (!IS_MEMBER()) { + // Not a member + return false; + } elseif (!VALIDATE_URL($url)) { + // URL invalid + return false; + } elseif (SURFBAR_LOOKUP_BY_URL($url, $GLOBALS['userid'])) { + // URL already found in surfbar! + return false; + } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS($GLOBALS['userid'])) { + // No more allowed! + return false; + } elseif ("".($limit + 0)."" != "".$limit."") { + // Invalid amount entered + return false; + } + + // Register the new URL + return SURFBAR_REGISTER_URL($url, $GLOBALS['userid'], "PENDING", "reg", array('limit' => $limit)); +} +// Create list of actions depending on status for the user +function SURFBAR_MEMBER_ACTIONS ($urlId, $status) { + // Load all actions in an array for given status + $actionArray = SURFBAR_GET_ACTION_ARRAY($status); + + // Init HTML code + $OUT = " +\n"; + + // Calculate width + $width = round(100 / count($actionArray)); + + // "Walk" through all actions and create forms + foreach ($actionArray as $actionId=>$action) { + // Add form for this action + $OUT .= sprintf(" \n", + $width, + bigintval($urlId), + strtolower($action), + strtoupper($action), + strtoupper($action) + ); + } // END - foreach + + // Close table + $OUT .= " +
+
+ + + +
+
\n"; + + // Return code + return $OUT; +} +// Do the member form request +function SURFBAR_MEMBER_DO_FORM ($formData, $URLs) { + global $SURFBAR_CACHE; + + // By default no action is performed + $performed = false; + + // Is this a member? + if (!IS_MEMBER()) { + // No member! + return false; + } elseif ((!isset($formData['id'])) || (!isset($formData['action']))) { + // Important form elements are missing! + return false; + } elseif (!isset($URLs[$formData['id']])) { + // ID not found in cache + return false; + } elseif (!SURFBAR_VALIDATE_MEMBER_ACTION_STATUS($formData['action'], $URLs[$formData['id']]['status'])) { + // Action not allowed for current URL status + return false; + } + + // Secure action + $action = SQL_ESCAPE(htmlentities(strip_tags($formData['action']), ENT_QUOTES)); + + // Has it changed? + if ($action != $formData['action']) { + // Invalid data in action found + return false; + } // END - if + + // Create the function name for selected action + $functionName = sprintf("SURFBAR_MEMBER_%s_ACTION", strtoupper($action)); + + // Is the function there? + if (function_exists($functionName)) { + // Add new status + $URLs[$formData['id']]['new_status'] = $SURFBAR_CACHE['new_status']; + + // Extract URL data for call-back + $urlData = array(merge_array($URLs[$formData['id']], array($action => $formData))); + + // Action found so execute it + $performed = call_user_func_array($functionName, $urlData); + } else { + // Log invalid request + DEBUG_LOG(__FUNCTION__, __LINE__, " action={$formData['action']},id={$formData['id']},function={$functionName}"); + ADD_FATAL(sprintf("Invalid member action! action=%s,id=%s,function=%s", $formData['action'], $formData['id'], $functionName)); + } + + // Return status + return $performed; +} +// Validate if the requested action can be performed on current URL status +function SURFBAR_VALIDATE_MEMBER_ACTION_STATUS ($action, $status) { + global $SURFBAR_CACHE; + + // Search for the requested action/status combination in database + $result = SQL_QUERY_ESC("SELECT new_status FROM "._MYSQL_PREFIX."_surfbar_actions WHERE action='%s' AND status='%s' LIMIT 1", + array($action, $status), __FILE__, __LINE__); + + // Is the entry there? + $isValid = (SQL_NUMROWS($result) == 1); + + // Fetch the new status if found + if ($isValid) { + // Load new status + list($SURFBAR_CACHE['new_status']) = SQL_FETCHROW($result); + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return status + return $isValid; +} +// +// ----------------------------------------------------------------------------- +// Member actions +// ----------------------------------------------------------------------------- +// +// Retreat a booked URL +function SURFBAR_MEMBER_RETREAT_ACTION ($urlData) { + // Create the data array for next function call + $data = array( + $urlData['id'] => $urlData + ); + + // Simply change the status here + return SURFBAR_CHANGE_STATUS ($urlData['id'], $urlData['status'], $urlData['new_status'], $data); +} +// Book an URL now (from migration) +function SURFBAR_MEMBER_BOOKNOW_ACTION ($urlData) { + // Create the data array for next function call + $data = array( + $urlData['id'] => $urlData + ); + + // Simply change the status here + return SURFBAR_CHANGE_STATUS ($urlData['id'], $urlData['status'], $urlData['new_status'], $data); +} +// Show edit form or do the changes +function SURFBAR_MEMBER_EDIT_ACTION ($urlData) { + // Is the "execute" flag there? + if (isset($urlData['edit']['execute'])) { + // Execute the changes + return SURFBAR_MEMBER_EXECUTE_ACTION("edit", $urlData); + } // END - if + + // Display form + return SURFBAR_MEMBER_DISPLAY_ACTION_FORM("edit", $urlData); +} +// Show delete form or do the changes +function SURFBAR_MEMBER_DELETE_ACTION ($urlData) { + // Is the "execute" flag there? + if (isset($urlData['delete']['execute'])) { + // Execute the changes + return SURFBAR_MEMBER_EXECUTE_ACTION("delete", $urlData); + } // END - if + + // Display form + return SURFBAR_MEMBER_DISPLAY_ACTION_FORM("delete", $urlData); +} +// Pause active banner +function SURFBAR_MEMBER_PAUSE_ACTION ($urlData) { + return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['status'], $urlData['new_status'], array($urlData['id'] => $urlData)); +} +// Unpause stopped banner +function SURFBAR_MEMBER_UNPAUSE_ACTION ($urlData) { + // Fix missing entry for template + $urlData['edit'] = $urlData['unpause']; + $urlData['edit']['url'] = $urlData['url']; + $urlData['edit']['limit'] = $urlData['views_max']; + + // Return status change + return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['status'], $urlData['new_status'], array($urlData['id'] => $urlData)); +} +// Resubmit locked URL +function SURFBAR_MEMBER_RESUBMIT_ACTION ($urlData) { + return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['status'], $urlData['new_status'], array($urlData['id'] => $urlData)); +} +// Display selected "action form" +function SURFBAR_MEMBER_DISPLAY_ACTION_FORM ($action, $urlData) { + // Translate some data + $urlData['registered'] = MAKE_DATETIME($urlData['registered'], "2"); + $urlData['views_total'] = TRANSLATE_COMMA($urlData['views_total']); + $urlData['views_max'] = TRANSLATE_COMMA($urlData['views_max']); + $urlData['views_allowed'] = TRANSLATE_COMMA($urlData['views_allowed']); + $urlData['last_locked'] = MAKE_DATETIME($urlData['last_locked'], "2"); + + // Is the lock reason empty? + if (empty($urlData['lock_reason'])) { + // Fix it to three dashes + $urlData['lock_reason'] = "---"; + } // END - if + + // Include fields only for action 'edit' + if ($action == "edit") { + // Default is not limited + $urlData['limited_yes'] = ""; + $urlData['limited_no'] = " checked=\"checked\""; + $urlData['limited'] = "false"; + + // Is this URL limited? + if ($urlData['views_max'] > 0) { + // Then rewrite form data + $urlData['limited_yes'] = " checked=\"checked\""; + $urlData['limited_no'] = ""; + $urlData['limited'] = "true"; + } // END - if + } // END - if + + // Load the form and display it + LOAD_TEMPLATE(sprintf("member_surfbar_%s_action_form", $action), false, $urlData); + + // All fine by default ... ;-) + return true; +} +// Execute choosen action +function SURFBAR_MEMBER_EXECUTE_ACTION ($action, $urlData) { + // By default nothing is executed + $executed = false; + + // Is limitation "no" and "limit" is > 0? + if ((isset($urlData[$action]['limited'])) && ($urlData[$action]['limited'] == "N") && ((isset($urlData[$action]['limit'])) && ($urlData[$action]['limit'] > 0)) || (!isset($urlData[$action]['limit']))) { + // Set it to unlimited + $urlData[$action]['limit'] = 0; + } // END - if + + // Construct function name + $functionName = sprintf("SURFBAR_MEMBER_EXECUTE_%s_ACTION", strtoupper($action)); + + // Is 'userid' set and not 'uid' ? + if ((!isset($urlData['uid'])) && (isset($urlData['userid']))) { + // Auto-fix this + $urlData['uid'] = $urlData['userid']; + } // END - if + + // Is that function there? + if (function_exists($functionName)) { + // Execute the function + if (call_user_func_array($functionName, array($urlData)) == true) { + // Update status as well + $executed = SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['status'], $urlData['new_status'], array($urlData['id'] => $urlData)); + } // END - if + } else { + // Not found! + ADD_FATAL(sprintf(MEMBER_SURFBAR_EXECUTE_ACTION_404, $functionName)); + } + + // Return status + return $executed; +} +// "Execute edit" function: Update changed data +function SURFBAR_MEMBER_EXECUTE_EDIT_ACTION ($urlData) { + // Default is nothing done + $status = false; + + // Translate URLs for testing + $url1 = COMPILE_CODE($urlData['url']); + $url2 = COMPILE_CODE($urlData['edit']['url']); + + // Has the URL or limit changed? + if (true) { + //if (($urlData['views_allowed'] != $urlData['edit']['limit']) || ($url1 != $url2)) { + // Run the query + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET url='%s', views_allowed=%s, views_max=%s WHERE id=%s AND status='%s' LIMIT 1", + array($urlData['url'], $urlData['edit']['limit'], $urlData['edit']['limit'], $urlData['id'], $urlData['status']), __FILE__, __LINE__); + + // All fine + $status = true; + } + + // Return status + return $status; +} +// "Execute delete" function: Does nothing... +function SURFBAR_MEMBER_EXECUTE_DELETE_ACTION ($urlData) { + // Nothing special to do (see above function for such "special actions" to perform) + return true; +} +// +// ----------------------------------------------------------------------------- +// Self-maintenance functions +// ----------------------------------------------------------------------------- +// +// Main function +function SURFBAR_HANDLE_SELF_MAINTENANCE () { + // Handle URLs which limit has depleted so we can stop them + SURFBAR_HANDLE_DEPLETED_VIEWS(); + + // Handle low-points amounts + SURFBAR_HANDLE_LOW_POINTS(); +} +// Handle URLs which limit has depleted +function SURFBAR_HANDLE_DEPLETED_VIEWS () { + // Get all URLs + $urlArray = SURFBAR_GET_URL_DATA("0", "views_max", "id", "ASC", "id", " AND views_allowed>0 AND status='ACTIVE'"); + + // Do we have some entries? + if (count($urlArray) > 0) { + // Then handle all! + foreach ($urlArray as $id => $urlData) { + // Backup data + $data = $urlData; + + // Rewrite array for next call + $urlData[$id] = $data; + + // Handle the status + SURFBAR_CHANGE_STATUS($id, "ACTIVE", "DEPLETED", $urlData); + } // END - foreach + } // END - if +} +// Alert users which have URLs booked and are low on points amount +function SURFBAR_HANDLE_LOW_POINTS () { + global $_CONFIG; + + // Get all userids + $UIDs = SURFBAR_DETERMINE_DEPLETED_USERIDS(getConfig('surfbar_warn_low_points')); + + // "Walk" through all URLs + foreach ($UIDs['uid'] as $uid => $dummy) { + // Is the last notification far enougth away to notify again? + if ((time() - $UIDs['notified'][$uid]) >= getConfig('surfbar_low_interval')) { + // Prepare content + $content = array( + 'uid' => $uid, + 'low' => TRANSLATE_COMMA(getConfig('surfbar_warn_low_points')), + 'points' => TRANSLATE_COMMA($UIDs['points'][$uid]), + 'notified' => MAKE_DATETIME($UIDs['notified'][$uid]), + 'interval' => CREATE_FANCY_TIME(getConfig('surfbar_low_interval')) + ); + + // Notify this user + SURFBAR_NOTIFY_USER("low_points", $content); + + // Update last notified + SQL_QUERY_ESC("UPDATE `"._MYSQL_PREFIX."_user_data` SET surfbar_low_notified=NOW() WHERE userid=%s LIMIT 1", + array($uid), __FILE__, __LINE__); + } // END - if + } // END - foreach +} +// +// ----------------------------------------------------------------------------- +// Generic functions +// ----------------------------------------------------------------------------- +// +// Looks up by an URL +function SURFBAR_LOOKUP_BY_URL ($url, $uid) { + // Now lookup that given URL by itself + $urlArray = SURFBAR_GET_URL_DATA($url, "url", "id", "ASC", "id", sprintf(" AND userid=%s", bigintval($uid))); + + // Was it found? + return (count($urlArray) > 0); +} +// Load URL data by given search term and column +function SURFBAR_GET_URL_DATA ($searchTerm, $column="id", $order="id", $sort="ASC", $group="id", $add="") { + global $lastUrlData; + + // By default nothing is found + $lastUrlData = array(); + + // Is the column an id number? + if (($column == "id") || ($column == "userid")) { + // Extra secure input + $searchTerm = bigintval($searchTerm); + } // END - if + + // If the column is "id" there can be only one entry + $limit = ""; + if ($column == "id") { + $limit = "LIMIT 1"; + } // END - if + + // Look up the record + $result = SQL_QUERY_ESC("SELECT id, userid, url, views_total, views_max, views_allowed, status, registered, last_locked, lock_reason, views_max, views_allowed, fixed_reload +FROM "._MYSQL_PREFIX."_surfbar_urls +WHERE %s='%s'".$add." +ORDER BY %s %s +%s", + array($column, $searchTerm, $order, $sort, $limit), __FILE__, __LINE__); + + // Is there at least one record? + if (SQL_NUMROWS($result) > 0) { + // Then load all! + while ($dataRow = SQL_FETCHARRAY($result)) { + // Shall we group these results? + if ($group == "id") { + // Add the row by id as index + $lastUrlData[$dataRow['id']] = $dataRow; + } else { + // Group entries + $lastUrlData[$dataRow[$group]][$dataRow['id']] = $dataRow; + } + } // END - while + } // END - if + + // Free the result + SQL_FREERESULT($result); + + // Return the result + return $lastUrlData; +} +// Registers an URL with the surfbar. You should have called SURFBAR_LOOKUP_BY_URL() first! +function SURFBAR_REGISTER_URL ($url, $uid, $status="PENDING", $addMode="reg", $extraFields = array()) { + global $_CONFIG; + + // Make sure by the user registered URLs are always pending + if ($addMode == "reg") $status = "PENDING"; + + // Prepare content + $content = merge_array($extraFields, array( + 'url' => $url, + 'frametester' => FRAMETESTER($url), + 'uid' => $uid, + 'status' => $status, + )); + + // Is limit/reload set? + if (!isset($config['limit'])) $content['limit'] = 0; + if (!isset($config['reload'])) $content['reload'] = 0; + + // Insert the URL into database + $content['insert_id'] = SURFBAR_INSERT_URL_BY_ARRAY($content); + + // Is this ID valid? + if ($content['insert_id'] == 0) { + // INSERT did not insert any data! + return false; + } // END - if + + // Translate status and limit + $content['limit'] = SURFBAR_TRANSLATE_LIMIT($content['limit']); + + // If in reg-mode we notify admin + if (($addMode == "reg") || (getConfig('surfbar_notify_admin_unlock') == "Y")) { + // Notify admin even when he as unlocked an email + SURFBAR_NOTIFY_ADMIN("url_{$addMode}", $content); + } // END - if + + // Send mail to user + SURFBAR_NOTIFY_USER("url_{$addMode}", $content); + + // Return the insert id + return $content['insert_id']; +} +// Inserts an url by given data array and return the insert id +function SURFBAR_INSERT_URL_BY_ARRAY ($urlData) { + // Get userid + $uid = bigintval($urlData['uid']); + + // Is the id set? + if (empty($uid)) $uid = 0; + + // Just run the insert query for now + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_urls (userid,url,status,views_max,views_allowed,fixed_reload) VALUES (%s,'%s','%s',%s,%s,%s)", + array( + $uid, + $urlData['url'], + $urlData['status'], + $urlData['limit'], + $urlData['limit'], + $urlData['reload'] + ), __FILE__, __LINE__ + ); + + // Return insert id + return SQL_INSERTID(); +} +// Notify admin(s) with a selected message and content +function SURFBAR_NOTIFY_ADMIN ($messageType, $content) { + // Prepare template name + $templateName = sprintf("admin_surfbar_%s", $messageType); + + // Set default subject if following eval() wents wrong + $subject = ADMIN_SURFBAR_NOTIFY_DEFAULT_SUBJECT; + + // Create constant name + $constantName = sprintf("ADMIN_SURFBAR_NOTIFY_%s_SUBJECT", + strtoupper($messageType) + ); + + // Prepare subject + if (defined($constantName)) { + $subject = constant($constantName); + } else { + ADD_FATAL(ADMIN_SURFBAR_NOTIFY_SUBJECT_404, $constantName); + } + + // Translate some data if present + if (isset($content['status'])) $content['status'] = SURFBAR_TRANSLATE_STATUS($content['status']); + if (isset($content['registered'])) $content['registered'] = MAKE_DATETIME($content['registered'], "2"); + if (isset($content['last_locked'])) $content['last_locked'] = MAKE_DATETIME($content['last_locked'], "2"); + if (isset($content['views_total'])) $content['views_total'] = TRANSLATE_COMMA($content['views_total']); + if (isset($content['views_allowed'])) $content['views_allowed'] = TRANSLATE_COMMA($content['views_allowed']); + if (isset($content['views_max'])) $content['views_max'] = TRANSLATE_COMMA($content['views_max']); + + // Send the notification out + return SEND_ADMIN_NOTIFICATION($subject, $templateName, $content, $content['uid']); +} +// Notify the user about the performed action +function SURFBAR_NOTIFY_USER ($messageType, $content) { + // Skip notification if userid is zero + if ($content['uid'] == 0) { + return false; + } // END - if + + // Prepare template name + $templateName = sprintf("member_surfbar_%s", $messageType); + + // Set default subject if following eval() wents wrong + $subject = MEMBER_SURFBAR_NOTIFY_DEFAULT_SUBJECT; + + // Create constant name + $constantName = sprintf("MEMBER_SURFBAR_NOTIFY_%s_SUBJECT", + strtoupper($messageType) + ); + + // Prepare subject + if (defined($constantName)) { + $subject = constant($constantName); + } else { + ADD_FATAL(MEMBER_SURFBAR_NOTIFY_SUBJECT_404, $constantName); + } + + // Translate some data if present + if (isset($content['status'])) $content['status'] = SURFBAR_TRANSLATE_STATUS($content['status']); + if (isset($content['registered'])) $content['registered'] = MAKE_DATETIME($content['registered'], "2"); + if (isset($content['last_locked'])) $content['last_locked'] = MAKE_DATETIME($content['last_locked'], "2"); + if (isset($content['views_total'])) $content['views_total'] = TRANSLATE_COMMA($content['views_total']); + if (isset($content['views_allowed'])) $content['views_allowed'] = TRANSLATE_COMMA($content['views_allowed']); + if (isset($content['views_max'])) $content['views_max'] = TRANSLATE_COMMA($content['views_max']); + + // Load template + $mailText = LOAD_EMAIL_TEMPLATE($templateName, $content, $content['uid']); + + // Send the email + return SEND_EMAIL($content['uid'], $subject, $mailText); +} +// Translates the limit +function SURFBAR_TRANSLATE_LIMIT ($limit) { + // Is this zero? + if ($limit == 0) { + // Unlimited! + $return = MEMBER_SURFBAR_UNLIMITED_VIEWS; + } else { + // Translate comma + $return = TRANSLATE_COMMA($limit); + } + + // Return value + return $return; +} +// Translate the URL status +function SURFBAR_TRANSLATE_STATUS ($status) { + // Create constant name + $constantName = sprintf("SURFBAR_URL_STATUS_%s", strtoupper($status)); + + // Set default translated status + $statusTranslated = "!".$constantName."!"; + + // Is the constant there? + if (defined($constantName)) { + // Then get it's value + $statusTranslated = constant($constantName); + } // END - if + + // Return result + return $statusTranslated; +} +// Determine reward +function SURFBAR_DETERMINE_REWARD ($onlyMin=false) { + global $_CONFIG; + + // Static values are default + $reward = getConfig('surfbar_static_reward'); + + // Do we have static or dynamic? + if (getConfig('surfbar_pay_model') == "DYNAMIC") { + // "Calculate" dynamic reward + if ($onlyMin) { + $reward += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE(); + } else { + $reward += SURFBAR_CALCULATE_DYNAMIC_ADD(); + } + } // END - if + + // Return reward + return $reward; +} +// Determine costs +function SURFBAR_DETERMINE_COSTS ($onlyMin=false) { + global $_CONFIG; + + // Static costs is default + $costs = getConfig('surfbar_static_costs'); + + // Do we have static or dynamic? + if (getConfig('surfbar_pay_model') == "DYNAMIC") { + // "Calculate" dynamic costs + if ($onlyMin) { + $costs += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE(); + } else { + $costs += SURFBAR_CALCULATE_DYNAMIC_ADD(); + } + } // END - if + + // Return costs + return $costs; +} +// "Calculate" dynamic add +function SURFBAR_CALCULATE_DYNAMIC_ADD () { + // Get min/max values + $min = SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE(); + $max = SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE(); + + // "Calculate" dynamic part and return it + return mt_rand($min, $max); +} +// Determine right template name +function SURFBAR_DETERMINE_TEMPLATE_NAME() { + // Default is the frameset + $templateName = "surfbar_frameset"; + + // Any frame set? ;-) + if (isset($_GET['frame'])) { + // Use the frame as a template name part... ;-) + $templateName = sprintf("surfbar_frame_%s", + SQL_ESCAPE($_GET['frame']) + ); + } // END - if + + // Return result + return $templateName; +} +// Check if the "reload lock" of the current user is full, call this function +// before you call SURFBAR_CHECK_RELOAD_LOCK(). +function SURFBAR_CHECK_RELOAD_FULL() { + global $SURFBAR_CACHE, $_CONFIG; + + // Default is full! + $isFull = true; + + // Cache static reload lock + $SURFBAR_CACHE['surf_lock'] = getConfig('surfbar_static_lock'); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "Fixed surf lock is ".getConfig('surfbar_static_lock')."", false); + + // Do we have dynamic model? + if (getConfig('surfbar_pay_model') == "DYNAMIC") { + // "Calculate" dynamic lock + $SURFBAR_CACHE['surf_lock'] += SURFBAR_CALCULATE_DYNAMIC_ADD(); + } // END - if + + // Ask the database + $result = SQL_QUERY_ESC("SELECT COUNT(l.id) AS cnt FROM "._MYSQL_PREFIX."_surfbar_locks AS l +INNER JOIN "._MYSQL_PREFIX."_surfbar_urls AS u +ON u.id=l.url_id +WHERE l.userid=%s AND (UNIX_TIMESTAMP() - ".SURFBAR_GET_SURF_LOCK().") < UNIX_TIMESTAMP(l.last_surfed) AND (((UNIX_TIMESTAMP(l.last_surfed) - u.fixed_reload) < 0 AND u.fixed_reload > 0) OR u.fixed_reload = 0) +LIMIT 1", + array($GLOBALS['userid']), __FILE__, __LINE__ + ); + + // Fetch row + list($SURFBAR_CACHE['user_locks']) = SQL_FETCHROW($result); + + // Is it null? + if (is_null($SURFBAR_CACHE['user_locks'])) { + // Then fix it to zero! + $SURFBAR_CACHE['user_locks'] = 0; + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Get total URLs + $total = SURFBAR_GET_TOTAL_URLS(); + + // Do we have some URLs in lock? Admins can always surf on own URLs! + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "userLocks=".SURFBAR_GET_USER_LOCKS().",total={$total}", false); + $isFull = ((SURFBAR_GET_USER_LOCKS() == $total) && ($total > 0)); + + // Return result + return $isFull; +} +// Get total amount of URLs of given status for current user or of ACTIVE URLs by default +function SURFBAR_GET_TOTAL_URLS ($status="ACTIVE", $excludeUserId=0) { + // Determine depleted user account + $UIDs = SURFBAR_DETERMINE_DEPLETED_USERIDS(); + + // Is the exlude userid set? + if ($excludeUserId > 0) { + // Then add it + $UIDs['uid'][$excludeUserId] = $excludeUserId; + } // END - if + + // Get amount from database + $result = SQL_QUERY_ESC("SELECT COUNT(id) AS cnt +FROM "._MYSQL_PREFIX."_surfbar_urls +WHERE userid NOT IN (".implode(",", $UIDs['uid']).") AND status='%s'", + array($status), __FILE__, __LINE__ + ); + + // Fetch row + list($cnt) = SQL_FETCHROW($result); + + // Free result + SQL_FREERESULT($result); + + // Return result + return $cnt; +} +// Check wether the user is allowed to book more URLs +function SURFBAR_IF_USER_BOOK_MORE_URLS ($uid=0) { + global $_CONFIG; + + // Is this admin and userid is zero or does the user has some URLs left to book? + return ((($uid == 0) && (IS_ADMIN())) || (SURFBAR_GET_TOTAL_USER_URLS($uid, "", array("REJECTED")) < getConfig('surfbar_max_order'))); +} +// Get total amount of URLs of given status for current user +function SURFBAR_GET_TOTAL_USER_URLS ($uid=0, $status="",$exclude="") { + global $_CONFIG; + + // Is the user 0 and user is logged in? + if (($uid == 0) && (IS_MEMBER())) { + // Then use this userid + $uid = $GLOBALS['userid']; + } elseif ($uid == 0) { + // Error! + return (getConfig('surfbar_max_order') + 1); + } + + // Default is all URLs + $ADD = ""; + + // Is the status set? + if (is_array($status)) { + // Only URLs with these status + $ADD = sprintf(" AND status IN('%s')", implode("','", $status)); + } elseif (!empty($status)) { + // Only URLs with this status + $ADD = sprintf(" AND status='%s'", $status); + } elseif (is_array($exclude)) { + // Exclude URLs with these status + $ADD = sprintf(" AND status NOT IN('%s')", implode("','", $exclude)); + } elseif (!empty($exclude)) { + // Exclude URLs with this status + $ADD = sprintf(" AND status != '%s'", $exclude); + } + + // Get amount from database + $result = SQL_QUERY_ESC("SELECT COUNT(id) AS cnt +FROM "._MYSQL_PREFIX."_surfbar_urls +WHERE userid=%s".$ADD." +LIMIT %s", + array($uid, getConfig('surfbar_max_order')), __FILE__, __LINE__ + ); + + // Fetch row + list($cnt) = SQL_FETCHROW($result); + + // Free result + SQL_FREERESULT($result); + + // Return result + return $cnt; +} +// Generate a validation code for the given id number +function SURFBAR_GENERATE_VALIDATION_CODE ($urlId, $salt="") { + global $_CONFIG, $SURFBAR_CACHE; + + // @TODO Invalid salt should be refused + $SURFBAR_CACHE['salt'] = "INVALID"; + + // Get code length from config + $length = getConfig('code_length'); + + // Fix length to 10 + if ($length == 0) $length = 10; + + // Generate a code until the length matches + $valCode = ""; + while (strlen($valCode) != $length) { + // Is the salt set? + if (empty($salt)) { + // Generate random hashed string + $SURFBAR_CACHE['salt'] = sha1(GEN_PASS(255)); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "newSalt=".SURFBAR_GET_SALT()."", false); + } else { + // Use this as salt! + $SURFBAR_CACHE['salt'] = $salt; + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "oldSalt=".SURFBAR_GET_SALT()."", false); + } + + // ... and now the validation code + $valCode = GEN_RANDOM_CODE($length, sha1(SURFBAR_GET_SALT().":".$urlId), $GLOBALS['userid']); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "valCode={$valCode}", false); + } // END - while + + // Hash it with md5() and salt it with the random string + $hashedCode = generateHash(md5($valCode), SURFBAR_GET_SALT()); + + // Finally encrypt it PGP-like and return it + $valHashedCode = generatePassString($hashedCode); + + // Return hashed value + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "finalValCode={$valHashedCode}", false); + return $valHashedCode; +} +// Check validation code +function SURFBAR_CHECK_VALIDATION_CODE ($urlId, $check, $salt) { + global $SURFBAR_CACHE; + + // Secure id number + $urlId = bigintval($urlId); + + // Now generate the code again + $code = SURFBAR_GENERATE_VALIDATION_CODE($urlId, $salt); + + // Return result of checking hashes and salts + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "---".$code."|".$check."---", false); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "+++".$salt."|".SURFBAR_GET_DATA('last_salt')."+++", false); + return (($code == $check) && ($salt == SURFBAR_GET_DATA('last_salt'))); +} +// Lockdown the userid/id combination (reload lock) +function SURFBAR_LOCKDOWN_ID ($urlId) { + //* DEBUG: */ print "LOCK!"); + ///* DEBUG: */ return; + // Just add it to the database + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_locks (userid, url_id) VALUES (%s, %s)", + array($GLOBALS['userid'], bigintval($urlId)), __FILE__, __LINE__); + + // Remove the salt from database + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_surfbar_salts WHERE url_id=%s AND userid=%s LIMIT 1", + array(bigintval($urlId), $GLOBALS['userid']), __FILE__, __LINE__); +} +// Pay points to the user and remove it from the sender if userid is given else it is a "sponsored surf" +function SURFBAR_PAY_POINTS () { + global $_CONFIG; + + // Remove it from the URL owner + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "uid=".SURFBAR_GET_USERID().",costs=".SURFBAR_GET_COSTS()."", false); + if (SURFBAR_GET_USERID() > 0) { + SUB_POINTS(sprintf("surfbar_%s", getConfig('surfbar_pay_model')), SURFBAR_GET_USERID(), SURFBAR_GET_COSTS()); + } // END - if + + // Book it to the user + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "uid=".$GLOBALS['userid'].",reward=".SURFBAR_GET_REWARD()."", false); + ADD_POINTS_REFSYSTEM(sprintf("surfbar_%s", getConfig('surfbar_pay_model')), $GLOBALS['userid'], SURFBAR_GET_DATA('reward')); +} +// Updates the statistics of current URL/userid +function SURFBAR_UPDATE_INSERT_STATS_RECORD () { + global $_CONFIG; + + // Init add + $ADD = ""; + + // Get allowed views + $allowed = SURFBAR_GET_VIEWS_ALLOWED(); + + // Do we have a limit? + if ($allowed > 0) { + // Then count views_max down! + $ADD .= ",views_max=views_max-1"; + } // END - if + + // Update URL stats + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET views_total=views_total+1".$ADD." WHERE id=%s LIMIT 1", + array(SURFBAR_GET_ID()), __FILE__, __LINE__); + + // Update the stats entry + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_stats SET count=count+1 WHERE userid=%s AND url_id=%s LIMIT 1", + array($GLOBALS['userid'], SURFBAR_GET_ID()), __FILE__, __LINE__); + + // Was that update okay? + if (SQL_AFFECTEDROWS() < 1) { + // No, then insert entry + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_stats (userid,url_id,count) VALUES (%s,%s,1)", + array($GLOBALS['userid'], SURFBAR_GET_ID()), __FILE__, __LINE__); + } // END - if + + // Update total/daily/weekly/monthly counter + $_CONFIG['surfbar_total_counter']++; + $_CONFIG['surfbar_daily_counter']++; + $_CONFIG['surfbar_weekly_counter']++; + $_CONFIG['surfbar_monthly_counter']++; + + // Update config as well + UPDATE_CONFIG(array("surfbar_total_counter", "surfbar_daily_counter", "surfbar_weekly_counter", "surfbar_monthly_counter"), array(1,1,1,1), "+"); +} +// Update the salt for validation and statistics +function SURFBAR_UPDATE_SALT_STATS () { + // Update statistics record + SURFBAR_UPDATE_INSERT_STATS_RECORD(); + + // Simply store the salt from cache away in database... + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_salts SET last_salt='%s' WHERE url_id=%s AND userid=%s LIMIT 1", + array(SURFBAR_GET_SALT(), SURFBAR_GET_ID(), $GLOBALS['userid']), __FILE__, __LINE__); + + // Debug message + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "salt=".SURFBAR_GET_SALT().",id=".SURFBAR_GET_ID().",uid=".$GLOBALS['userid']."", false); + + // Was that okay? + if (SQL_AFFECTEDROWS() < 1) { + // Insert missing entry! + SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_salts (url_id,userid,last_salt) VALUES (%s, %s, '%s')", + array(SURFBAR_GET_ID(), $GLOBALS['userid'], SURFBAR_GET_SALT()), __FILE__, __LINE__); + } // END - if + + // Debug message + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "affectedRows=".SQL_AFFECTEDROWS()."", false); + + // Return if the update was okay + return (SQL_AFFECTEDROWS() == 1); +} +// Check if the reload lock is active for given id +function SURFBAR_CHECK_RELOAD_LOCK ($urlId) { + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "id={$urlId}", false); + // Ask the database + $result = SQL_QUERY_ESC("SELECT COUNT(id) AS cnt +FROM "._MYSQL_PREFIX."_surfbar_locks +WHERE userid=%s AND url_id=%s AND (UNIX_TIMESTAMP() - ".SURFBAR_GET_SURF_LOCK().") < UNIX_TIMESTAMP(last_surfed) +ORDER BY last_surfed ASC +LIMIT 1", + array($GLOBALS['userid'], bigintval($urlId)), __FILE__, __LINE__ + ); + + // Fetch counter + list($cnt) = SQL_FETCHROW($result); + + // Free result + SQL_FREERESULT($result); + + // Return check + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "cnt={$cnt},".SURFBAR_GET_SURF_LOCK()."", false); + return ($cnt == 1); +} +// Determine which user hash no more points left +function SURFBAR_DETERMINE_DEPLETED_USERIDS ($limit=0) { + // Init array + $UIDs = array( + 'uid' => array(), + 'points' => array(), + 'notified' => array(), + ); + + // Do we have a current user id? + if ((IS_MEMBER()) && ($limit == 0)) { + // Then add this as well + $UIDs['uid'][$GLOBALS['userid']] = $GLOBALS['userid']; + $UIDs['points'][$GLOBALS['userid']] = GET_TOTAL_DATA($GLOBALS['userid'], "user_points", "points") - GET_TOTAL_DATA($GLOBALS['userid'], "user_data", "used_points"); + $UIDs['notified'][$GLOBALS['userid']] = 0; + + // Get all userid except logged in one + $result = SQL_QUERY_ESC("SELECT u.userid, UNIX_TIMESTAMP(d.surfbar_low_notified) AS notified +FROM "._MYSQL_PREFIX."_surfbar_urls AS u +INNER JOIN `"._MYSQL_PREFIX."_user_data` AS d +ON u.userid=d.userid +WHERE u.userid NOT IN (%s,0) AND u.status='ACTIVE' +GROUP BY u.userid +ORDER BY u.userid ASC", + array($GLOBALS['userid']), __FILE__, __LINE__); + } else { + // Get all userid + $result = SQL_QUERY("SELECT u.userid, UNIX_TIMESTAMP(d.surfbar_low_notified) AS notified +FROM "._MYSQL_PREFIX."_surfbar_urls AS u +INNER JOIN `"._MYSQL_PREFIX."_user_data` AS d +ON u.userid=d.userid +WHERE u.status='ACTIVE' +GROUP BY u.userid +ORDER BY u.userid ASC", __FILE__, __LINE__); + } + + // Load all userid + while (list($uid, $notified) = SQL_FETCHROW($result)) { + // Get total points + $points = GET_TOTAL_DATA($uid, "user_points", "points") - GET_TOTAL_DATA($uid, "user_data", "used_points"); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "uid={$uid},points={$points}", false); + + // Shall we add this to ignore? + if ($points <= $limit) { + // Ignore this one! + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "uid={$uid} has depleted points amount!", false); + $UIDs['uid'][$uid] = $uid; + $UIDs['points'][$uid] = $points; + $UIDs['notified'][$uid] = $notified; + } // END - if + } // END - while + + // Free result + SQL_FREERESULT($result); + + // Debug message + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "UIDs::count=".count($UIDs)." (with own userid=".$GLOBALS['userid'].")", false); + + // Return result + return $UIDs; +} +// Determine how many users are Online in surfbar +function SURFBAR_DETERMINE_TOTAL_ONLINE () { + global $_CONFIG; + + // Count all users in surfbar modue and return the value + $result = SQL_QUERY_ESC("SELECT id +FROM "._MYSQL_PREFIX."_surfbar_stats +WHERE (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(last_online)) <= %s +GROUP BY userid", + array(getConfig('online_timeout')), __FILE__, __LINE__); + + // Fetch count + $cnt = SQL_NUMROWS($result); + + // Free result + SQL_FREERESULT($result); + + // Return result + return $cnt; +} +// Determine waiting time for one URL +function SURFBAR_DETERMINE_WAIT_TIME () { + // Get fixed reload lock + $fixed = SURFBAR_GET_FIXED_RELOAD(); + + // Is the fixed reload time set? + if ($fixed > 0) { + // Return it + return $fixed; + } // END - if + + // Static time is default + $time = getConfig('surfbar_static_time'); + + // Which payment model do we have? + if (getConfig('surfbar_pay_model') == "DYNAMIC") { + // "Calculate" dynamic time + $time += SURFBAR_CALCULATE_DYNAMIC_ADD(); + } // END - if + + // Return value + return $time; +} +// Changes the status of an URL from given to other +function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data=array()) { + global $_CONFIG; + + // Make new status always lower-case + $newStatus = strtolower($newStatus); + + // Get URL data for status comparison if missing + if ((!is_array($data)) || (count($data) == 0)) { + // Fetch missing URL data + $data = SURFBAR_GET_URL_DATA($urlId); + } // END - if + + // Is the new status set? + if ((!is_string($newStatus)) || (empty($newStatus))) { + // Abort here, but fine! + return true; + } // END - if + + // Is the status like prevStatus is saying? + if ($data[$urlId]['status'] != $prevStatus) { + // No, then abort here + return false; + } // END - if + + + // Update the status now + // ---------- Comment out for debugging/developing member actions! --------- + //SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET status='%s' WHERE id=%s LIMIT 1", + // array($newStatus, bigintval($urlId)), __FILE__, __LINE__); + // ---------- Comment out for debugging/developing member actions! --------- + + // Was that fine? + //if (SQL_AFFECTEDROWS() != 1) { + // // No, something went wrong + // return false; + //} // END - if + + // Prepare content for notification routines + $data[$urlId]['uid'] = $data[$urlId]['userid']; + $data[$urlId]['frametester'] = FRAMETESTER($data[$urlId]['url']); + $data[$urlId]['reward'] = TRANSLATE_COMMA(getConfig('surfbar_static_reward')); + $data[$urlId]['costs'] = TRANSLATE_COMMA(getConfig('surfbar_static_costs')); + + // Do some dirty fixing here: + if (($data[$urlId]['status'] == "STOPPED") && ($newStatus == "pending")) { + // Fix for template change + $newStatus = "continued"; + } // END - if + + // Send admin notification + SURFBAR_NOTIFY_ADMIN("url_{$data[$urlId]['status']}_{$newStatus}", $data[$urlId]); + + // Send user notification + SURFBAR_NOTIFY_USER("url_{$data[$urlId]['status']}_{$newStatus}", $data[$urlId]); + + // All done! + return true; +} +// Calculate minimum value for dynamic payment model +function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () { + global $_CONFIG; + + // Addon is zero by default + $addon = 0; + + // Percentage part + $percent = abs(log(getConfig('surfbar_dynamic_percent') / 100 + 1)); + + // Get total users + $totalUsers = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true); + + // Get online users + $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE(); + + // Calculate addon + $addon += abs(log($onlineUsers / $totalUsers + 1) * $percent * $totalUsers); + + // Get total URLs + $totalUrls = SURFBAR_GET_TOTAL_URLS("ACTIVE", "0"); + + // Get user's total URLs + $userUrls = SURFBAR_GET_TOTAL_USER_URLS(0, "ACTIVE"); + + // Calculate addon + if ($totalUrls > 0) { + $addon += abs(log($userUrls / $totalUrls + 1) * $percent * $totalUrls); + } else { + $addon += abs(log($userUrls / 1 + 1) * $percent * $totalUrls); + } + + // Return addon + return $addon; +} +// Calculate maximum value for dynamic payment model +function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () { + global $_CONFIG; + + // Addon is zero by default + $addon = 0; + + // Maximum value + $max = log(2); + + // Percentage part + $percent = abs(log(getConfig('surfbar_dynamic_percent') / 100 + 1)); + + // Get total users + $totalUsers = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true); + + // Calculate addon + $addon += abs($max * $percent * $totalUsers); + + // Get total URLs + $totalUrls = SURFBAR_GET_TOTAL_URLS("ACTIVE", "0"); + + // Calculate addon + $addon += abs($max * $percent * $totalUrls); + + // Return addon + return $addon; +} +// Calculate dynamic lock +function SURFBAR_CALCULATE_DYNAMIC_LOCK () { + global $_CONFIG; + + // Default lock is 30 seconds + $addon = 30; + + // Get online users + $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE(); + + // Calculate lock + $addon = abs(log($onlineUsers / $addon + 1)); + + // Return value + return $addon; +} +// "Getter" for lock ids array +function SURFBAR_GET_LOCK_IDS () { + // Prepare some arrays + $IDs = array(); + $USE = array(); + $ignored = array(); + + // Get all id from locks within the timestamp + $result = SQL_QUERY_ESC("SELECT id, url_id, UNIX_TIMESTAMP(last_surfed) AS last +FROM + "._MYSQL_PREFIX."_surfbar_locks +WHERE + userid=%s +ORDER BY + id ASC", array($GLOBALS['userid']), + __FILE__, __LINE__); + + // Load all entries + while (list($lid, $url, $last) = SQL_FETCHROW($result)) { + // Debug message + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "next - lid={$lid},url={$url},rest=".(time() - $last)."/".SURFBAR_GET_SURF_LOCK()."", false); + + // Skip entries that are too old + if (($last > (time() - SURFBAR_GET_SURF_LOCK())) && (!in_array($url, $ignored))) { + // Debug message + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "okay - lid={$lid},url={$url},last={$last}", false); + + // Add only if missing or bigger + if ((!isset($IDs[$url])) || ($IDs[$url] > $last)) { + // Debug message + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "ADD - lid={$lid},url={$url},last={$last}", false); + + // Add this ID + $IDs[$url] = $last; + $USE[$url] = $lid; + } // END - if + } else { + // Debug message + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "ignore - lid={$lid},url={$url},last={$last}", false); + + // Ignore these old entries! + $ignored[] = $url; + unset($IDs[$url]); + unset($USE[$url]); + } + } // END - while + + // Free result + SQL_FREERESULT($result); + + // Return array + return $USE; +} +// "Getter" for maximum random number +function SURFBAR_GET_MAX_RANDOM ($UIDs, $ADD) { + global $_CONFIG; + // Count max availabe entries + $result = SQL_QUERY("SELECT sbu.id AS cnt +FROM "._MYSQL_PREFIX."_surfbar_urls AS sbu +LEFT JOIN "._MYSQL_PREFIX."_surfbar_salts AS sbs +ON sbu.id=sbs.url_id +LEFT JOIN "._MYSQL_PREFIX."_surfbar_locks AS l +ON sbu.id=l.url_id +WHERE sbu.userid NOT IN (".implode(",", $UIDs).") AND (sbu.views_allowed=0 OR (sbu.views_allowed > 0 AND sbu.views_max > 0)) AND sbu.status='ACTIVE'".$ADD." +GROUP BY sbu.id", __FILE__, __LINE__); + + // Log last query + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "lastQuery=".getConfig('db_last_query')."|numRows=".SQL_NUMROWS($result)."|Affected=".SQL_AFFECTEDROWS()."", false); + + // Fetch max rand + $maxRand = SQL_NUMROWS($result); + + // Free result + SQL_FREERESULT($result); + + // Return value + return $maxRand; +} +// Load all URLs of the current user and return it as an array +function SURFBAR_GET_USER_URLS () { + // Init array + $URLs = array(); + + // Begin the query + $result = SQL_QUERY_ESC("SELECT u.id, u.userid, u.url, u.views_total, u.views_max, u.views_allowed, u.status, UNIX_TIMESTAMP(u.registered) AS registered, UNIX_TIMESTAMP(u.last_locked) AS last_locked, u.lock_reason AS lock_reason +FROM "._MYSQL_PREFIX."_surfbar_urls AS u +WHERE u.userid=%s AND u.status != 'DELETED' +ORDER BY u.id ASC", + array($GLOBALS['userid']), __FILE__, __LINE__); + + // Are there entries? + if (SQL_NUMROWS($result) > 0) { + // Load all rows + while ($row = SQL_FETCHARRAY($result)) { + // Add the row + $URLs[$row['id']] = $row; + } // END - while + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return the array + return $URLs; +} +// "Getter" for member action array for given status +function SURFBAR_GET_ACTION_ARRAY ($status) { + // Init array + $returnArray = array(); + + // Get all assigned actions + $result = SQL_QUERY_ESC("SELECT action FROM "._MYSQL_PREFIX."_surfbar_actions WHERE status='%s' ORDER BY id ASC", + array($status), __FILE__, __LINE__); + + // Some entries there? + if (SQL_NUMROWS($result) > 0) { + // Load all actions + while (list($action) = SQL_FETCHROW($result)) { + $returnArray[] = $action; + } // END - if + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return result + return $returnArray; +} +// Reload to configured stop page +function SURFBAR_RELOAD_TO_STOP_PAGE($page="stop") { + // Internal or external? + if ((getConfig('surfbar_pause_mode') == "INTERNAL") || (getConfig('surfbar_pause_url') == "")) { + // Reload to internal page + LOAD_URL("surfbar.php?frame=".$page); + } else { + // Reload to external page + LOAD_URL(getConfig('surfbar_pause_url')); + } +} + +// Determine next id for surfbar or get data for given id, always call this before you call other +// getters below this function!!! +function SURFBAR_DETERMINE_NEXT_ID ($urlId = 0) { + global $SURFBAR_CACHE, $_CONFIG; + + // Default is no id and no random number + $nextId = 0; + $randNum = 0; + + // Is the ID set? + if ($urlId == 0) { + // Get array with lock ids + $USE = SURFBAR_GET_LOCK_IDS(); + + // Shall we add some URL ids to ignore? + $ADD = ""; + if (count($USE) > 0) { + // Ignore some! + $ADD = " AND sbu.id NOT IN ("; + foreach ($USE as $url_id => $lid) { + // Add URL id + $ADD .= $url_id.","; + } // END - foreach + + // Add closing bracket + $ADD = substr($ADD, 0, -1) . ")"; + } // END - if + + // Determine depleted user account + $UIDs = SURFBAR_DETERMINE_DEPLETED_USERIDS(); + + // Get maximum randomness factor + $maxRand = SURFBAR_GET_MAX_RANDOM($UIDs['uid'], $ADD); + + // If more than one URL can be called generate the random number! + if ($maxRand > 1) { + // Generate random number + $randNum = mt_rand(0, ($maxRand - 1)); + } // END - if + + // And query the database + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "randNum={$randNum},maxRand={$maxRand},surfLock=".SURFBAR_GET_SURF_LOCK()."", false); + $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.views_total, sbu.views_max, sbu.views_allowed, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed, sbu.fixed_reload +FROM "._MYSQL_PREFIX."_surfbar_urls AS sbu +LEFT JOIN "._MYSQL_PREFIX."_surfbar_salts AS sbs +ON sbu.id=sbs.url_id +LEFT JOIN "._MYSQL_PREFIX."_surfbar_locks AS l +ON sbu.id=l.url_id +WHERE sbu.userid NOT IN (".implode(",", $UIDs['uid']).") AND sbu.status='ACTIVE' AND (sbu.views_allowed=0 OR (sbu.views_allowed > 0 AND sbu.views_max > 0))".$ADD." +GROUP BY sbu.id +ORDER BY l.last_surfed ASC, sbu.id ASC +LIMIT %s,1", + array($randNum), __FILE__, __LINE__ + ); + } else { + // Get data from specified id number + $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.views_total, sbu.views_max, sbu.views_allowed, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed, sbu.fixed_reload +FROM "._MYSQL_PREFIX."_surfbar_urls AS sbu +LEFT JOIN "._MYSQL_PREFIX."_surfbar_salts AS sbs +ON sbu.id=sbs.url_id +LEFT JOIN "._MYSQL_PREFIX."_surfbar_locks AS l +ON sbu.id=l.url_id +WHERE sbu.userid != %s AND sbu.status='ACTIVE' AND sbu.id=%s AND (sbu.views_allowed=0 OR (sbu.views_allowed > 0 AND sbu.views_max > 0)) +LIMIT 1", + array($GLOBALS['userid'], bigintval($urlId)), __FILE__, __LINE__ + ); + } + + // Is there an id number? + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "lastQuery=".getConfig('db_last_query')."|numRows=".SQL_NUMROWS($result)."|Affected=".SQL_AFFECTEDROWS()."", false); + if (SQL_NUMROWS($result) == 1) { + // Load/cache data + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "count(".count($SURFBAR_CACHE).") - BEFORE", false); + $SURFBAR_CACHE = merge_array($SURFBAR_CACHE, SQL_FETCHARRAY($result)); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "count(".count($SURFBAR_CACHE).") - AFTER", false); + + // Determine waiting time + $SURFBAR_CACHE['time'] = SURFBAR_DETERMINE_WAIT_TIME(); + + // Is the last salt there? + if (is_null($SURFBAR_CACHE['last_salt'])) { + // Then repair it wit the static! + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "last_salt - FIXED!", false); + $SURFBAR_CACHE['last_salt'] = ""; + } // END - if + + // Fix missing last_surfed + if ((!isset($SURFBAR_CACHE['last_surfed'])) || (is_null($SURFBAR_CACHE['last_surfed']))) { + // Fix it here + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "last_surfed - FIXED!", false); + $SURFBAR_CACHE['last_surfed'] = 0; + } // END - if + + // Get base/fixed reward and costs + $SURFBAR_CACHE['reward'] = SURFBAR_DETERMINE_REWARD(); + $SURFBAR_CACHE['costs'] = SURFBAR_DETERMINE_COSTS(); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "BASE/STATIC - reward=".SURFBAR_GET_REWARD()."|costs=".SURFBAR_GET_COSTS()."", false); + + // Only in dynamic model add the dynamic bonus! + if (getConfig('surfbar_pay_model') == "DYNAMIC") { + // Calculate dynamic reward/costs and add it + $SURFBAR_CACHE['reward'] += SURFBAR_CALCULATE_DYNAMIC_ADD(); + $SURFBAR_CACHE['costs'] += SURFBAR_CALCULATE_DYNAMIC_ADD(); + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "DYNAMIC+ - reward=".SURFBAR_GET_REWARD()."|costs=".SURFBAR_GET_COSTS()."", false); + } // END - if + + // Now get the id + $nextId = SURFBAR_GET_ID(); + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return result + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "nextId={$nextId}", false); + return $nextId; +} +// ----------------------------------------------------------------------------- +// PLEASE DO NOT ADD ANY OTHER FUNCTIONS BELOW THIS LINE ELSE THEY "WRAP" THE +// $SURFBAR_CACHE ARRAY! +// ----------------------------------------------------------------------------- +// Private getter for data elements +function SURFBAR_GET_DATA ($element) { + global $SURFBAR_CACHE; + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "element={$element}", false); + + // Default is null + $data = null; + + // Is the entry there? + if (isset($SURFBAR_CACHE[$element])) { + // Then take it + $data = $SURFBAR_CACHE[$element]; + } else { // END - if + print("
");
+		print_r($SURFBAR_CACHE);
+		debug_print_backtrace();
+		die("
"); + } + + // Return result + //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "element[$element]={$data}", false); + return $data; +} +// Getter for reward from cache +function SURFBAR_GET_REWARD () { + // Get data element and return its contents + return SURFBAR_GET_DATA('reward'); +} +// Getter for costs from cache +function SURFBAR_GET_COSTS () { + // Get data element and return its contents + return SURFBAR_GET_DATA('costs'); +} +// Getter for URL from cache +function SURFBAR_GET_URL () { + // Get data element and return its contents + return SURFBAR_GET_DATA('url'); +} +// Getter for salt from cache +function SURFBAR_GET_SALT () { + // Get data element and return its contents + return SURFBAR_GET_DATA('salt'); +} +// Getter for id from cache +function SURFBAR_GET_ID () { + // Get data element and return its contents + return SURFBAR_GET_DATA('id'); +} +// Getter for userid from cache +function SURFBAR_GET_USERID () { + // Get data element and return its contents + return SURFBAR_GET_DATA('userid'); +} +// Getter for user reload locks +function SURFBAR_GET_USER_LOCKS () { + // Get data element and return its contents + return SURFBAR_GET_DATA('user_locks'); +} +// Getter for reload time +function SURFBAR_GET_RELOAD_TIME () { + // Get data element and return its contents + return SURFBAR_GET_DATA('time'); +} +// Getter for allowed views +function SURFBAR_GET_VIEWS_ALLOWED () { + // Get data element and return its contents + return SURFBAR_GET_DATA('views_allowed'); +} +// Getter for fixed reload +function SURFBAR_GET_FIXED_RELOAD () { + // Get data element and return its contents + return SURFBAR_GET_DATA('fixed_reload'); +} +// Getter for surf lock +function SURFBAR_GET_SURF_LOCK () { + // Get data element and return its contents + return SURFBAR_GET_DATA('surf_lock'); +} +// +?> diff --git a/0.2.1-FINAL/inc/libs/task_functions.php b/0.2.1-FINAL/inc/libs/task_functions.php new file mode 100644 index 0000000000..b496e1df1f --- /dev/null +++ b/0.2.1-FINAL/inc/libs/task_functions.php @@ -0,0 +1,574 @@ + 0) { + define('__TASK_UPDATE_VALUE', "".$value.""); + } else { + define('__TASK_UPDATE_VALUE', "0"); + } + } else { + define('__TASK_UPDATE_VALUE', "0"); + } + + // + // First check for all account status seperately + // + // Confirmed accounts + $value = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true); + + if ($value > 0) { + define('__CONFIRMED_VALUE', "".$value.""); + } else { + define('__CONFIRMED_VALUE', "0"); + } + + // Unconfirmed accounts + $value = GET_TOTAL_DATA("UNCONFIRMED", "user_data", "userid", "status", true); + + if ($value > 0) { + define('__UNCONFIRMED_VALUE', "".$value.""); + } else { + define('__UNCONFIRMED_VALUE', "0"); + } + + // And locked accounts + $value = GET_TOTAL_DATA("LOCKED", "user_data", "userid", "status", true); + + if ($value > 0) { + define('__LOCKED_VALUE', "".$value.""); + } else { + define('__LOCKED_VALUE', "0"); + } + + // + // Unassigned tasks + // + $value = GET_TOTAL_DATA("0", "task_system", "id", "assigned_admin", true, " AND `status` != 'DELETED'"); + + if ($value > 0) { + define('__TASK_NEW_VALUE', "".$value.""); + } else { + define('__TASK_NEW_VALUE', "0"); + } + + // + // Closed tasks + // + $value = GET_TOTAL_DATA("CLOSED", "task_system", "id", "status", true); + + if ($value > 0) { + define('__TASK_CLOSED_VALUE', "".$value.""); + } else { + define('__TASK_CLOSED_VALUE', "0"); + } + + // + // Deleted tasks + // + $value = GET_TOTAL_DATA("DELETED", "task_system", "id", "status", true); + + if ($value > 0) { + define('__TASK_DELETED_VALUE', "".$value.""); + } else { + define('__TASK_DELETED_VALUE', "0"); + } + + // + // Solved tasks + // + $value = GET_TOTAL_DATA("SOLVED", "task_system", "id", "status", true, sprintf(" AND assigned_admin=%s", GET_CURRENT_ADMIN_ID())); + + if ($value > 0) { + define('__TASK_SOLVED_VALUE', "".$value.""); + } else { + define('__TASK_SOLVED_VALUE', "0"); + } + + // + // Your tasks + // + $value = GET_TOTAL_DATA(GET_CURRENT_ADMIN_ID(), "task_system", "id", "assigned_admin", true, " AND status = 'NEW' AND task_type != 'EXTENSION_UPDATE'"); + + if ($value > 0) { + define('__TASK_YOUR_VALUE', "".$value.""); + } else { + define('__TASK_YOUR_VALUE', "0"); + } + + // + // Mails waiting to be approved + // + $value = GET_TOTAL_DATA("ADMIN", "pool", "id", "data_type", true); + + if ($value > 0) { + define('__MAIL_ADMIN_VALUE', "".$value.""); + } else { + define('__MAIL_ADMIN_VALUE', "0"); + } + + // + // Unfinished mail orders + // + $value = GET_TOTAL_DATA("TEMP", "pool", "id", "data_type", true); + + if ($value > 0) { + define('__MAIL_TEMP_VALUE', "".$value.""); + } else { + define('__MAIL_TEMP_VALUE', "0"); + } + + // + // Sent mail orders + // + $value = GET_TOTAL_DATA("SEND", "pool", "id", "data_type", true); + + if ($value > 0) { + define('__MAIL_SEND_VALUE', "".$value.""); + } else { + define('__MAIL_SEND_VALUE', "0"); + } + + // + // Autopurged mails + // + if (EXT_IS_ACTIVE("autopurge")) { + // Get auto-purged mails + $value = GET_TOTAL_DATA("DELETED", "pool", "id", "data_type", true); + + if ($value > 0) { + define('__MAIL_DELETED_VALUE', "".$value.""); + } else { + define('__MAIL_DELETED_VALUE', "0"); + } + + // + // Autopurged bonus mails + // + if (GET_EXT_VERSION("bonus") >= "0.1.8") { + // Get auto-purged bonus mails + $value = GET_TOTAL_DATA("DELETED", "bonus", "id", "data_type", true); + + if ($value > 0) { + define('__MAIL_BONUS_AP_VALUE', "".$value.""); + } 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', "".ADMIN_EXT_BONUS_404.""); + } + } else { + define('__MAIL_BONUS_AP_VALUE', "".ADMIN_EXT_AUTOPURGE_404.""); + define('__MAIL_DELETED_VALUE', "".ADMIN_EXT_AUTOPURGE_404.""); + } + + // + // Sent bonus mails + // + if (GET_EXT_VERSION("bonus") >= "0.1.8") { + // Get sent bonus mails (but not notifications) + $value = GET_TOTAL_DATA("SEND", "bonus", "id", "data_type", true, " AND is_notify='N'"); + + if ($value > 0) { + define('__MAIL_BONUS_SEND_VALUE', "".$value.""); + } 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 = getConfig('ap_inactive_since'); + $EXCLUDE_LIST = ""; + if (getConfig('def_refid') > 0) { + $EXCLUDE_LIST = " AND d.userid != ".getConfig('def_refid').""; + } // END - if + + // Check for more extensions + if (EXT_IS_ACTIVE("beg")) $EXCLUDE_LIST .= " AND d.userid != ".getConfig('beg_uid').""; + if (EXT_IS_ACTIVE("bonus")) $EXCLUDE_LIST .= " AND d.userid != ".getConfig('bonus_uid').""; + if (EXT_IS_ACTIVE("doubler")) $EXCLUDE_LIST .= " AND d.userid != ".getConfig('doubler_uid').""; + 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 +WHERE d.status='CONFIRMED' AND d.joined < (UNIX_TIMESTAMP() - ".$since.") AND d.last_online < (UNIX_TIMESTAMP() - ".$since.") AND d.ap_notified < (UNIX_TIMESTAMP() - ".$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 referal + $SQLs[] = "SELECT userid FROM `"._MYSQL_PREFIX."_user_data` WHERE refid='0' ORDER BY userid"; + $DESCRs[] = TASK_ADMIN_LIST_ACCOUNT_NOREF; + $TITLEs[] = TASK_ADMIN_LIST_ACCOUNT_NOREF_TITLE; + $WHATs[] = "list_user&mode=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("primera")) { + // List new primera requests + $SQLs[] = "SELECT userid FROM "._MYSQL_PREFIX."_user_primera ORDER BY userid"; + $WHATs[] = "list_primera"; + $DESCRs[] = TASK_ADMIN_LIST_PRIMERA_ALL; + $TITLEs[] = TASK_ADMIN_LIST_PRIMERA_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.8.7") { + // List all notifications + $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_bonus WHERE is_notify='Y' ORDER BY timestamp DESC"; + $WHATs[] = "list_notifications"; + $DESCRs[] = TASK_ADMIN_LIST_NOTIFICATIONS; + $TITLEs[] = TASK_ADMIN_LIST_NOTIFICATIONS_TITLE; + } // END - if + + 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 (getConfig('bonus_click_yn') == "Y") $USE .= " + turbo_bonus"; + if (getConfig('bonus_login_yn') == "Y") $USE .= " + login_bonus"; + if (getConfig('bonus_order_yn') == "Y") $USE .= " + bonus_order"; + if (getConfig('bonus_stats_yn') == "Y") $USE .= " + bonus_stats"; + if (getConfig('bonus_ref_yn') == "Y") $USE .= " + bonus_ref"; + $USE .= ")"; + } else { + // Old version ??? + $USE = "turbo_bonus"; + } + + // Autopurge installed? + $LAST = ""; + if ((EXT_IS_ACTIVE("autopurge")) && (getConfig('autopurge_inactive') == "Y") && (getConfig('ap_inactive_since') > 0)) { + // Use last online timestamp to keep inactive members away from here + $LAST = sprintf(" AND last_online >= (UNIX_TIMESTAMP() - %s)", getConfig('ap_inactive_since')); + } + + $SQLs[] = "SELECT ".$USE." AS points +FROM "._MYSQL_PREFIX."_user_data +WHERE status='CONFIRMED' AND ".$USE.">0".$LAST." +ORDER BY points 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 = ""; + if ((EXT_IS_ACTIVE("autopurge")) && (getConfig('autopurge_inactive') == "Y") && (getConfig('ap_inactive_since') > 0)) { + // Use last online timestamp to keep inactive members away from here + $LAST = sprintf(" AND last_online >= (UNIX_TIMESTAMP() - %s)", getConfig('ap_inactive_since')); + } + + $SQLs[] = "SELECT userid FROM "._MYSQL_PREFIX."_user_data +WHERE status='CONFIRMED' AND beg_points>0".$LAST." +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&mode=waiting&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 referal 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 referal 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&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&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; + } + + if (EXT_IS_ACTIVE("surfbar")) { + // List all URLs in surfbar + $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_surfbar_urls ORDER BY id"; + $WHATs[] = "list_surfbar_urls"; + $DESCRs[] = TASK_ADMIN_LIST_SURFBAR_URLS_ALL; + $TITLEs[] = TASK_ADMIN_LIST_SURFBAR_URLS_ALL_TITLE; + + // List all pending URLs in surfbar + $SQLs[] = "SELECT id FROM "._MYSQL_PREFIX."_surfbar_urls WHERE status='PENDING' ORDER BY id"; + $WHATs[] = "unlock_surfbar_urls"; + $DESCRs[] = TASK_ADMIN_LIST_SURFBAR_URLS_PENDING; + $TITLEs[] = TASK_ADMIN_LIST_SURFBAR_URLS_PENDING_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 = " "; + + // 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__); + + // Get rows + $value = SQL_NUMROWS($result); + + // Free 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'] = "".$value.""; + } 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); + } // END - if + + // Return output + return LOAD_TEMPLATE("admin_overview_task_extras", true, $OUT); +} +// +?> diff --git a/0.2.1-FINAL/inc/libs/theme_functions.php b/0.2.1-FINAL/inc/libs/theme_functions.php new file mode 100644 index 0000000000..0169427c73 --- /dev/null +++ b/0.2.1-FINAL/inc/libs/theme_functions.php @@ -0,0 +1,217 @@ + 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 = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($theme)); + if (FILE_READABLE($INC)) { + // And save all data in array + require($INC); + $THEMES['theme_unix'][] = $theme; + $THEMES['theme_name'][] = $THEME_NAME; + } // END - if + } // END - while + + // 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 .= " \n"; + elseif ($none) $OUT = " \n"; + while (list($id, $sname, $fname) = SQL_FETCHROW($result)) + { + $OUT .= "